diff --git a/org.springframework.test/src/main/java/org/springframework/mock/web/DelegatingServletInputStream.java b/org.springframework.test/src/main/java/org/springframework/mock/web/DelegatingServletInputStream.java
deleted file mode 100644
index 04b7320b100..00000000000
--- a/org.springframework.test/src/main/java/org/springframework/mock/web/DelegatingServletInputStream.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright 2002-2007 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.mock.web;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import javax.servlet.ServletInputStream;
-
-import org.springframework.util.Assert;
-
-/**
- * Delegating implementation of {@link javax.servlet.ServletInputStream}.
- *
- *
Used by {@link MockHttpServletRequest}; typically not directly
- * used for testing application controllers.
- *
- * @author Juergen Hoeller
- * @since 1.0.2
- * @see MockHttpServletRequest
- */
-public class DelegatingServletInputStream extends ServletInputStream {
-
- private final InputStream sourceStream;
-
-
- /**
- * Create a DelegatingServletInputStream for the given source stream.
- * @param sourceStream the source stream (never null)
- */
- public DelegatingServletInputStream(InputStream sourceStream) {
- Assert.notNull(sourceStream, "Source InputStream must not be null");
- this.sourceStream = sourceStream;
- }
-
- /**
- * Return the underlying source stream (never null).
- */
- public final InputStream getSourceStream() {
- return this.sourceStream;
- }
-
-
- public int read() throws IOException {
- return this.sourceStream.read();
- }
-
- public void close() throws IOException {
- super.close();
- this.sourceStream.close();
- }
-
-}
diff --git a/org.springframework.test/src/main/java/org/springframework/mock/web/DelegatingServletOutputStream.java b/org.springframework.test/src/main/java/org/springframework/mock/web/DelegatingServletOutputStream.java
deleted file mode 100644
index e1625775850..00000000000
--- a/org.springframework.test/src/main/java/org/springframework/mock/web/DelegatingServletOutputStream.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright 2002-2007 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.mock.web;
-
-import java.io.IOException;
-import java.io.OutputStream;
-
-import javax.servlet.ServletOutputStream;
-
-import org.springframework.util.Assert;
-
-/**
- * Delegating implementation of {@link javax.servlet.ServletOutputStream}.
- *
- *
Used by {@link MockHttpServletResponse}; typically not directly
- * used for testing application controllers.
- *
- * @author Juergen Hoeller
- * @since 1.0.2
- * @see MockHttpServletResponse
- */
-public class DelegatingServletOutputStream extends ServletOutputStream {
-
- private final OutputStream targetStream;
-
-
- /**
- * Create a DelegatingServletOutputStream for the given target stream.
- * @param targetStream the target stream (never null)
- */
- public DelegatingServletOutputStream(OutputStream targetStream) {
- Assert.notNull(targetStream, "Target OutputStream must not be null");
- this.targetStream = targetStream;
- }
-
- /**
- * Return the underlying target stream (never null).
- */
- public final OutputStream getTargetStream() {
- return this.targetStream;
- }
-
-
- public void write(int b) throws IOException {
- this.targetStream.write(b);
- }
-
- public void flush() throws IOException {
- super.flush();
- this.targetStream.flush();
- }
-
- public void close() throws IOException {
- super.close();
- this.targetStream.close();
- }
-
-}
diff --git a/org.springframework.test/src/main/java/org/springframework/mock/web/HeaderValueHolder.java b/org.springframework.test/src/main/java/org/springframework/mock/web/HeaderValueHolder.java
deleted file mode 100644
index aedfa790877..00000000000
--- a/org.springframework.test/src/main/java/org/springframework/mock/web/HeaderValueHolder.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright 2002-2008 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.mock.web;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-import org.springframework.util.Assert;
-import org.springframework.util.CollectionUtils;
-
-/**
- * Internal helper class that serves as value holder for request headers.
- *
- * @author Juergen Hoeller
- * @author Rick Evans
- * @since 2.0.1
- */
-class HeaderValueHolder {
-
- private final List values = new LinkedList();
-
-
- public void setValue(Object value) {
- this.values.clear();
- this.values.add(value);
- }
-
- public void addValue(Object value) {
- this.values.add(value);
- }
-
- public void addValues(Collection> values) {
- this.values.addAll(values);
- }
-
- public void addValueArray(Object values) {
- CollectionUtils.mergeArrayIntoCollection(values, this.values);
- }
-
- public List getValues() {
- return Collections.unmodifiableList(this.values);
- }
-
- public List getStringValues() {
- List stringList = new ArrayList(this.values.size());
- for (Object value : this.values) {
- stringList.add(value.toString());
- }
- return Collections.unmodifiableList(stringList);
- }
-
- public Object getValue() {
- return (!this.values.isEmpty() ? this.values.get(0) : null);
- }
-
-
- /**
- * Find a HeaderValueHolder by name, ignoring casing.
- * @param headers the Map of header names to HeaderValueHolders
- * @param name the name of the desired header
- * @return the corresponding HeaderValueHolder,
- * or null if none found
- */
- public static HeaderValueHolder getByName(Map headers, String name) {
- Assert.notNull(name, "Header name must not be null");
- for (String headerName : headers.keySet()) {
- if (headerName.equalsIgnoreCase(name)) {
- return headers.get(headerName);
- }
- }
- return null;
- }
-
-}
diff --git a/org.springframework.test/src/main/java/org/springframework/mock/web/MockBodyContent.java b/org.springframework.test/src/main/java/org/springframework/mock/web/MockBodyContent.java
deleted file mode 100644
index 829d109cdae..00000000000
--- a/org.springframework.test/src/main/java/org/springframework/mock/web/MockBodyContent.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Copyright 2002-2007 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.mock.web;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.io.StringReader;
-import java.io.Writer;
-
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.jsp.JspWriter;
-import javax.servlet.jsp.tagext.BodyContent;
-
-/**
- * Mock implementation of the {@link javax.servlet.jsp.tagext.BodyContent} class.
- *
- * Used for testing the web framework; only necessary for testing
- * applications when testing custom JSP tags.
- *
- * @author Juergen Hoeller
- * @since 2.5
- */
-public class MockBodyContent extends BodyContent {
-
- private final String content;
-
-
- /**
- * Create a MockBodyContent for the given response.
- * @param content the body content to expose
- * @param response the servlet response to wrap
- */
- public MockBodyContent(String content, HttpServletResponse response) {
- this(content, response, null);
- }
-
- /**
- * Create a MockBodyContent for the given response.
- * @param content the body content to expose
- * @param targetWriter the target Writer to wrap
- */
- public MockBodyContent(String content, Writer targetWriter) {
- this(content, null, targetWriter);
- }
-
- /**
- * Create a MockBodyContent for the given response.
- * @param content the body content to expose
- * @param response the servlet response to wrap
- * @param targetWriter the target Writer to wrap
- */
- public MockBodyContent(String content, HttpServletResponse response, Writer targetWriter) {
- super(adaptJspWriter(targetWriter, response));
- this.content = content;
- }
-
- private static JspWriter adaptJspWriter(Writer targetWriter, HttpServletResponse response) {
- if (targetWriter instanceof JspWriter) {
- return (JspWriter) targetWriter;
- }
- else {
- return new MockJspWriter(response, targetWriter);
- }
- }
-
-
- public Reader getReader() {
- return new StringReader(this.content);
- }
-
- public String getString() {
- return this.content;
- }
-
- public void writeOut(Writer writer) throws IOException {
- writer.write(this.content);
- }
-
-
- //---------------------------------------------------------------------
- // Delegating implementations of JspWriter's abstract methods
- //---------------------------------------------------------------------
-
- public void clear() throws IOException {
- getEnclosingWriter().clear();
- }
-
- public void clearBuffer() throws IOException {
- getEnclosingWriter().clearBuffer();
- }
-
- public void close() throws IOException {
- getEnclosingWriter().close();
- }
-
- public int getRemaining() {
- return getEnclosingWriter().getRemaining();
- }
-
- public void newLine() throws IOException {
- getEnclosingWriter().println();
- }
-
- public void write(char value[], int offset, int length) throws IOException {
- getEnclosingWriter().write(value, offset, length);
- }
-
- public void print(boolean value) throws IOException {
- getEnclosingWriter().print(value);
- }
-
- public void print(char value) throws IOException {
- getEnclosingWriter().print(value);
- }
-
- public void print(char[] value) throws IOException {
- getEnclosingWriter().print(value);
- }
-
- public void print(double value) throws IOException {
- getEnclosingWriter().print(value);
- }
-
- public void print(float value) throws IOException {
- getEnclosingWriter().print(value);
- }
-
- public void print(int value) throws IOException {
- getEnclosingWriter().print(value);
- }
-
- public void print(long value) throws IOException {
- getEnclosingWriter().print(value);
- }
-
- public void print(Object value) throws IOException {
- getEnclosingWriter().print(value);
- }
-
- public void print(String value) throws IOException {
- getEnclosingWriter().print(value);
- }
-
- public void println() throws IOException {
- getEnclosingWriter().println();
- }
-
- public void println(boolean value) throws IOException {
- getEnclosingWriter().println(value);
- }
-
- public void println(char value) throws IOException {
- getEnclosingWriter().println(value);
- }
-
- public void println(char[] value) throws IOException {
- getEnclosingWriter().println(value);
- }
-
- public void println(double value) throws IOException {
- getEnclosingWriter().println(value);
- }
-
- public void println(float value) throws IOException {
- getEnclosingWriter().println(value);
- }
-
- public void println(int value) throws IOException {
- getEnclosingWriter().println(value);
- }
-
- public void println(long value) throws IOException {
- getEnclosingWriter().println(value);
- }
-
- public void println(Object value) throws IOException {
- getEnclosingWriter().println(value);
- }
-
- public void println(String value) throws IOException {
- getEnclosingWriter().println(value);
- }
-
-}
diff --git a/org.springframework.test/src/main/java/org/springframework/mock/web/MockExpressionEvaluator.java b/org.springframework.test/src/main/java/org/springframework/mock/web/MockExpressionEvaluator.java
deleted file mode 100644
index fd87175939c..00000000000
--- a/org.springframework.test/src/main/java/org/springframework/mock/web/MockExpressionEvaluator.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright 2002-2006 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.mock.web;
-
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.PageContext;
-import javax.servlet.jsp.el.ELException;
-import javax.servlet.jsp.el.Expression;
-import javax.servlet.jsp.el.ExpressionEvaluator;
-import javax.servlet.jsp.el.FunctionMapper;
-import javax.servlet.jsp.el.VariableResolver;
-
-import org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager;
-
-/**
- * Mock implementation of the JSP 2.0 {@link javax.servlet.jsp.el.ExpressionEvaluator}
- * interface, delegating to the Jakarta JSTL ExpressionEvaluatorManager.
- *
- *
Used for testing the web framework; only necessary for testing
- * applications when testing custom JSP tags.
- *
- *
Note that the Jakarta JSTL implementation (jstl.jar, standard.jar)
- * has to be available on the class path to use this expression evaluator.
- *
- * @author Juergen Hoeller
- * @since 1.1.5
- * @see org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager
- */
-public class MockExpressionEvaluator extends ExpressionEvaluator {
-
- private final PageContext pageContext;
-
-
- /**
- * Create a new MockExpressionEvaluator for the given PageContext.
- * @param pageContext the JSP PageContext to run in
- */
- public MockExpressionEvaluator(PageContext pageContext) {
- this.pageContext = pageContext;
- }
-
- public Expression parseExpression(
- final String expression, final Class expectedType, final FunctionMapper functionMapper)
- throws ELException {
-
- return new Expression() {
- public Object evaluate(VariableResolver variableResolver) throws ELException {
- return doEvaluate(expression, expectedType, functionMapper);
- }
- };
- }
-
- public Object evaluate(
- String expression, Class expectedType, VariableResolver variableResolver, FunctionMapper functionMapper)
- throws ELException {
-
- if (variableResolver != null) {
- throw new IllegalArgumentException("Custom VariableResolver not supported");
- }
- return doEvaluate(expression, expectedType, functionMapper);
- }
-
- protected Object doEvaluate(
- String expression, Class expectedType, FunctionMapper functionMapper)
- throws ELException {
-
- if (functionMapper != null) {
- throw new IllegalArgumentException("Custom FunctionMapper not supported");
- }
- try {
- return ExpressionEvaluatorManager.evaluate("JSP EL expression", expression, expectedType, this.pageContext);
- }
- catch (JspException ex) {
- throw new ELException("Parsing of JSP EL expression \"" + expression + "\" failed", ex);
- }
- }
-
-}
diff --git a/org.springframework.test/src/main/java/org/springframework/mock/web/MockFilterChain.java b/org.springframework.test/src/main/java/org/springframework/mock/web/MockFilterChain.java
deleted file mode 100644
index b4e53bdd438..00000000000
--- a/org.springframework.test/src/main/java/org/springframework/mock/web/MockFilterChain.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright 2002-2007 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.mock.web;
-
-import javax.servlet.FilterChain;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-
-import org.springframework.util.Assert;
-
-/**
- * Mock implementation of the {@link javax.servlet.FilterConfig} interface.
- *
- *
Used for testing the web framework; also usefol for testing
- * custom {@link javax.servlet.Filter} implementations.
- *
- * @author Juergen Hoeller
- * @since 2.0.3
- * @see MockFilterConfig
- * @see PassThroughFilterChain
- */
-public class MockFilterChain implements FilterChain {
-
- private ServletRequest request;
-
- private ServletResponse response;
-
-
- /**
- * Records the request and response.
- */
- public void doFilter(ServletRequest request, ServletResponse response) {
- Assert.notNull(request, "Request must not be null");
- Assert.notNull(response, "Response must not be null");
- if (this.request != null) {
- throw new IllegalStateException("This FilterChain has already been called!");
- }
- this.request = request;
- this.response = response;
- }
-
- /**
- * Return the request that {@link #doFilter} has been called with.
- */
- public ServletRequest getRequest() {
- return this.request;
- }
-
- /**
- * Return the response that {@link #doFilter} has been called with.
- */
- public ServletResponse getResponse() {
- return this.response;
- }
-
-}
diff --git a/org.springframework.test/src/main/java/org/springframework/mock/web/MockFilterConfig.java b/org.springframework.test/src/main/java/org/springframework/mock/web/MockFilterConfig.java
deleted file mode 100644
index 69d50dacadf..00000000000
--- a/org.springframework.test/src/main/java/org/springframework/mock/web/MockFilterConfig.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright 2002-2008 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.mock.web;
-
-import java.util.Enumeration;
-import java.util.Properties;
-import java.util.Collections;
-import java.util.Map;
-import java.util.LinkedHashMap;
-
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletContext;
-
-import org.springframework.util.Assert;
-
-/**
- * Mock implementation of the {@link javax.servlet.FilterConfig} interface.
- *
- *
Used for testing the web framework; also usefol for testing
- * custom {@link javax.servlet.Filter} implementations.
- *
- * @author Juergen Hoeller
- * @since 1.0.2
- * @see MockFilterChain
- * @see PassThroughFilterChain
- */
-public class MockFilterConfig implements FilterConfig {
-
- private final ServletContext servletContext;
-
- private final String filterName;
-
- private final Map initParameters = new LinkedHashMap();
-
-
- /**
- * Create a new MockFilterConfig with a default {@link MockServletContext}.
- */
- public MockFilterConfig() {
- this(null, "");
- }
-
- /**
- * Create a new MockFilterConfig with a default {@link MockServletContext}.
- * @param filterName the name of the filter
- */
- public MockFilterConfig(String filterName) {
- this(null, filterName);
- }
-
- /**
- * Create a new MockFilterConfig.
- * @param servletContext the ServletContext that the servlet runs in
- */
- public MockFilterConfig(ServletContext servletContext) {
- this(servletContext, "");
- }
-
- /**
- * Create a new MockFilterConfig.
- * @param servletContext the ServletContext that the servlet runs in
- * @param filterName the name of the filter
- */
- public MockFilterConfig(ServletContext servletContext, String filterName) {
- this.servletContext = (servletContext != null ? servletContext : new MockServletContext());
- this.filterName = filterName;
- }
-
-
- public String getFilterName() {
- return filterName;
- }
-
- public ServletContext getServletContext() {
- return servletContext;
- }
-
- public void addInitParameter(String name, String value) {
- Assert.notNull(name, "Parameter name must not be null");
- this.initParameters.put(name, value);
- }
-
- public String getInitParameter(String name) {
- Assert.notNull(name, "Parameter name must not be null");
- return this.initParameters.get(name);
- }
-
- public Enumeration getInitParameterNames() {
- return Collections.enumeration(this.initParameters.keySet());
- }
-
-}
diff --git a/org.springframework.test/src/main/java/org/springframework/mock/web/MockHttpServletRequest.java b/org.springframework.test/src/main/java/org/springframework/mock/web/MockHttpServletRequest.java
deleted file mode 100644
index 090a55d770b..00000000000
--- a/org.springframework.test/src/main/java/org/springframework/mock/web/MockHttpServletRequest.java
+++ /dev/null
@@ -1,848 +0,0 @@
-/*
- * Copyright 2002-2008 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.mock.web;
-
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.UnsupportedEncodingException;
-import java.security.Principal;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Date;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.LinkedHashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletInputStream;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-
-import org.springframework.util.Assert;
-
-/**
- * Mock implementation of the {@link javax.servlet.http.HttpServletRequest}
- * interface. Supports the Servlet 2.5 API level.
- *
- * Used for testing the web framework; also useful for testing
- * application controllers.
- *
- * @author Juergen Hoeller
- * @author Rod Johnson
- * @author Rick Evans
- * @author Mark Fisher
- * @since 1.0.2
- */
-public class MockHttpServletRequest implements HttpServletRequest {
-
- /**
- * The default protocol: 'http'.
- */
- public static final String DEFAULT_PROTOCOL = "http";
-
- /**
- * The default server address: '127.0.0.1'.
- */
- public static final String DEFAULT_SERVER_ADDR = "127.0.0.1";
-
- /**
- * The default server name: 'localhost'.
- */
- public static final String DEFAULT_SERVER_NAME = "localhost";
-
- /**
- * The default server port: '80'.
- */
- public static final int DEFAULT_SERVER_PORT = 80;
-
- /**
- * The default remote address: '127.0.0.1'.
- */
- public static final String DEFAULT_REMOTE_ADDR = "127.0.0.1";
-
- /**
- * The default remote host: 'localhost'.
- */
- public static final String DEFAULT_REMOTE_HOST = "localhost";
-
-
- private boolean active = true;
-
-
- //---------------------------------------------------------------------
- // ServletRequest properties
- //---------------------------------------------------------------------
-
- private final Hashtable attributes = new Hashtable();
-
- private String characterEncoding;
-
- private byte[] content;
-
- private String contentType;
-
- private final Map parameters = new LinkedHashMap(16);
-
- private String protocol = DEFAULT_PROTOCOL;
-
- private String scheme = DEFAULT_PROTOCOL;
-
- private String serverName = DEFAULT_SERVER_NAME;
-
- private int serverPort = DEFAULT_SERVER_PORT;
-
- private String remoteAddr = DEFAULT_REMOTE_ADDR;
-
- private String remoteHost = DEFAULT_REMOTE_HOST;
-
- /** List of locales in descending order */
- private final List locales = new LinkedList();
-
- private boolean secure = false;
-
- private final ServletContext servletContext;
-
- private int remotePort = DEFAULT_SERVER_PORT;
-
- private String localName = DEFAULT_SERVER_NAME;
-
- private String localAddr = DEFAULT_SERVER_ADDR;
-
- private int localPort = DEFAULT_SERVER_PORT;
-
-
- //---------------------------------------------------------------------
- // HttpServletRequest properties
- //---------------------------------------------------------------------
-
- private String authType;
-
- private Cookie[] cookies;
-
- /**
- * The key is the lowercase header name; the value is a {@link HeaderValueHolder} object.
- */
- private final Map headers = new Hashtable();
-
- private String method;
-
- private String pathInfo;
-
- private String contextPath = "";
-
- private String queryString;
-
- private String remoteUser;
-
- private final Set userRoles = new HashSet();
-
- private Principal userPrincipal;
-
- private String requestURI;
-
- private String servletPath = "";
-
- private HttpSession session;
-
- private boolean requestedSessionIdValid = true;
-
- private boolean requestedSessionIdFromCookie = true;
-
- private boolean requestedSessionIdFromURL = false;
-
-
- //---------------------------------------------------------------------
- // Constructors
- //---------------------------------------------------------------------
-
- /**
- * Create a new MockHttpServletRequest with a default
- * {@link MockServletContext}.
- * @see MockServletContext
- */
- public MockHttpServletRequest() {
- this(null, "", "");
- }
-
- /**
- * Create a new MockHttpServletRequest with a default
- * {@link MockServletContext}.
- * @param method the request method (may be null)
- * @param requestURI the request URI (may be null)
- * @see #setMethod
- * @see #setRequestURI
- * @see MockServletContext
- */
- public MockHttpServletRequest(String method, String requestURI) {
- this(null, method, requestURI);
- }
-
- /**
- * Create a new MockHttpServletRequest.
- * @param servletContext the ServletContext that the request runs in
- * (may be null to use a default MockServletContext)
- * @see MockServletContext
- */
- public MockHttpServletRequest(ServletContext servletContext) {
- this(servletContext, "", "");
- }
-
- /**
- * Create a new MockHttpServletRequest.
- * @param servletContext the ServletContext that the request runs in
- * (may be null to use a default MockServletContext)
- * @param method the request method (may be null)
- * @param requestURI the request URI (may be null)
- * @see #setMethod
- * @see #setRequestURI
- * @see MockServletContext
- */
- public MockHttpServletRequest(ServletContext servletContext, String method, String requestURI) {
- this.servletContext = (servletContext != null ? servletContext : new MockServletContext());
- this.method = method;
- this.requestURI = requestURI;
- this.locales.add(Locale.ENGLISH);
- }
-
-
- //---------------------------------------------------------------------
- // Lifecycle methods
- //---------------------------------------------------------------------
-
- /**
- * Return the ServletContext that this request is associated with.
- * (Not available in the standard HttpServletRequest interface for some reason.)
- */
- public ServletContext getServletContext() {
- return this.servletContext;
- }
-
- /**
- * Return whether this request is still active (that is, not completed yet).
- */
- public boolean isActive() {
- return this.active;
- }
-
- /**
- * Mark this request as completed, keeping its state.
- */
- public void close() {
- this.active = false;
- }
-
- /**
- * Invalidate this request, clearing its state.
- */
- public void invalidate() {
- close();
- clearAttributes();
- }
-
- /**
- * Check whether this request is still active (that is, not completed yet),
- * throwing an IllegalStateException if not active anymore.
- */
- protected void checkActive() throws IllegalStateException {
- if (!this.active) {
- throw new IllegalStateException("Request is not active anymore");
- }
- }
-
-
- //---------------------------------------------------------------------
- // ServletRequest interface
- //---------------------------------------------------------------------
-
- public Object getAttribute(String name) {
- checkActive();
- return this.attributes.get(name);
- }
-
- public Enumeration getAttributeNames() {
- checkActive();
- return this.attributes.keys();
- }
-
- public String getCharacterEncoding() {
- return this.characterEncoding;
- }
-
- public void setCharacterEncoding(String characterEncoding) {
- this.characterEncoding = characterEncoding;
- }
-
- public void setContent(byte[] content) {
- this.content = content;
- }
-
- public int getContentLength() {
- return (this.content != null ? this.content.length : -1);
- }
-
- public void setContentType(String contentType) {
- this.contentType = contentType;
- }
-
- public String getContentType() {
- return this.contentType;
- }
-
- public ServletInputStream getInputStream() {
- if (this.content != null) {
- return new DelegatingServletInputStream(new ByteArrayInputStream(this.content));
- }
- else {
- return null;
- }
- }
-
- /**
- * Set a single value for the specified HTTP parameter.
- * If there are already one or more values registered for the given
- * parameter name, they will be replaced.
- */
- public void setParameter(String name, String value) {
- setParameter(name, new String[] {value});
- }
-
- /**
- * Set an array of values for the specified HTTP parameter.
- *
If there are already one or more values registered for the given
- * parameter name, they will be replaced.
- */
- public void setParameter(String name, String[] values) {
- Assert.notNull(name, "Parameter name must not be null");
- this.parameters.put(name, values);
- }
-
- /**
- * Sets all provided parameters replacing any
- * existing values for the provided parameter names. To add without
- * replacing existing values, use {@link #addParameters(java.util.Map)}.
- */
- public void setParameters(Map params) {
- Assert.notNull(params, "Parameter map must not be null");
- for (Object key : params.keySet()) {
- Assert.isInstanceOf(String.class, key,
- "Parameter map key must be of type [" + String.class.getName() + "]");
- Object value = params.get(key);
- if (value instanceof String) {
- this.setParameter((String) key, (String) value);
- }
- else if (value instanceof String[]) {
- this.setParameter((String) key, (String[]) value);
- }
- else {
- throw new IllegalArgumentException(
- "Parameter map value must be single value " + " or array of type [" + String.class.getName() +
- "]");
- }
- }
- }
-
- /**
- * Add a single value for the specified HTTP parameter.
- *
If there are already one or more values registered for the given
- * parameter name, the given value will be added to the end of the list.
- */
- public void addParameter(String name, String value) {
- addParameter(name, new String[] {value});
- }
-
- /**
- * Add an array of values for the specified HTTP parameter.
- *
If there are already one or more values registered for the given
- * parameter name, the given values will be added to the end of the list.
- */
- public void addParameter(String name, String[] values) {
- Assert.notNull(name, "Parameter name must not be null");
- String[] oldArr = this.parameters.get(name);
- if (oldArr != null) {
- String[] newArr = new String[oldArr.length + values.length];
- System.arraycopy(oldArr, 0, newArr, 0, oldArr.length);
- System.arraycopy(values, 0, newArr, oldArr.length, values.length);
- this.parameters.put(name, newArr);
- }
- else {
- this.parameters.put(name, values);
- }
- }
-
- /**
- * Adds all provided parameters without replacing
- * any existing values. To replace existing values, use
- * {@link #setParameters(java.util.Map)}.
- */
- public void addParameters(Map params) {
- Assert.notNull(params, "Parameter map must not be null");
- for (Object key : params.keySet()) {
- Assert.isInstanceOf(String.class, key,
- "Parameter map key must be of type [" + String.class.getName() + "]");
- Object value = params.get(key);
- if (value instanceof String) {
- this.addParameter((String) key, (String) value);
- }
- else if (value instanceof String[]) {
- this.addParameter((String) key, (String[]) value);
- }
- else {
- throw new IllegalArgumentException("Parameter map value must be single value " +
- " or array of type [" + String.class.getName() + "]");
- }
- }
- }
-
- /**
- * Remove already registered values for the specified HTTP parameter, if any.
- */
- public void removeParameter(String name) {
- Assert.notNull(name, "Parameter name must not be null");
- this.parameters.remove(name);
- }
-
- /**
- * Removes all existing parameters.
- */
- public void removeAllParameters() {
- this.parameters.clear();
- }
-
- public String getParameter(String name) {
- Assert.notNull(name, "Parameter name must not be null");
- String[] arr = this.parameters.get(name);
- return (arr != null && arr.length > 0 ? arr[0] : null);
- }
-
- public Enumeration getParameterNames() {
- return Collections.enumeration(this.parameters.keySet());
- }
-
- public String[] getParameterValues(String name) {
- Assert.notNull(name, "Parameter name must not be null");
- return this.parameters.get(name);
- }
-
- public Map getParameterMap() {
- return Collections.unmodifiableMap(this.parameters);
- }
-
- public void setProtocol(String protocol) {
- this.protocol = protocol;
- }
-
- public String getProtocol() {
- return this.protocol;
- }
-
- public void setScheme(String scheme) {
- this.scheme = scheme;
- }
-
- public String getScheme() {
- return this.scheme;
- }
-
- public void setServerName(String serverName) {
- this.serverName = serverName;
- }
-
- public String getServerName() {
- return this.serverName;
- }
-
- public void setServerPort(int serverPort) {
- this.serverPort = serverPort;
- }
-
- public int getServerPort() {
- return this.serverPort;
- }
-
- public BufferedReader getReader() throws UnsupportedEncodingException {
- if (this.content != null) {
- InputStream sourceStream = new ByteArrayInputStream(this.content);
- Reader sourceReader = (this.characterEncoding != null) ?
- new InputStreamReader(sourceStream, this.characterEncoding) : new InputStreamReader(sourceStream);
- return new BufferedReader(sourceReader);
- }
- else {
- return null;
- }
- }
-
- public void setRemoteAddr(String remoteAddr) {
- this.remoteAddr = remoteAddr;
- }
-
- public String getRemoteAddr() {
- return this.remoteAddr;
- }
-
- public void setRemoteHost(String remoteHost) {
- this.remoteHost = remoteHost;
- }
-
- public String getRemoteHost() {
- return this.remoteHost;
- }
-
- public void setAttribute(String name, Object value) {
- checkActive();
- Assert.notNull(name, "Attribute name must not be null");
- if (value != null) {
- this.attributes.put(name, value);
- }
- else {
- this.attributes.remove(name);
- }
- }
-
- public void removeAttribute(String name) {
- checkActive();
- Assert.notNull(name, "Attribute name must not be null");
- this.attributes.remove(name);
- }
-
- /**
- * Clear all of this request's attributes.
- */
- public void clearAttributes() {
- this.attributes.clear();
- }
-
- /**
- * Add a new preferred locale, before any existing locales.
- */
- public void addPreferredLocale(Locale locale) {
- Assert.notNull(locale, "Locale must not be null");
- this.locales.add(0, locale);
- }
-
- public Locale getLocale() {
- return this.locales.get(0);
- }
-
- public Enumeration getLocales() {
- return Collections.enumeration(this.locales);
- }
-
- public void setSecure(boolean secure) {
- this.secure = secure;
- }
-
- public boolean isSecure() {
- return this.secure;
- }
-
- public RequestDispatcher getRequestDispatcher(String path) {
- return new MockRequestDispatcher(path);
- }
-
- public String getRealPath(String path) {
- return this.servletContext.getRealPath(path);
- }
-
- public void setRemotePort(int remotePort) {
- this.remotePort = remotePort;
- }
-
- public int getRemotePort() {
- return this.remotePort;
- }
-
- public void setLocalName(String localName) {
- this.localName = localName;
- }
-
- public String getLocalName() {
- return this.localName;
- }
-
- public void setLocalAddr(String localAddr) {
- this.localAddr = localAddr;
- }
-
- public String getLocalAddr() {
- return this.localAddr;
- }
-
- public void setLocalPort(int localPort) {
- this.localPort = localPort;
- }
-
- public int getLocalPort() {
- return this.localPort;
- }
-
-
- //---------------------------------------------------------------------
- // HttpServletRequest interface
- //---------------------------------------------------------------------
-
- public void setAuthType(String authType) {
- this.authType = authType;
- }
-
- public String getAuthType() {
- return this.authType;
- }
-
- public void setCookies(Cookie[] cookies) {
- this.cookies = cookies;
- }
-
- public Cookie[] getCookies() {
- return this.cookies;
- }
-
- /**
- * Add a header entry for the given name.
- * If there was no entry for that header name before,
- * the value will be used as-is. In case of an existing entry,
- * a String array will be created, adding the given value (more
- * specifically, its toString representation) as further element.
- *
Multiple values can only be stored as list of Strings,
- * following the Servlet spec (see getHeaders accessor).
- * As alternative to repeated addHeader calls for
- * individual elements, you can use a single call with an entire
- * array or Collection of values as parameter.
- * @see #getHeaderNames
- * @see #getHeader
- * @see #getHeaders
- * @see #getDateHeader
- * @see #getIntHeader
- */
- public void addHeader(String name, Object value) {
- HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
- Assert.notNull(value, "Header value must not be null");
- if (header == null) {
- header = new HeaderValueHolder();
- this.headers.put(name, header);
- }
- if (value instanceof Collection) {
- header.addValues((Collection) value);
- }
- else if (value.getClass().isArray()) {
- header.addValueArray(value);
- }
- else {
- header.addValue(value);
- }
- }
-
- public long getDateHeader(String name) {
- HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
- Object value = (header != null ? header.getValue() : null);
- if (value instanceof Date) {
- return ((Date) value).getTime();
- }
- else if (value instanceof Number) {
- return ((Number) value).longValue();
- }
- else if (value != null) {
- throw new IllegalArgumentException(
- "Value for header '" + name + "' is neither a Date nor a Number: " + value);
- }
- else {
- return -1L;
- }
- }
-
- public String getHeader(String name) {
- HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
- return (header != null ? header.getValue().toString() : null);
- }
-
- public Enumeration getHeaders(String name) {
- HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
- return Collections.enumeration(header != null ? header.getStringValues() : new LinkedList());
- }
-
- public Enumeration getHeaderNames() {
- return Collections.enumeration(this.headers.keySet());
- }
-
- public int getIntHeader(String name) {
- HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
- Object value = (header != null ? header.getValue() : null);
- if (value instanceof Number) {
- return ((Number) value).intValue();
- }
- else if (value instanceof String) {
- return Integer.parseInt((String) value);
- }
- else if (value != null) {
- throw new NumberFormatException("Value for header '" + name + "' is not a Number: " + value);
- }
- else {
- return -1;
- }
- }
-
- public void setMethod(String method) {
- this.method = method;
- }
-
- public String getMethod() {
- return this.method;
- }
-
- public void setPathInfo(String pathInfo) {
- this.pathInfo = pathInfo;
- }
-
- public String getPathInfo() {
- return this.pathInfo;
- }
-
- public String getPathTranslated() {
- return (this.pathInfo != null ? getRealPath(this.pathInfo) : null);
- }
-
- public void setContextPath(String contextPath) {
- this.contextPath = contextPath;
- }
-
- public String getContextPath() {
- return this.contextPath;
- }
-
- public void setQueryString(String queryString) {
- this.queryString = queryString;
- }
-
- public String getQueryString() {
- return this.queryString;
- }
-
- public void setRemoteUser(String remoteUser) {
- this.remoteUser = remoteUser;
- }
-
- public String getRemoteUser() {
- return this.remoteUser;
- }
-
- public void addUserRole(String role) {
- this.userRoles.add(role);
- }
-
- public boolean isUserInRole(String role) {
- return this.userRoles.contains(role);
- }
-
- public void setUserPrincipal(Principal userPrincipal) {
- this.userPrincipal = userPrincipal;
- }
-
- public Principal getUserPrincipal() {
- return this.userPrincipal;
- }
-
- public String getRequestedSessionId() {
- HttpSession session = getSession();
- return (session != null ? session.getId() : null);
- }
-
- public void setRequestURI(String requestURI) {
- this.requestURI = requestURI;
- }
-
- public String getRequestURI() {
- return this.requestURI;
- }
-
- public StringBuffer getRequestURL() {
- StringBuffer url = new StringBuffer(this.scheme);
- url.append("://").append(this.serverName).append(':').append(this.serverPort);
- url.append(getRequestURI());
- return url;
- }
-
- public void setServletPath(String servletPath) {
- this.servletPath = servletPath;
- }
-
- public String getServletPath() {
- return this.servletPath;
- }
-
- public void setSession(HttpSession session) {
- this.session = session;
- if (session instanceof MockHttpSession) {
- MockHttpSession mockSession = ((MockHttpSession) session);
- mockSession.access();
- }
- }
-
- public HttpSession getSession(boolean create) {
- checkActive();
- // Reset session if invalidated.
- if (this.session instanceof MockHttpSession && ((MockHttpSession) this.session).isInvalid()) {
- this.session = null;
- }
- // Create new session if necessary.
- if (this.session == null && create) {
- this.session = new MockHttpSession(this.servletContext);
- }
- return this.session;
- }
-
- public HttpSession getSession() {
- return getSession(true);
- }
-
- public void setRequestedSessionIdValid(boolean requestedSessionIdValid) {
- this.requestedSessionIdValid = requestedSessionIdValid;
- }
-
- public boolean isRequestedSessionIdValid() {
- return this.requestedSessionIdValid;
- }
-
- public void setRequestedSessionIdFromCookie(boolean requestedSessionIdFromCookie) {
- this.requestedSessionIdFromCookie = requestedSessionIdFromCookie;
- }
-
- public boolean isRequestedSessionIdFromCookie() {
- return this.requestedSessionIdFromCookie;
- }
-
- public void setRequestedSessionIdFromURL(boolean requestedSessionIdFromURL) {
- this.requestedSessionIdFromURL = requestedSessionIdFromURL;
- }
-
- public boolean isRequestedSessionIdFromURL() {
- return this.requestedSessionIdFromURL;
- }
-
- public boolean isRequestedSessionIdFromUrl() {
- return isRequestedSessionIdFromURL();
- }
-
-}
diff --git a/org.springframework.test/src/main/java/org/springframework/mock/web/MockHttpServletResponse.java b/org.springframework.test/src/main/java/org/springframework/mock/web/MockHttpServletResponse.java
deleted file mode 100644
index a55dec343ec..00000000000
--- a/org.springframework.test/src/main/java/org/springframework/mock/web/MockHttpServletResponse.java
+++ /dev/null
@@ -1,516 +0,0 @@
-/*
- * Copyright 2002-2008 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.mock.web;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.io.UnsupportedEncodingException;
-import java.io.Writer;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.util.Assert;
-import org.springframework.web.util.WebUtils;
-
-/**
- * Mock implementation of the {@link javax.servlet.http.HttpServletResponse}
- * interface. Supports the Servlet 2.5 API level.
- *
- * Used for testing the web framework; also useful for testing
- * application controllers.
- *
- * @author Juergen Hoeller
- * @author Rod Johnson
- * @since 1.0.2
- */
-public class MockHttpServletResponse implements HttpServletResponse {
-
- public static final int DEFAULT_SERVER_PORT = 80;
-
- private static final String CHARSET_PREFIX = "charset=";
-
-
- //---------------------------------------------------------------------
- // ServletResponse properties
- //---------------------------------------------------------------------
-
- private boolean outputStreamAccessAllowed = true;
-
- private boolean writerAccessAllowed = true;
-
- private String characterEncoding = WebUtils.DEFAULT_CHARACTER_ENCODING;
-
- private final ByteArrayOutputStream content = new ByteArrayOutputStream();
-
- private final ServletOutputStream outputStream = new ResponseServletOutputStream(this.content);
-
- private PrintWriter writer;
-
- private int contentLength = 0;
-
- private String contentType;
-
- private int bufferSize = 4096;
-
- private boolean committed;
-
- private Locale locale = Locale.getDefault();
-
-
- //---------------------------------------------------------------------
- // HttpServletResponse properties
- //---------------------------------------------------------------------
-
- private final List cookies = new ArrayList();
-
- /**
- * The key is the lowercase header name; the value is a {@link HeaderValueHolder} object.
- */
- private final Map headers = new HashMap();
-
- private int status = HttpServletResponse.SC_OK;
-
- private String errorMessage;
-
- private String redirectedUrl;
-
- private String forwardedUrl;
-
- private String includedUrl;
-
-
- //---------------------------------------------------------------------
- // ServletResponse interface
- //---------------------------------------------------------------------
-
- /**
- * Set whether {@link #getOutputStream()} access is allowed.
- * Default is true.
- */
- public void setOutputStreamAccessAllowed(boolean outputStreamAccessAllowed) {
- this.outputStreamAccessAllowed = outputStreamAccessAllowed;
- }
-
- /**
- * Return whether {@link #getOutputStream()} access is allowed.
- */
- public boolean isOutputStreamAccessAllowed() {
- return this.outputStreamAccessAllowed;
- }
-
- /**
- * Set whether {@link #getWriter()} access is allowed.
- *
Default is true.
- */
- public void setWriterAccessAllowed(boolean writerAccessAllowed) {
- this.writerAccessAllowed = writerAccessAllowed;
- }
-
- /**
- * Return whether {@link #getOutputStream()} access is allowed.
- */
- public boolean isWriterAccessAllowed() {
- return this.writerAccessAllowed;
- }
-
- public void setCharacterEncoding(String characterEncoding) {
- this.characterEncoding = characterEncoding;
- }
-
- public String getCharacterEncoding() {
- return this.characterEncoding;
- }
-
- public ServletOutputStream getOutputStream() {
- if (!this.outputStreamAccessAllowed) {
- throw new IllegalStateException("OutputStream access not allowed");
- }
- return this.outputStream;
- }
-
- public PrintWriter getWriter() throws UnsupportedEncodingException {
- if (!this.writerAccessAllowed) {
- throw new IllegalStateException("Writer access not allowed");
- }
- if (this.writer == null) {
- Writer targetWriter = (this.characterEncoding != null ?
- new OutputStreamWriter(this.content, this.characterEncoding) : new OutputStreamWriter(this.content));
- this.writer = new ResponsePrintWriter(targetWriter);
- }
- return this.writer;
- }
-
- public byte[] getContentAsByteArray() {
- flushBuffer();
- return this.content.toByteArray();
- }
-
- public String getContentAsString() throws UnsupportedEncodingException {
- flushBuffer();
- return (this.characterEncoding != null) ?
- this.content.toString(this.characterEncoding) : this.content.toString();
- }
-
- public void setContentLength(int contentLength) {
- this.contentLength = contentLength;
- }
-
- public int getContentLength() {
- return this.contentLength;
- }
-
- public void setContentType(String contentType) {
- this.contentType = contentType;
- if (contentType != null) {
- int charsetIndex = contentType.toLowerCase().indexOf(CHARSET_PREFIX);
- if (charsetIndex != -1) {
- String encoding = contentType.substring(charsetIndex + CHARSET_PREFIX.length());
- setCharacterEncoding(encoding);
- }
- }
- }
-
- public String getContentType() {
- return this.contentType;
- }
-
- public void setBufferSize(int bufferSize) {
- this.bufferSize = bufferSize;
- }
-
- public int getBufferSize() {
- return this.bufferSize;
- }
-
- public void flushBuffer() {
- setCommitted(true);
- }
-
- public void resetBuffer() {
- if (isCommitted()) {
- throw new IllegalStateException("Cannot reset buffer - response is already committed");
- }
- this.content.reset();
- }
-
- private void setCommittedIfBufferSizeExceeded() {
- int bufSize = getBufferSize();
- if (bufSize > 0 && this.content.size() > bufSize) {
- setCommitted(true);
- }
- }
-
- public void setCommitted(boolean committed) {
- this.committed = committed;
- }
-
- public boolean isCommitted() {
- return this.committed;
- }
-
- public void reset() {
- resetBuffer();
- this.characterEncoding = null;
- this.contentLength = 0;
- this.contentType = null;
- this.locale = null;
- this.cookies.clear();
- this.headers.clear();
- this.status = HttpServletResponse.SC_OK;
- this.errorMessage = null;
- }
-
- public void setLocale(Locale locale) {
- this.locale = locale;
- }
-
- public Locale getLocale() {
- return this.locale;
- }
-
-
- //---------------------------------------------------------------------
- // HttpServletResponse interface
- //---------------------------------------------------------------------
-
- public void addCookie(Cookie cookie) {
- Assert.notNull(cookie, "Cookie must not be null");
- this.cookies.add(cookie);
- }
-
- public Cookie[] getCookies() {
- return this.cookies.toArray(new Cookie[this.cookies.size()]);
- }
-
- public Cookie getCookie(String name) {
- Assert.notNull(name, "Cookie name must not be null");
- for (Cookie cookie : this.cookies) {
- if (name.equals(cookie.getName())) {
- return cookie;
- }
- }
- return null;
- }
-
- public boolean containsHeader(String name) {
- return (HeaderValueHolder.getByName(this.headers, name) != null);
- }
-
- /**
- * Return the names of all specified headers as a Set of Strings.
- * @return the Set of header name Strings, or an empty Set if none
- */
- public Set getHeaderNames() {
- return this.headers.keySet();
- }
-
- /**
- * Return the primary value for the given header, if any.
- * Will return the first value in case of multiple values.
- * @param name the name of the header
- * @return the associated header value, or null if none
- */
- public Object getHeader(String name) {
- HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
- return (header != null ? header.getValue() : null);
- }
-
- /**
- * Return all values for the given header as a List of value objects.
- * @param name the name of the header
- * @return the associated header values, or an empty List if none
- */
- public List getHeaders(String name) {
- HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
- return (header != null ? header.getValues() : Collections.emptyList());
- }
-
- /**
- * The default implementation returns the given URL String as-is.
- * Can be overridden in subclasses, appending a session id or the like.
- */
- public String encodeURL(String url) {
- return url;
- }
-
- /**
- * The default implementation delegates to {@link #encodeURL},
- * returning the given URL String as-is.
- *
Can be overridden in subclasses, appending a session id or the like
- * in a redirect-specific fashion. For general URL encoding rules,
- * override the common {@link #encodeURL} method instead, appyling
- * to redirect URLs as well as to general URLs.
- */
- public String encodeRedirectURL(String url) {
- return encodeURL(url);
- }
-
- public String encodeUrl(String url) {
- return encodeURL(url);
- }
-
- public String encodeRedirectUrl(String url) {
- return encodeRedirectURL(url);
- }
-
- public void sendError(int status, String errorMessage) throws IOException {
- if (isCommitted()) {
- throw new IllegalStateException("Cannot set error status - response is already committed");
- }
- this.status = status;
- this.errorMessage = errorMessage;
- setCommitted(true);
- }
-
- public void sendError(int status) throws IOException {
- if (isCommitted()) {
- throw new IllegalStateException("Cannot set error status - response is already committed");
- }
- this.status = status;
- setCommitted(true);
- }
-
- public void sendRedirect(String url) throws IOException {
- if (isCommitted()) {
- throw new IllegalStateException("Cannot send redirect - response is already committed");
- }
- Assert.notNull(url, "Redirect URL must not be null");
- this.redirectedUrl = url;
- setCommitted(true);
- }
-
- public String getRedirectedUrl() {
- return this.redirectedUrl;
- }
-
- public void setDateHeader(String name, long value) {
- setHeaderValue(name, value);
- }
-
- public void addDateHeader(String name, long value) {
- addHeaderValue(name, value);
- }
-
- public void setHeader(String name, String value) {
- setHeaderValue(name, value);
- }
-
- public void addHeader(String name, String value) {
- addHeaderValue(name, value);
- }
-
- public void setIntHeader(String name, int value) {
- setHeaderValue(name, value);
- }
-
- public void addIntHeader(String name, int value) {
- addHeaderValue(name, value);
- }
-
- private void setHeaderValue(String name, Object value) {
- doAddHeaderValue(name, value, true);
- }
-
- private void addHeaderValue(String name, Object value) {
- doAddHeaderValue(name, value, false);
- }
-
- private void doAddHeaderValue(String name, Object value, boolean replace) {
- HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name);
- Assert.notNull(value, "Header value must not be null");
- if (header == null) {
- header = new HeaderValueHolder();
- this.headers.put(name, header);
- }
- if (replace) {
- header.setValue(value);
- }
- else {
- header.addValue(value);
- }
- }
-
- public void setStatus(int status) {
- this.status = status;
- }
-
- public void setStatus(int status, String errorMessage) {
- this.status = status;
- this.errorMessage = errorMessage;
- }
-
- public int getStatus() {
- return this.status;
- }
-
- public String getErrorMessage() {
- return this.errorMessage;
- }
-
-
- //---------------------------------------------------------------------
- // Methods for MockRequestDispatcher
- //---------------------------------------------------------------------
-
- public void setForwardedUrl(String forwardedUrl) {
- this.forwardedUrl = forwardedUrl;
- }
-
- public String getForwardedUrl() {
- return this.forwardedUrl;
- }
-
- public void setIncludedUrl(String includedUrl) {
- this.includedUrl = includedUrl;
- }
-
- public String getIncludedUrl() {
- return this.includedUrl;
- }
-
-
- /**
- * Inner class that adapts the ServletOutputStream to mark the
- * response as committed once the buffer size is exceeded.
- */
- private class ResponseServletOutputStream extends DelegatingServletOutputStream {
-
- public ResponseServletOutputStream(OutputStream out) {
- super(out);
- }
-
- public void write(int b) throws IOException {
- super.write(b);
- super.flush();
- setCommittedIfBufferSizeExceeded();
- }
-
- public void flush() throws IOException {
- super.flush();
- setCommitted(true);
- }
- }
-
-
- /**
- * Inner class that adapts the PrintWriter to mark the
- * response as committed once the buffer size is exceeded.
- */
- private class ResponsePrintWriter extends PrintWriter {
-
- public ResponsePrintWriter(Writer out) {
- super(out, true);
- }
-
- public void write(char buf[], int off, int len) {
- super.write(buf, off, len);
- super.flush();
- setCommittedIfBufferSizeExceeded();
- }
-
- public void write(String s, int off, int len) {
- super.write(s, off, len);
- super.flush();
- setCommittedIfBufferSizeExceeded();
- }
-
- public void write(int c) {
- super.write(c);
- super.flush();
- setCommittedIfBufferSizeExceeded();
- }
-
- public void flush() {
- super.flush();
- setCommitted(true);
- }
- }
-
-}
diff --git a/org.springframework.test/src/main/java/org/springframework/mock/web/MockHttpSession.java b/org.springframework.test/src/main/java/org/springframework/mock/web/MockHttpSession.java
deleted file mode 100644
index 8bfbf96a96e..00000000000
--- a/org.springframework.test/src/main/java/org/springframework/mock/web/MockHttpSession.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * Copyright 2002-2008 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.mock.web;
-
-import java.io.Serializable;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpSession;
-import javax.servlet.http.HttpSessionBindingEvent;
-import javax.servlet.http.HttpSessionBindingListener;
-import javax.servlet.http.HttpSessionContext;
-
-import org.springframework.util.Assert;
-
-/**
- * Mock implementation of the {@link javax.servlet.http.HttpSession} interface.
- * Supports the Servlet 2.4 API level.
- *
- *
Used for testing the web framework; also useful for testing
- * application controllers.
- *
- * @author Juergen Hoeller
- * @author Rod Johnson
- * @author Mark Fisher
- * @since 1.0.2
- */
-public class MockHttpSession implements HttpSession {
-
- public static final String SESSION_COOKIE_NAME = "JSESSION";
-
- private static int nextId = 1;
-
-
- private final String id;
-
- private final long creationTime = System.currentTimeMillis();
-
- private int maxInactiveInterval;
-
- private long lastAccessedTime = System.currentTimeMillis();
-
- private final ServletContext servletContext;
-
- private final Map attributes = new LinkedHashMap();
-
- private boolean invalid = false;
-
- private boolean isNew = true;
-
-
- /**
- * Create a new MockHttpSession with a default {@link MockServletContext}.
- * @see MockServletContext
- */
- public MockHttpSession() {
- this(null);
- }
-
- /**
- * Create a new MockHttpSession.
- * @param servletContext the ServletContext that the session runs in
- */
- public MockHttpSession(ServletContext servletContext) {
- this(servletContext, null);
- }
-
- /**
- * Create a new MockHttpSession.
- * @param servletContext the ServletContext that the session runs in
- * @param id a unique identifier for this session
- */
- public MockHttpSession(ServletContext servletContext, String id) {
- this.servletContext = (servletContext != null ? servletContext : new MockServletContext());
- this.id = (id != null ? id : Integer.toString(nextId++));
- }
-
-
- public long getCreationTime() {
- return this.creationTime;
- }
-
- public String getId() {
- return this.id;
- }
-
- public void access() {
- this.lastAccessedTime = System.currentTimeMillis();
- this.isNew = false;
- }
-
- public long getLastAccessedTime() {
- return this.lastAccessedTime;
- }
-
- public ServletContext getServletContext() {
- return this.servletContext;
- }
-
- public void setMaxInactiveInterval(int interval) {
- this.maxInactiveInterval = interval;
- }
-
- public int getMaxInactiveInterval() {
- return this.maxInactiveInterval;
- }
-
- public HttpSessionContext getSessionContext() {
- throw new UnsupportedOperationException("getSessionContext");
- }
-
- public Object getAttribute(String name) {
- Assert.notNull(name, "Attribute name must not be null");
- return this.attributes.get(name);
- }
-
- public Object getValue(String name) {
- return getAttribute(name);
- }
-
- public Enumeration getAttributeNames() {
- return Collections.enumeration(this.attributes.keySet());
- }
-
- public String[] getValueNames() {
- return this.attributes.keySet().toArray(new String[this.attributes.size()]);
- }
-
- public void setAttribute(String name, Object value) {
- Assert.notNull(name, "Attribute name must not be null");
- if (value != null) {
- this.attributes.put(name, value);
- if (value instanceof HttpSessionBindingListener) {
- ((HttpSessionBindingListener) value).valueBound(new HttpSessionBindingEvent(this, name, value));
- }
- }
- else {
- removeAttribute(name);
- }
- }
-
- public void putValue(String name, Object value) {
- setAttribute(name, value);
- }
-
- public void removeAttribute(String name) {
- Assert.notNull(name, "Attribute name must not be null");
- Object value = this.attributes.remove(name);
- if (value instanceof HttpSessionBindingListener) {
- ((HttpSessionBindingListener) value).valueUnbound(new HttpSessionBindingEvent(this, name, value));
- }
- }
-
- public void removeValue(String name) {
- removeAttribute(name);
- }
-
- /**
- * Clear all of this session's attributes.
- */
- public void clearAttributes() {
- for (Iterator> it = this.attributes.entrySet().iterator(); it.hasNext();) {
- Map.Entry entry = it.next();
- String name = entry.getKey();
- Object value = entry.getValue();
- it.remove();
- if (value instanceof HttpSessionBindingListener) {
- ((HttpSessionBindingListener) value).valueUnbound(new HttpSessionBindingEvent(this, name, value));
- }
- }
- }
-
- public void invalidate() {
- this.invalid = true;
- clearAttributes();
- }
-
- public boolean isInvalid() {
- return this.invalid;
- }
-
- public void setNew(boolean value) {
- this.isNew = value;
- }
-
- public boolean isNew() {
- return this.isNew;
- }
-
-
- /**
- * Serialize the attributes of this session into an object that can
- * be turned into a byte array with standard Java serialization.
- * @return a representation of this session's serialized state
- */
- public Serializable serializeState() {
- HashMap state = new HashMap();
- for (Iterator> it = this.attributes.entrySet().iterator(); it.hasNext();) {
- Map.Entry entry = it.next();
- String name = entry.getKey();
- Object value = entry.getValue();
- it.remove();
- if (value instanceof Serializable) {
- state.put(name, (Serializable) value);
- }
- else {
- // Not serializable... Servlet containers usually automatically
- // unbind the attribute in this case.
- if (value instanceof HttpSessionBindingListener) {
- ((HttpSessionBindingListener) value).valueUnbound(new HttpSessionBindingEvent(this, name, value));
- }
- }
- }
- return state;
- }
-
- /**
- * Deserialize the attributes of this session from a state object
- * created by {@link #serializeState()}.
- * @param state a representation of this session's serialized state
- */
- @SuppressWarnings("unchecked")
- public void deserializeState(Serializable state) {
- Assert.isTrue(state instanceof Map, "Serialized state needs to be of type [java.util.Map]");
- this.attributes.putAll((Map) state);
- }
-
-}
diff --git a/org.springframework.test/src/main/java/org/springframework/mock/web/MockJspWriter.java b/org.springframework.test/src/main/java/org/springframework/mock/web/MockJspWriter.java
deleted file mode 100644
index f9f65de2c2e..00000000000
--- a/org.springframework.test/src/main/java/org/springframework/mock/web/MockJspWriter.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * Copyright 2002-2007 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.mock.web;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.Writer;
-
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.jsp.JspWriter;
-
-/**
- * Mock implementation of the {@link javax.servlet.jsp.JspWriter} class.
- *
- * Used for testing the web framework; only necessary for testing
- * applications when testing custom JSP tags.
- *
- * @author Juergen Hoeller
- * @since 2.5
- */
-public class MockJspWriter extends JspWriter {
-
- private final HttpServletResponse response;
-
- private PrintWriter targetWriter;
-
-
- /**
- * Create a MockJspWriter for the given response,
- * using the response's default Writer.
- * @param response the servlet response to wrap
- */
- public MockJspWriter(HttpServletResponse response) {
- this(response, null);
- }
-
- /**
- * Create a MockJspWriter for the given plain Writer.
- * @param targetWriter the target Writer to wrap
- */
- public MockJspWriter(Writer targetWriter) {
- this(null, targetWriter);
- }
-
- /**
- * Create a MockJspWriter for the given response.
- * @param response the servlet response to wrap
- * @param targetWriter the target Writer to wrap
- */
- public MockJspWriter(HttpServletResponse response, Writer targetWriter) {
- super(DEFAULT_BUFFER, true);
- this.response = (response != null ? response : new MockHttpServletResponse());
- if (targetWriter instanceof PrintWriter) {
- this.targetWriter = (PrintWriter) targetWriter;
- }
- else if (targetWriter != null) {
- this.targetWriter = new PrintWriter(targetWriter);
- }
- }
-
- /**
- * Lazily initialize the target Writer.
- */
- protected PrintWriter getTargetWriter() throws IOException {
- if (this.targetWriter == null) {
- this.targetWriter = this.response.getWriter();
- }
- return this.targetWriter;
- }
-
-
- public void clear() throws IOException {
- if (this.response.isCommitted()) {
- throw new IOException("Response already committed");
- }
- this.response.resetBuffer();
- }
-
- public void clearBuffer() throws IOException {
- }
-
- public void flush() throws IOException {
- this.response.flushBuffer();
- }
-
- public void close() throws IOException {
- flush();
- }
-
- public int getRemaining() {
- return Integer.MAX_VALUE;
- }
-
- public void newLine() throws IOException {
- getTargetWriter().println();
- }
-
- public void write(char value[], int offset, int length) throws IOException {
- getTargetWriter().write(value, offset, length);
- }
-
- public void print(boolean value) throws IOException {
- getTargetWriter().print(value);
- }
-
- public void print(char value) throws IOException {
- getTargetWriter().print(value);
- }
-
- public void print(char[] value) throws IOException {
- getTargetWriter().print(value);
- }
-
- public void print(double value) throws IOException {
- getTargetWriter().print(value);
- }
-
- public void print(float value) throws IOException {
- getTargetWriter().print(value);
- }
-
- public void print(int value) throws IOException {
- getTargetWriter().print(value);
- }
-
- public void print(long value) throws IOException {
- getTargetWriter().print(value);
- }
-
- public void print(Object value) throws IOException {
- getTargetWriter().print(value);
- }
-
- public void print(String value) throws IOException {
- getTargetWriter().print(value);
- }
-
- public void println() throws IOException {
- getTargetWriter().println();
- }
-
- public void println(boolean value) throws IOException {
- getTargetWriter().println(value);
- }
-
- public void println(char value) throws IOException {
- getTargetWriter().println(value);
- }
-
- public void println(char[] value) throws IOException {
- getTargetWriter().println(value);
- }
-
- public void println(double value) throws IOException {
- getTargetWriter().println(value);
- }
-
- public void println(float value) throws IOException {
- getTargetWriter().println(value);
- }
-
- public void println(int value) throws IOException {
- getTargetWriter().println(value);
- }
-
- public void println(long value) throws IOException {
- getTargetWriter().println(value);
- }
-
- public void println(Object value) throws IOException {
- getTargetWriter().println(value);
- }
-
- public void println(String value) throws IOException {
- getTargetWriter().println(value);
- }
-
-}
diff --git a/org.springframework.test/src/main/java/org/springframework/mock/web/MockMultipartFile.java b/org.springframework.test/src/main/java/org/springframework/mock/web/MockMultipartFile.java
deleted file mode 100644
index 8e12da1ac5a..00000000000
--- a/org.springframework.test/src/main/java/org/springframework/mock/web/MockMultipartFile.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright 2002-2006 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.mock.web;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.springframework.util.Assert;
-import org.springframework.util.FileCopyUtils;
-import org.springframework.web.multipart.MultipartFile;
-
-/**
- * Mock implementation of the {@link org.springframework.web.multipart.MultipartFile}
- * interface.
- *
- *
Useful in conjunction with a {@link MockMultipartHttpServletRequest}
- * for testing application controllers that access multipart uploads.
- *
- * @author Juergen Hoeller
- * @author Eric Crampton
- * @since 2.0
- * @see MockMultipartHttpServletRequest
- */
-public class MockMultipartFile implements MultipartFile {
-
- private final String name;
-
- private String originalFilename;
-
- private String contentType;
-
- private final byte[] content;
-
-
- /**
- * Create a new MockMultipartFile with the given content.
- * @param name the name of the file
- * @param content the content of the file
- */
- public MockMultipartFile(String name, byte[] content) {
- this(name, "", null, content);
- }
-
- /**
- * Create a new MockMultipartFile with the given content.
- * @param name the name of the file
- * @param contentStream the content of the file as stream
- * @throws IOException if reading from the stream failed
- */
- public MockMultipartFile(String name, InputStream contentStream) throws IOException {
- this(name, "", null, FileCopyUtils.copyToByteArray(contentStream));
- }
-
- /**
- * Create a new MockMultipartFile with the given content.
- * @param name the name of the file
- * @param originalFilename the original filename (as on the client's machine)
- * @param contentType the content type (if known)
- * @param content the content of the file
- */
- public MockMultipartFile(String name, String originalFilename, String contentType, byte[] content) {
- Assert.hasLength(name, "Name must not be null");
- this.name = name;
- this.originalFilename = (originalFilename != null ? originalFilename : "");
- this.contentType = contentType;
- this.content = (content != null ? content : new byte[0]);
- }
-
- /**
- * Create a new MockMultipartFile with the given content.
- * @param name the name of the file
- * @param originalFilename the original filename (as on the client's machine)
- * @param contentType the content type (if known)
- * @param contentStream the content of the file as stream
- * @throws IOException if reading from the stream failed
- */
- public MockMultipartFile(String name, String originalFilename, String contentType, InputStream contentStream)
- throws IOException {
-
- this(name, originalFilename, contentType, FileCopyUtils.copyToByteArray(contentStream));
- }
-
-
- public String getName() {
- return this.name;
- }
-
- public String getOriginalFilename() {
- return this.originalFilename;
- }
-
- public String getContentType() {
- return this.contentType;
- }
-
- public boolean isEmpty() {
- return (this.content.length == 0);
- }
-
- public long getSize() {
- return this.content.length;
- }
-
- public byte[] getBytes() throws IOException {
- return this.content;
- }
-
- public InputStream getInputStream() throws IOException {
- return new ByteArrayInputStream(this.content);
- }
-
- public void transferTo(File dest) throws IOException, IllegalStateException {
- FileCopyUtils.copy(this.content, dest);
- }
-
-}
diff --git a/org.springframework.test/src/main/java/org/springframework/mock/web/MockMultipartHttpServletRequest.java b/org.springframework.test/src/main/java/org/springframework/mock/web/MockMultipartHttpServletRequest.java
deleted file mode 100644
index d0eb95c74a5..00000000000
--- a/org.springframework.test/src/main/java/org/springframework/mock/web/MockMultipartHttpServletRequest.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright 2002-2008 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.mock.web;
-
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import org.springframework.util.Assert;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
-
-/**
- * Mock implementation of the
- * {@link org.springframework.web.multipart.MultipartHttpServletRequest} interface.
- *
- *
Useful for testing application controllers that access multipart uploads.
- * The {@link MockMultipartFile} can be used to populate these mock requests
- * with files.
- *
- * @author Juergen Hoeller
- * @author Eric Crampton
- * @since 2.0
- * @see MockMultipartFile
- */
-public class MockMultipartHttpServletRequest extends MockHttpServletRequest implements MultipartHttpServletRequest {
-
- private final Map multipartFiles = new LinkedHashMap();
-
-
- /**
- * Add a file to this request. The parameter name from the multipart
- * form is taken from the {@link MultipartFile#getName()}.
- * @param file multipart file to be added
- */
- public void addFile(MultipartFile file) {
- Assert.notNull(file, "MultipartFile must not be null");
- this.multipartFiles.put(file.getName(), file);
- }
-
- public Iterator getFileNames() {
- return getFileMap().keySet().iterator();
- }
-
- public MultipartFile getFile(String name) {
- return this.multipartFiles.get(name);
- }
-
- public Map getFileMap() {
- return Collections.unmodifiableMap(this.multipartFiles);
- }
-
-}
diff --git a/org.springframework.test/src/main/java/org/springframework/mock/web/MockPageContext.java b/org.springframework.test/src/main/java/org/springframework/mock/web/MockPageContext.java
deleted file mode 100644
index 6de51d391c6..00000000000
--- a/org.springframework.test/src/main/java/org/springframework/mock/web/MockPageContext.java
+++ /dev/null
@@ -1,337 +0,0 @@
-/*
- * Copyright 2002-2008 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.mock.web;
-
-import java.io.IOException;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Map;
-import javax.servlet.Servlet;
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-import javax.servlet.jsp.JspWriter;
-import javax.servlet.jsp.PageContext;
-import javax.servlet.jsp.el.ExpressionEvaluator;
-import javax.servlet.jsp.el.VariableResolver;
-import javax.el.ELContext;
-
-import org.springframework.util.Assert;
-
-/**
- * Mock implementation of the {@link javax.servlet.jsp.PageContext} interface.
- *
- * Used for testing the web framework; only necessary for testing
- * applications when testing custom JSP tags.
- *
- *
Note: Expects initialization via the constructor rather than via the
- * PageContext.initialize method. Does not support writing to
- * a JspWriter, request dispatching, and handlePageException calls.
- *
- * @author Juergen Hoeller
- * @since 1.0.2
- */
-public class MockPageContext extends PageContext {
-
- private final ServletContext servletContext;
-
- private final HttpServletRequest request;
-
- private final HttpServletResponse response;
-
- private final ServletConfig servletConfig;
-
- private final Map attributes = new HashMap();
-
- private JspWriter out;
-
-
- /**
- * Create new MockPageContext with a default {@link MockServletContext},
- * {@link MockHttpServletRequest}, {@link MockHttpServletResponse},
- * {@link MockServletConfig}.
- */
- public MockPageContext() {
- this(null, null, null, null);
- }
-
- /**
- * Create new MockPageContext with a default {@link MockHttpServletRequest},
- * {@link MockHttpServletResponse}, {@link MockServletConfig}.
- * @param servletContext the ServletContext that the JSP page runs in
- * (only necessary when actually accessing the ServletContext)
- */
- public MockPageContext(ServletContext servletContext) {
- this(servletContext, null, null, null);
- }
-
- /**
- * Create new MockPageContext with a MockHttpServletResponse,
- * MockServletConfig.
- * @param servletContext the ServletContext that the JSP page runs in
- * @param request the current HttpServletRequest
- * (only necessary when actually accessing the request)
- */
- public MockPageContext(ServletContext servletContext, HttpServletRequest request) {
- this(servletContext, request, null, null);
- }
-
- /**
- * Create new MockPageContext with a MockServletConfig.
- * @param servletContext the ServletContext that the JSP page runs in
- * @param request the current HttpServletRequest
- * @param response the current HttpServletResponse
- * (only necessary when actually writing to the response)
- */
- public MockPageContext(ServletContext servletContext, HttpServletRequest request, HttpServletResponse response) {
- this(servletContext, request, response, null);
- }
-
- /**
- * Create new MockServletConfig.
- * @param servletContext the ServletContext that the JSP page runs in
- * @param request the current HttpServletRequest
- * @param response the current HttpServletResponse
- * @param servletConfig the ServletConfig (hardly ever accessed from within a tag)
- */
- public MockPageContext(ServletContext servletContext, HttpServletRequest request,
- HttpServletResponse response, ServletConfig servletConfig) {
-
- this.servletContext = (servletContext != null ? servletContext : new MockServletContext());
- this.request = (request != null ? request : new MockHttpServletRequest(servletContext));
- this.response = (response != null ? response : new MockHttpServletResponse());
- this.servletConfig = (servletConfig != null ? servletConfig : new MockServletConfig(servletContext));
- }
-
-
- public void initialize(
- Servlet servlet, ServletRequest request, ServletResponse response,
- String errorPageURL, boolean needsSession, int bufferSize, boolean autoFlush) {
-
- throw new UnsupportedOperationException("Use appropriate constructor");
- }
-
- public void release() {
- }
-
- public void setAttribute(String name, Object value) {
- Assert.notNull(name, "Attribute name must not be null");
- if (value != null) {
- this.attributes.put(name, value);
- }
- else {
- this.attributes.remove(name);
- }
- }
-
- public void setAttribute(String name, Object value, int scope) {
- Assert.notNull(name, "Attribute name must not be null");
- switch (scope) {
- case PAGE_SCOPE:
- setAttribute(name, value);
- break;
- case REQUEST_SCOPE:
- this.request.setAttribute(name, value);
- break;
- case SESSION_SCOPE:
- this.request.getSession().setAttribute(name, value);
- break;
- case APPLICATION_SCOPE:
- this.servletContext.setAttribute(name, value);
- break;
- default:
- throw new IllegalArgumentException("Invalid scope: " + scope);
- }
- }
-
- public Object getAttribute(String name) {
- Assert.notNull(name, "Attribute name must not be null");
- return this.attributes.get(name);
- }
-
- public Object getAttribute(String name, int scope) {
- Assert.notNull(name, "Attribute name must not be null");
- switch (scope) {
- case PAGE_SCOPE:
- return getAttribute(name);
- case REQUEST_SCOPE:
- return this.request.getAttribute(name);
- case SESSION_SCOPE:
- HttpSession session = this.request.getSession(false);
- return (session != null ? session.getAttribute(name) : null);
- case APPLICATION_SCOPE:
- return this.servletContext.getAttribute(name);
- default:
- throw new IllegalArgumentException("Invalid scope: " + scope);
- }
- }
-
- public Object findAttribute(String name) {
- Object value = getAttribute(name);
- if (value == null) {
- value = getAttribute(name, REQUEST_SCOPE);
- if (value == null) {
- value = getAttribute(name, SESSION_SCOPE);
- if (value == null) {
- value = getAttribute(name, APPLICATION_SCOPE);
- }
- }
- }
- return value;
- }
-
- public void removeAttribute(String name) {
- Assert.notNull(name, "Attribute name must not be null");
- this.removeAttribute(name, PageContext.PAGE_SCOPE);
- this.removeAttribute(name, PageContext.REQUEST_SCOPE);
- this.removeAttribute(name, PageContext.SESSION_SCOPE);
- this.removeAttribute(name, PageContext.APPLICATION_SCOPE);
- }
-
- public void removeAttribute(String name, int scope) {
- Assert.notNull(name, "Attribute name must not be null");
- switch (scope) {
- case PAGE_SCOPE:
- this.attributes.remove(name);
- break;
- case REQUEST_SCOPE:
- this.request.removeAttribute(name);
- break;
- case SESSION_SCOPE:
- this.request.getSession().removeAttribute(name);
- break;
- case APPLICATION_SCOPE:
- this.servletContext.removeAttribute(name);
- break;
- default:
- throw new IllegalArgumentException("Invalid scope: " + scope);
- }
- }
-
- public int getAttributesScope(String name) {
- if (getAttribute(name) != null) {
- return PAGE_SCOPE;
- }
- else if (getAttribute(name, REQUEST_SCOPE) != null) {
- return REQUEST_SCOPE;
- }
- else if (getAttribute(name, SESSION_SCOPE) != null) {
- return SESSION_SCOPE;
- }
- else if (getAttribute(name, APPLICATION_SCOPE) != null) {
- return APPLICATION_SCOPE;
- }
- else {
- return 0;
- }
- }
-
- public Enumeration getAttributeNames() {
- return Collections.enumeration(this.attributes.keySet());
- }
-
- @SuppressWarnings("unchecked")
- public Enumeration getAttributeNamesInScope(int scope) {
- switch (scope) {
- case PAGE_SCOPE:
- return getAttributeNames();
- case REQUEST_SCOPE:
- return this.request.getAttributeNames();
- case SESSION_SCOPE:
- HttpSession session = this.request.getSession(false);
- return (session != null ? session.getAttributeNames() : null);
- case APPLICATION_SCOPE:
- return this.servletContext.getAttributeNames();
- default:
- throw new IllegalArgumentException("Invalid scope: " + scope);
- }
- }
-
- public JspWriter getOut() {
- if (this.out == null) {
- this.out = new MockJspWriter(this.response);
- }
- return this.out;
- }
-
- public ExpressionEvaluator getExpressionEvaluator() {
- return new MockExpressionEvaluator(this);
- }
-
- public ELContext getELContext() {
- throw new UnsupportedOperationException("getELContext");
- }
-
- public VariableResolver getVariableResolver() {
- throw new UnsupportedOperationException("getVariableResolver");
- }
-
- public HttpSession getSession() {
- return this.request.getSession();
- }
-
- public Object getPage() {
- throw new UnsupportedOperationException("getPage");
- }
-
- public ServletRequest getRequest() {
- return this.request;
- }
-
- public ServletResponse getResponse() {
- return this.response;
- }
-
- public Exception getException() {
- throw new UnsupportedOperationException("getException");
- }
-
- public ServletConfig getServletConfig() {
- return this.servletConfig;
- }
-
- public ServletContext getServletContext() {
- return this.servletContext;
- }
-
- public void forward(String url) throws ServletException, IOException {
- throw new UnsupportedOperationException("forward");
- }
-
- public void include(String url) throws ServletException, IOException {
- throw new UnsupportedOperationException("include");
- }
-
- public void include(String url, boolean flush) throws ServletException, IOException {
- throw new UnsupportedOperationException("include");
- }
-
- public void handlePageException(Exception ex) throws ServletException, IOException {
- throw new UnsupportedOperationException("handlePageException");
- }
-
- public void handlePageException(Throwable ex) throws ServletException, IOException {
- throw new UnsupportedOperationException("handlePageException");
- }
-
-}
diff --git a/org.springframework.test/src/main/java/org/springframework/mock/web/MockRequestDispatcher.java b/org.springframework.test/src/main/java/org/springframework/mock/web/MockRequestDispatcher.java
deleted file mode 100644
index c3ed4d54bb7..00000000000
--- a/org.springframework.test/src/main/java/org/springframework/mock/web/MockRequestDispatcher.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright 2002-2007 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.mock.web;
-
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletResponseWrapper;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.springframework.util.Assert;
-
-/**
- * Mock implementation of the {@link javax.servlet.RequestDispatcher} interface.
- *
- * Used for testing the web framework; typically not necessary for
- * testing application controllers.
- *
- * @author Rod Johnson
- * @author Juergen Hoeller
- * @since 1.0.2
- */
-public class MockRequestDispatcher implements RequestDispatcher {
-
- private final Log logger = LogFactory.getLog(getClass());
-
- private final String url;
-
-
- /**
- * Create a new MockRequestDispatcher for the given URL.
- * @param url the URL to dispatch to.
- */
- public MockRequestDispatcher(String url) {
- Assert.notNull(url, "URL must not be null");
- this.url = url;
- }
-
-
- public void forward(ServletRequest request, ServletResponse response) {
- Assert.notNull(request, "Request must not be null");
- Assert.notNull(response, "Response must not be null");
- if (response.isCommitted()) {
- throw new IllegalStateException("Cannot perform forward - response is already committed");
- }
- getMockHttpServletResponse(response).setForwardedUrl(this.url);
- if (logger.isDebugEnabled()) {
- logger.debug("MockRequestDispatcher: forwarding to URL [" + this.url + "]");
- }
- }
-
- public void include(ServletRequest request, ServletResponse response) {
- Assert.notNull(request, "Request must not be null");
- Assert.notNull(response, "Response must not be null");
- getMockHttpServletResponse(response).setIncludedUrl(this.url);
- if (logger.isDebugEnabled()) {
- logger.debug("MockRequestDispatcher: including URL [" + this.url + "]");
- }
- }
-
- /**
- * Obtain the underlying MockHttpServletResponse,
- * unwrapping {@link HttpServletResponseWrapper} decorators if necessary.
- */
- protected MockHttpServletResponse getMockHttpServletResponse(ServletResponse response) {
- if (response instanceof MockHttpServletResponse) {
- return (MockHttpServletResponse) response;
- }
- if (response instanceof HttpServletResponseWrapper) {
- return getMockHttpServletResponse(((HttpServletResponseWrapper) response).getResponse());
- }
- throw new IllegalArgumentException("MockRequestDispatcher requires MockHttpServletResponse");
- }
-
-}
diff --git a/org.springframework.test/src/main/java/org/springframework/mock/web/MockServletConfig.java b/org.springframework.test/src/main/java/org/springframework/mock/web/MockServletConfig.java
deleted file mode 100644
index ca15d76a870..00000000000
--- a/org.springframework.test/src/main/java/org/springframework/mock/web/MockServletConfig.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright 2002-2008 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.mock.web;
-
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-
-import org.springframework.util.Assert;
-
-/**
- * Mock implementation of the {@link javax.servlet.ServletConfig} interface.
- *
- *
Used for testing the web framework; typically not necessary for
- * testing application controllers.
- *
- * @author Rod Johnson
- * @author Juergen Hoeller
- * @since 1.0.2
- */
-public class MockServletConfig implements ServletConfig {
-
- private final ServletContext servletContext;
-
- private final String servletName;
-
- private final Map initParameters = new LinkedHashMap();
-
-
- /**
- * Create a new MockServletConfig with a default {@link MockServletContext}.
- */
- public MockServletConfig() {
- this(null, "");
- }
-
- /**
- * Create a new MockServletConfig with a default {@link MockServletContext}.
- * @param servletName the name of the servlet
- */
- public MockServletConfig(String servletName) {
- this(null, servletName);
- }
-
- /**
- * Create a new MockServletConfig.
- * @param servletContext the ServletContext that the servlet runs in
- */
- public MockServletConfig(ServletContext servletContext) {
- this(servletContext, "");
- }
-
- /**
- * Create a new MockServletConfig.
- * @param servletContext the ServletContext that the servlet runs in
- * @param servletName the name of the servlet
- */
- public MockServletConfig(ServletContext servletContext, String servletName) {
- this.servletContext = (servletContext != null ? servletContext : new MockServletContext());
- this.servletName = servletName;
- }
-
-
- public String getServletName() {
- return this.servletName;
- }
-
- public ServletContext getServletContext() {
- return this.servletContext;
- }
-
- public void addInitParameter(String name, String value) {
- Assert.notNull(name, "Parameter name must not be null");
- this.initParameters.put(name, value);
- }
-
- public String getInitParameter(String name) {
- Assert.notNull(name, "Parameter name must not be null");
- return this.initParameters.get(name);
- }
-
- public Enumeration getInitParameterNames() {
- return Collections.enumeration(this.initParameters.keySet());
- }
-
-}
diff --git a/org.springframework.test/src/main/java/org/springframework/mock/web/MockServletContext.java b/org.springframework.test/src/main/java/org/springframework/mock/web/MockServletContext.java
deleted file mode 100644
index 55edd042a44..00000000000
--- a/org.springframework.test/src/main/java/org/springframework/mock/web/MockServletContext.java
+++ /dev/null
@@ -1,355 +0,0 @@
-/*
- * Copyright 2002-2008 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.mock.web;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.Map;
-import java.util.Set;
-import javax.activation.FileTypeMap;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.Servlet;
-import javax.servlet.ServletContext;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.springframework.core.io.DefaultResourceLoader;
-import org.springframework.core.io.Resource;
-import org.springframework.core.io.ResourceLoader;
-import org.springframework.util.Assert;
-import org.springframework.util.ObjectUtils;
-import org.springframework.web.util.WebUtils;
-
-/**
- * Mock implementation of the {@link javax.servlet.ServletContext} interface.
- *
- * Used for testing the Spring web framework; only rarely necessary for testing
- * application controllers. As long as application components don't explicitly
- * access the ServletContext, ClassPathXmlApplicationContext or
- * FileSystemXmlApplicationContext can be used to load the context files for testing,
- * even for DispatcherServlet context definitions.
- *
- *
For setting up a full WebApplicationContext in a test environment, you can
- * use XmlWebApplicationContext (or GenericWebApplicationContext), passing in an
- * appropriate MockServletContext instance. You might want to configure your
- * MockServletContext with a FileSystemResourceLoader in that case, to make your
- * resource paths interpreted as relative file system locations.
- *
- *
A common setup is to point your JVM working directory to the root of your
- * web application directory, in combination with filesystem-based resource loading.
- * This allows to load the context files as used in the web application, with
- * relative paths getting interpreted correctly. Such a setup will work with both
- * FileSystemXmlApplicationContext (which will load straight from the file system)
- * and XmlWebApplicationContext with an underlying MockServletContext (as long as
- * the MockServletContext has been configured with a FileSystemResourceLoader).
- *
- * @author Rod Johnson
- * @author Juergen Hoeller
- * @since 1.0.2
- * @see #MockServletContext(org.springframework.core.io.ResourceLoader)
- * @see org.springframework.web.context.support.XmlWebApplicationContext
- * @see org.springframework.web.context.support.GenericWebApplicationContext
- * @see org.springframework.context.support.ClassPathXmlApplicationContext
- * @see org.springframework.context.support.FileSystemXmlApplicationContext
- */
-public class MockServletContext implements ServletContext {
-
- private static final String TEMP_DIR_SYSTEM_PROPERTY = "java.io.tmpdir";
-
-
- private final Log logger = LogFactory.getLog(getClass());
-
- private final ResourceLoader resourceLoader;
-
- private final String resourceBasePath;
-
- private String contextPath = "";
-
- private final Map contexts = new HashMap();
-
- private final Map initParameters = new LinkedHashMap();
-
- private final Map attributes = new LinkedHashMap();
-
- private String servletContextName = "MockServletContext";
-
-
- /**
- * Create a new MockServletContext, using no base path and a
- * DefaultResourceLoader (i.e. the classpath root as WAR root).
- * @see org.springframework.core.io.DefaultResourceLoader
- */
- public MockServletContext() {
- this("", null);
- }
-
- /**
- * Create a new MockServletContext, using a DefaultResourceLoader.
- * @param resourceBasePath the WAR root directory (should not end with a slash)
- * @see org.springframework.core.io.DefaultResourceLoader
- */
- public MockServletContext(String resourceBasePath) {
- this(resourceBasePath, null);
- }
-
- /**
- * Create a new MockServletContext, using the specified ResourceLoader
- * and no base path.
- * @param resourceLoader the ResourceLoader to use (or null for the default)
- */
- public MockServletContext(ResourceLoader resourceLoader) {
- this("", resourceLoader);
- }
-
- /**
- * Create a new MockServletContext.
- * @param resourceBasePath the WAR root directory (should not end with a slash)
- * @param resourceLoader the ResourceLoader to use (or null for the default)
- */
- public MockServletContext(String resourceBasePath, ResourceLoader resourceLoader) {
- this.resourceLoader = (resourceLoader != null ? resourceLoader : new DefaultResourceLoader());
- this.resourceBasePath = (resourceBasePath != null ? resourceBasePath : "");
-
- // Use JVM temp dir as ServletContext temp dir.
- String tempDir = System.getProperty(TEMP_DIR_SYSTEM_PROPERTY);
- if (tempDir != null) {
- this.attributes.put(WebUtils.TEMP_DIR_CONTEXT_ATTRIBUTE, new File(tempDir));
- }
- }
-
-
- /**
- * Build a full resource location for the given path,
- * prepending the resource base path of this MockServletContext.
- * @param path the path as specified
- * @return the full resource path
- */
- protected String getResourceLocation(String path) {
- if (!path.startsWith("/")) {
- path = "/" + path;
- }
- return this.resourceBasePath + path;
- }
-
-
- public void setContextPath(String contextPath) {
- this.contextPath = (contextPath != null ? contextPath : "");
- }
-
- /* This is a Servlet API 2.5 method. */
- public String getContextPath() {
- return this.contextPath;
- }
-
- public void registerContext(String contextPath, ServletContext context) {
- this.contexts.put(contextPath, context);
- }
-
- public ServletContext getContext(String contextPath) {
- if (this.contextPath.equals(contextPath)) {
- return this;
- }
- return this.contexts.get(contextPath);
- }
-
- public int getMajorVersion() {
- return 2;
- }
-
- public int getMinorVersion() {
- return 5;
- }
-
- public String getMimeType(String filePath) {
- return MimeTypeResolver.getMimeType(filePath);
- }
-
- public Set getResourcePaths(String path) {
- String actualPath = (path.endsWith("/") ? path : path + "/");
- Resource resource = this.resourceLoader.getResource(getResourceLocation(actualPath));
- try {
- File file = resource.getFile();
- String[] fileList = file.list();
- if (ObjectUtils.isEmpty(fileList)) {
- return null;
- }
- Set resourcePaths = new LinkedHashSet(fileList.length);
- for (String fileEntry : fileList) {
- String resultPath = actualPath + fileEntry;
- if (resource.createRelative(fileEntry).getFile().isDirectory()) {
- resultPath += "/";
- }
- resourcePaths.add(resultPath);
- }
- return resourcePaths;
- }
- catch (IOException ex) {
- logger.warn("Couldn't get resource paths for " + resource, ex);
- return null;
- }
- }
-
- public URL getResource(String path) throws MalformedURLException {
- Resource resource = this.resourceLoader.getResource(getResourceLocation(path));
- if (!resource.exists()) {
- return null;
- }
- try {
- return resource.getURL();
- }
- catch (MalformedURLException ex) {
- throw ex;
- }
- catch (IOException ex) {
- logger.warn("Couldn't get URL for " + resource, ex);
- return null;
- }
- }
-
- public InputStream getResourceAsStream(String path) {
- Resource resource = this.resourceLoader.getResource(getResourceLocation(path));
- if (!resource.exists()) {
- return null;
- }
- try {
- return resource.getInputStream();
- }
- catch (IOException ex) {
- logger.warn("Couldn't open InputStream for " + resource, ex);
- return null;
- }
- }
-
- public RequestDispatcher getRequestDispatcher(String path) {
- if (!path.startsWith("/")) {
- throw new IllegalArgumentException("RequestDispatcher path at ServletContext level must start with '/'");
- }
- return new MockRequestDispatcher(path);
- }
-
- public RequestDispatcher getNamedDispatcher(String path) {
- return null;
- }
-
- public Servlet getServlet(String name) {
- return null;
- }
-
- public Enumeration getServlets() {
- return Collections.enumeration(new HashSet());
- }
-
- public Enumeration getServletNames() {
- return Collections.enumeration(new HashSet());
- }
-
- public void log(String message) {
- logger.info(message);
- }
-
- public void log(Exception ex, String message) {
- logger.info(message, ex);
- }
-
- public void log(String message, Throwable ex) {
- logger.info(message, ex);
- }
-
- public String getRealPath(String path) {
- Resource resource = this.resourceLoader.getResource(getResourceLocation(path));
- try {
- return resource.getFile().getAbsolutePath();
- }
- catch (IOException ex) {
- logger.warn("Couldn't determine real path of resource " + resource, ex);
- return null;
- }
- }
-
- public String getServerInfo() {
- return "MockServletContext";
- }
-
- public String getInitParameter(String name) {
- Assert.notNull(name, "Parameter name must not be null");
- return this.initParameters.get(name);
- }
-
- public void addInitParameter(String name, String value) {
- Assert.notNull(name, "Parameter name must not be null");
- this.initParameters.put(name, value);
- }
-
- public Enumeration getInitParameterNames() {
- return Collections.enumeration(this.initParameters.keySet());
- }
-
- public Object getAttribute(String name) {
- Assert.notNull(name, "Attribute name must not be null");
- return this.attributes.get(name);
- }
-
- public Enumeration getAttributeNames() {
- return Collections.enumeration(this.attributes.keySet());
- }
-
- public void setAttribute(String name, Object value) {
- Assert.notNull(name, "Attribute name must not be null");
- if (value != null) {
- this.attributes.put(name, value);
- }
- else {
- this.attributes.remove(name);
- }
- }
-
- public void removeAttribute(String name) {
- Assert.notNull(name, "Attribute name must not be null");
- this.attributes.remove(name);
- }
-
- public void setServletContextName(String servletContextName) {
- this.servletContextName = servletContextName;
- }
-
- public String getServletContextName() {
- return this.servletContextName;
- }
-
-
- /**
- * Inner factory class used to just introduce a Java Activation Framework
- * dependency when actually asked to resolve a MIME type.
- */
- private static class MimeTypeResolver {
-
- public static String getMimeType(String filePath) {
- return FileTypeMap.getDefaultFileTypeMap().getContentType(filePath);
- }
- }
-
-}
diff --git a/org.springframework.test/src/main/java/org/springframework/mock/web/PassThroughFilterChain.java b/org.springframework.test/src/main/java/org/springframework/mock/web/PassThroughFilterChain.java
deleted file mode 100644
index 9fe173b8ad3..00000000000
--- a/org.springframework.test/src/main/java/org/springframework/mock/web/PassThroughFilterChain.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright 2002-2007 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.mock.web;
-
-import java.io.IOException;
-
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.Servlet;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-
-import org.springframework.util.Assert;
-
-/**
- * Implementation of the {@link javax.servlet.FilterConfig} interface which
- * simply passes the call through to a given Filter/FilterChain combo
- * (indicating the next Filter in the chain along with the FilterChain that it is
- * supposed to work on) or to a given Servlet (indicating the end of the chain).
- *
- * @author Juergen Hoeller
- * @since 2.0.3
- * @see javax.servlet.Filter
- * @see javax.servlet.Servlet
- * @see MockFilterChain
- */
-public class PassThroughFilterChain implements FilterChain {
-
- private Filter filter;
-
- private FilterChain nextFilterChain;
-
- private Servlet servlet;
-
-
- /**
- * Create a new PassThroughFilterChain that delegates to the given Filter,
- * calling it with the given FilterChain.
- * @param filter the Filter to delegate to
- * @param nextFilterChain the FilterChain to use for that next Filter
- */
- public PassThroughFilterChain(Filter filter, FilterChain nextFilterChain) {
- Assert.notNull(filter, "Filter must not be null");
- Assert.notNull(nextFilterChain, "'FilterChain must not be null");
- this.filter = filter;
- this.nextFilterChain = nextFilterChain;
- }
-
- /**
- * Create a new PassThroughFilterChain that delegates to the given Servlet.
- * @param servlet the Servlet to delegate to
- */
- public PassThroughFilterChain(Servlet servlet) {
- Assert.notNull(servlet, "Servlet must not be null");
- this.servlet = servlet;
- }
-
-
- /**
- * Pass the call on to the Filter/Servlet.
- */
- public void doFilter(ServletRequest request, ServletResponse response) throws ServletException, IOException {
- if (this.filter != null) {
- this.filter.doFilter(request, response, this.nextFilterChain);
- }
- else {
- this.servlet.service(request, response);
- }
- }
-
-}
diff --git a/org.springframework.test/src/main/java/org/springframework/mock/web/package.html b/org.springframework.test/src/main/java/org/springframework/mock/web/package.html
deleted file mode 100644
index 1bff67eed1f..00000000000
--- a/org.springframework.test/src/main/java/org/springframework/mock/web/package.html
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-A comprehensive set of Servlet API mock objects,
-targeted at usage with Spring's web MVC framework.
-Useful for testing web contexts and controllers.
-
-More convenient to use than dynamic mock objects
-(EasyMock ) or
-existing Servlet API mock objects
-(MockObjects ).
-
-
-