Maven migration (first draft)

This commit is contained in:
Graham Triggs 2015-11-19 23:47:12 +00:00
parent 5e0329908c
commit e1ff94ccaf
2866 changed files with 1112 additions and 616 deletions

View file

@ -0,0 +1,507 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
package stubs.javax.servlet.http;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.security.Principal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletInputStream;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import edu.cornell.mannlib.vitro.webapp.web.URLEncoder;
/**
* A simple stub for HttpServletRequest
*/
public class HttpServletRequestStub implements HttpServletRequest {
// ----------------------------------------------------------------------
// Stub infrastructure
// ----------------------------------------------------------------------
private String pathInfo;
private String requestUri;
private String requestUrl;
private String contextPath;
private String servletPath;
private String httpMethodType = "GET";
private String remoteAddr = "127.0.0.1";
private HttpSession session;
private final Map<String, List<String>> parameters;
private final Map<String, Object> attributes;
private final Map<String, List<String>> headers;
public HttpServletRequestStub() {
parameters = new HashMap<String, List<String>>();
attributes = new HashMap<String, Object>();
headers = new HashMap<String, List<String>>();
}
public HttpServletRequestStub(Map<String, List<String>> parameters,
Map<String, Object> attributes) {
this();
this.parameters.putAll(parameters);
this.attributes.putAll(attributes);
}
/**
* Supply the request URL as a single URL. We will parse it on the
* assumption that the contextPath and the pathInfo are empty. Don't include
* a query string. Instead, set parameters.
*/
public void setRequestUrl(URL url) {
this.contextPath = "";
this.pathInfo = null;
this.requestUrl = url.toString();
String path = url.getPath();
if (path.isEmpty()) {
this.servletPath = "/";
} else {
this.servletPath = path;
}
this.requestUri = this.servletPath;
}
/**
* Supply the pieces of the request URL, so we can respond correctly when
* asked for a piece. Don't include a query string. Instead, set parameters.
*/
public void setRequestUrlByParts(String shemeHostPort, String contextPath,
String servletPath, String pathInfo) {
if (contextPath == null) {
throw new NullPointerException("contextPath may not be null.");
}
this.contextPath = contextPath;
this.pathInfo = pathInfo;
if (servletPath == null) {
throw new NullPointerException("servletPath may not be null.");
}
if (!servletPath.startsWith("/")) {
throw new IllegalArgumentException(
"servletPath must start with a /");
}
this.servletPath = servletPath;
this.requestUri = contextPath + servletPath
+ ((pathInfo == null) ? "" : pathInfo);
if (shemeHostPort == null) {
throw new NullPointerException("shemeHostPort may not be null.");
}
if (!shemeHostPort.contains("://")) {
throw new IllegalArgumentException(
"schemeHostPort must be sheme://host[:port]");
}
this.requestUrl = shemeHostPort + this.requestUri;
}
/** Set to "GET" or "POST", etc. */
public void setMethod(String method) {
this.httpMethodType = method;
}
public void setRemoteAddr(String remoteAddr) {
this.remoteAddr = remoteAddr;
}
public void setHeader(String name, String value) {
name = name.toLowerCase();
if (!headers.containsKey(name)) {
headers.put(name, new ArrayList<String>());
}
headers.get(name).add(value);
}
public void addParameter(String name, String value) {
if (!parameters.containsKey(name)) {
parameters.put(name, new ArrayList<String>());
}
parameters.get(name).add(value);
}
/** Clear all values for a given parameter name. */
public void removeParameter(String name) {
parameters.remove(name);
}
public void setSession(HttpSession session) {
this.session = session;
}
// ----------------------------------------------------------------------
// Stub methods
// ----------------------------------------------------------------------
@Override
public HttpSession getSession() {
return getSession(true);
}
@Override
public HttpSession getSession(boolean create) {
if (create && (session == null)) {
session = new HttpSessionStub();
}
return session;
}
@Override
public StringBuffer getRequestURL() {
return new StringBuffer(requestUrl);
}
@Override
public String getRequestURI() {
return requestUri;
}
@Override
public String getContextPath() {
return contextPath;
}
@Override
public String getServletPath() {
return servletPath;
}
@Override
public String getPathInfo() {
return pathInfo;
}
@Override
public String getQueryString() {
if (parameters.isEmpty()) {
return null;
}
String qs = "";
for (String key : parameters.keySet()) {
for (String value : parameters.get(key)) {
qs += "&" + key + "=" + URLEncoder.encode(value);
}
}
return "?" + qs.substring(1);
}
@Override
public String getMethod() {
return httpMethodType;
}
@Override
public String getRemoteAddr() {
return remoteAddr;
}
@Override
@SuppressWarnings("rawtypes")
public Enumeration getParameterNames() {
return Collections.enumeration(parameters.keySet());
}
@Override
@SuppressWarnings("rawtypes")
public Map getParameterMap() {
Map<String, String[]> map = new HashMap<String, String[]>();
for (String key : parameters.keySet()) {
map.put(key, parameters.get(key).toArray(new String[0]));
}
return map;
}
@Override
public String getParameter(String name) {
if (!parameters.containsKey(name)) {
return null;
}
return parameters.get(name).get(0);
}
@Override
public String[] getParameterValues(String name) {
if (!parameters.containsKey(name)) {
return null;
}
List<String> list = parameters.get(name);
return list.toArray(new String[list.size()]);
}
@Override
public Object getAttribute(String name) {
return attributes.get(name);
}
@Override
@SuppressWarnings("rawtypes")
public Enumeration getAttributeNames() {
return Collections.enumeration(attributes.keySet());
}
@Override
public void removeAttribute(String name) {
attributes.remove(name);
}
@Override
public void setAttribute(String name, Object value) {
if (value == null) {
removeAttribute(name);
}
attributes.put(name, value);
}
@Override
@SuppressWarnings("rawtypes")
public Enumeration getHeaderNames() {
return Collections.enumeration(headers.keySet());
}
@Override
public String getHeader(String name) {
name = name.toLowerCase();
if (headers.containsKey(name)) {
return headers.get(name).get(0);
} else {
return null;
}
}
@Override
@SuppressWarnings("rawtypes")
public Enumeration getHeaders(String name) {
name = name.toLowerCase();
if (headers.containsKey(name)) {
return Collections.enumeration(headers.get(name));
} else {
return Collections.enumeration(Collections.emptyList());
}
}
// ----------------------------------------------------------------------
// Un-implemented methods
// ----------------------------------------------------------------------
@Override
public String getAuthType() {
throw new RuntimeException(
"HttpServletRequestStub.getAuthType() not implemented.");
}
@Override
public Cookie[] getCookies() {
throw new RuntimeException(
"HttpServletRequestStub.getCookies() not implemented.");
}
@Override
public long getDateHeader(String arg0) {
throw new RuntimeException(
"HttpServletRequestStub.getDateHeader() not implemented.");
}
@Override
public int getIntHeader(String arg0) {
throw new RuntimeException(
"HttpServletRequestStub.getIntHeader() not implemented.");
}
@Override
public String getPathTranslated() {
throw new RuntimeException(
"HttpServletRequestStub.getPathTranslated() not implemented.");
}
@Override
public String getRemoteUser() {
throw new RuntimeException(
"HttpServletRequestStub.getRemoteUser() not implemented.");
}
@Override
public String getRequestedSessionId() {
throw new RuntimeException(
"HttpServletRequestStub.getRequestedSessionId() not implemented.");
}
@Override
public Principal getUserPrincipal() {
throw new RuntimeException(
"HttpServletRequestStub.getUserPrincipal() not implemented.");
}
@Override
public boolean isRequestedSessionIdFromCookie() {
throw new RuntimeException(
"HttpServletRequestStub.isRequestedSessionIdFromCookie() not implemented.");
}
@Override
public boolean isRequestedSessionIdFromURL() {
throw new RuntimeException(
"HttpServletRequestStub.isRequestedSessionIdFromURL() not implemented.");
}
@Override
@Deprecated
public boolean isRequestedSessionIdFromUrl() {
throw new RuntimeException(
"HttpServletRequestStub.isRequestedSessionIdFromUrl() not implemented.");
}
@Override
public boolean isRequestedSessionIdValid() {
throw new RuntimeException(
"HttpServletRequestStub.isRequestedSessionIdValid() not implemented.");
}
@Override
public boolean isUserInRole(String arg0) {
throw new RuntimeException(
"HttpServletRequestStub.isUserInRole() not implemented.");
}
@Override
public String getCharacterEncoding() {
throw new RuntimeException(
"HttpServletRequestStub.getCharacterEncoding() not implemented.");
}
@Override
public int getContentLength() {
throw new RuntimeException(
"HttpServletRequestStub.getContentLength() not implemented.");
}
@Override
public String getContentType() {
throw new RuntimeException(
"HttpServletRequestStub.getContentType() not implemented.");
}
@Override
public ServletInputStream getInputStream() throws IOException {
throw new RuntimeException(
"HttpServletRequestStub.getInputStream() not implemented.");
}
@Override
public String getLocalAddr() {
throw new RuntimeException(
"HttpServletRequestStub.getLocalAddr() not implemented.");
}
@Override
public String getLocalName() {
throw new RuntimeException(
"HttpServletRequestStub.getLocalName() not implemented.");
}
@Override
public int getLocalPort() {
throw new RuntimeException(
"HttpServletRequestStub.getLocalPort() not implemented.");
}
@Override
public Locale getLocale() {
throw new RuntimeException(
"HttpServletRequestStub.getLocale() not implemented.");
}
@Override
@SuppressWarnings("rawtypes")
public Enumeration getLocales() {
throw new RuntimeException(
"HttpServletRequestStub.getLocales() not implemented.");
}
@Override
public String getProtocol() {
throw new RuntimeException(
"HttpServletRequestStub.getProtocol() not implemented.");
}
@Override
public BufferedReader getReader() throws IOException {
throw new RuntimeException(
"HttpServletRequestStub.getReader() not implemented.");
}
@Override
@Deprecated
public String getRealPath(String arg0) {
throw new RuntimeException(
"HttpServletRequestStub.getRealPath() not implemented.");
}
@Override
public String getRemoteHost() {
throw new RuntimeException(
"HttpServletRequestStub.getRemoteHost() not implemented.");
}
@Override
public int getRemotePort() {
throw new RuntimeException(
"HttpServletRequestStub.getRemotePort() not implemented.");
}
@Override
public RequestDispatcher getRequestDispatcher(String arg0) {
throw new RuntimeException(
"HttpServletRequestStub.getRequestDispatcher() not implemented.");
}
@Override
public String getScheme() {
throw new RuntimeException(
"HttpServletRequestStub.getScheme() not implemented.");
}
@Override
public String getServerName() {
throw new RuntimeException(
"HttpServletRequestStub.getServerName() not implemented.");
}
@Override
public int getServerPort() {
throw new RuntimeException(
"HttpServletRequestStub.getServerPort() not implemented.");
}
@Override
public boolean isSecure() {
throw new RuntimeException(
"HttpServletRequestStub.isSecure() not implemented.");
}
@Override
public void setCharacterEncoding(String arg0)
throws UnsupportedEncodingException {
throw new RuntimeException(
"HttpServletRequestStub.setCharacterEncoding() not implemented.");
}
}

View file

@ -0,0 +1,289 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
package stubs.javax.servlet.http;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
/**
* A simple stub for HttpServletResponse
*/
@SuppressWarnings("deprecation")
public class HttpServletResponseStub implements HttpServletResponse {
// ----------------------------------------------------------------------
// Stub infrastructure
// ----------------------------------------------------------------------
private String redirectLocation;
private int status = 200;
private String errorMessage;
private Map<String, String> headers = new HashMap<String, String>();
private String contentType;
private String charset = "";
private ByteArrayOutputStream outputStream;
private StringWriter outputWriter;
public String getRedirectLocation() {
return redirectLocation;
}
public int getStatus() {
return status;
}
public String getErrorMessage() {
return errorMessage;
}
public String getOutput() {
if (outputStream != null) {
return outputStream.toString();
} else if (outputWriter != null) {
return outputWriter.toString();
} else {
return "";
}
}
public String getHeader(String name) {
return headers.get(name);
}
// ----------------------------------------------------------------------
// Stub methods
// ----------------------------------------------------------------------
@Override
public void sendRedirect(String location) throws IOException {
this.redirectLocation = location;
}
@Override
public void setStatus(int status) {
this.status = status;
}
@Override
@SuppressWarnings("hiding")
public void sendError(int status) throws IOException {
this.status = status;
}
@Override
@SuppressWarnings("hiding")
public void sendError(int status, String message) throws IOException {
this.status = status;
this.errorMessage = message;
}
@Override
public PrintWriter getWriter() throws IOException {
if (outputStream != null) {
throw new IllegalStateException(
"Can't get a Writer after getting an OutputStream.");
}
if (outputWriter == null) {
outputWriter = new StringWriter();
}
return new PrintWriter(outputWriter, true);
}
@Override
public ServletOutputStream getOutputStream() throws IOException {
if (outputWriter != null) {
throw new IllegalStateException(
"Can't get an OutputStream after getting a Writer.");
}
if (outputStream == null) {
outputStream = new ByteArrayOutputStream();
}
return new ServletOutputStream() {
@Override
public void write(int thisChar) throws IOException {
outputStream.write(thisChar);
}
};
}
@Override
public void setHeader(String name, String value) {
headers.put(name, value);
}
@Override
public boolean containsHeader(String name) {
return headers.containsKey(name);
}
/**
* Calling setContentType("this/type;charset=UTF-8") is the same as calling
* setContentType("this/type;charset=UTF-8"); setCharacterEncoding("UTF-8")
*/
@Override
public void setContentType(String contentType) {
this.contentType = contentType;
Pattern p = Pattern.compile(";\\scharset=([^;]+)");
Matcher m = p.matcher(contentType);
if (m.find()) {
this.charset = m.group(1);
}
}
@Override
public String getContentType() {
return contentType;
}
@Override
public void setCharacterEncoding(String charset) {
this.charset = charset;
}
@Override
public String getCharacterEncoding() {
return charset;
}
// ----------------------------------------------------------------------
// Un-implemented methods
// ----------------------------------------------------------------------
@Override
public void flushBuffer() throws IOException {
throw new RuntimeException(
"HttpServletResponseStub.flushBuffer() not implemented.");
}
@Override
public int getBufferSize() {
throw new RuntimeException(
"HttpServletResponseStub.getBufferSize() not implemented.");
}
@Override
public Locale getLocale() {
throw new RuntimeException(
"HttpServletResponseStub.getLocale() not implemented.");
}
@Override
public boolean isCommitted() {
throw new RuntimeException(
"HttpServletResponseStub.isCommitted() not implemented.");
}
@Override
public void reset() {
throw new RuntimeException(
"HttpServletResponseStub.reset() not implemented.");
}
@Override
public void resetBuffer() {
throw new RuntimeException(
"HttpServletResponseStub.resetBuffer() not implemented.");
}
@Override
public void setBufferSize(int arg0) {
throw new RuntimeException(
"HttpServletResponseStub.setBufferSize() not implemented.");
}
@Override
public void setContentLength(int arg0) {
throw new RuntimeException(
"HttpServletResponseStub.setContentLength() not implemented.");
}
@Override
public void setLocale(Locale arg0) {
throw new RuntimeException(
"HttpServletResponseStub.setLocale() not implemented.");
}
@Override
public void addCookie(Cookie arg0) {
throw new RuntimeException(
"HttpServletResponseStub.addCookie() not implemented.");
}
@Override
public void addDateHeader(String arg0, long arg1) {
throw new RuntimeException(
"HttpServletResponseStub.addDateHeader() not implemented.");
}
@Override
public void addHeader(String arg0, String arg1) {
throw new RuntimeException(
"HttpServletResponseStub.addHeader() not implemented.");
}
@Override
public void addIntHeader(String arg0, int arg1) {
throw new RuntimeException(
"HttpServletResponseStub.addIntHeader() not implemented.");
}
@Override
public String encodeRedirectURL(String arg0) {
throw new RuntimeException(
"HttpServletResponseStub.encodeRedirectURL() not implemented.");
}
@Override
public String encodeRedirectUrl(String arg0) {
throw new RuntimeException(
"HttpServletResponseStub.encodeRedirectUrl() not implemented.");
}
@Override
public String encodeURL(String arg0) {
throw new RuntimeException(
"HttpServletResponseStub.encodeURL() not implemented.");
}
@Override
public String encodeUrl(String arg0) {
throw new RuntimeException(
"HttpServletResponseStub.encodeUrl() not implemented.");
}
@Override
public void setDateHeader(String arg0, long arg1) {
throw new RuntimeException(
"HttpServletResponseStub.setDateHeader() not implemented.");
}
@Override
public void setIntHeader(String arg0, int arg1) {
throw new RuntimeException(
"HttpServletResponseStub.setIntHeader() not implemented.");
}
@Override
public void setStatus(int arg0, String arg1) {
throw new RuntimeException(
"HttpServletResponseStub.setStatus() not implemented.");
}
}

View file

@ -0,0 +1,167 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
package stubs.javax.servlet.http;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import stubs.javax.servlet.ServletContextStub;
/**
* A simple stand-in for the HttpSession, for use in unit tests.
*/
public class HttpSessionStub implements HttpSession {
private static final Log log = LogFactory.getLog(HttpSessionStub.class);
// ----------------------------------------------------------------------
// Stub infrastructure
// ----------------------------------------------------------------------
private String id = "arbitraryId";
private ServletContext context;
private final Map<String, Object> attributes = new HashMap<String, Object>();
@SuppressWarnings("unused")
private int maxInactiveInterval;
public void setId(String id) {
this.id = id;
}
public void setServletContext(ServletContext context) {
this.context = context;
}
// ----------------------------------------------------------------------
// Stub methods
// ----------------------------------------------------------------------
@Override
public String getId() {
return this.id;
}
@Override
public ServletContext getServletContext() {
if (this.context == null) {
return new ServletContextStub();
} else {
return this.context;
}
}
@Override
public void setAttribute(String name, Object value) {
if (name == null) {
throw new NullPointerException("name may not be null.");
}
if (value == null) {
removeAttribute(name);
}
attributes.put(name, value);
log.debug("setAttribute: " + name + "=" + value);
}
@Override
public void removeAttribute(String name) {
attributes.remove(name);
log.debug("removeAttribute: " + name);
}
@Override
public Object getAttribute(String name) {
return attributes.get(name);
}
/**
* So far, we don't do anything with this, or even confirm that it has been
* set. We just don't throw an exception if someone wants to set it.
*/
@Override
public void setMaxInactiveInterval(int seconds) {
this.maxInactiveInterval = seconds;
}
// ----------------------------------------------------------------------
// Un-implemented methods
// ----------------------------------------------------------------------
@Override
@SuppressWarnings("rawtypes")
public Enumeration getAttributeNames() {
throw new RuntimeException(
"HttpSessionStub.getAttributeNames() not implemented.");
}
@Override
public long getCreationTime() {
throw new RuntimeException(
"HttpSessionStub.getCreationTime() not implemented.");
}
@Override
public long getLastAccessedTime() {
throw new RuntimeException(
"HttpSessionStub.getLastAccessedTime() not implemented.");
}
@Override
public int getMaxInactiveInterval() {
throw new RuntimeException(
"HttpSessionStub.getMaxInactiveInterval() not implemented.");
}
@Deprecated
@Override
public javax.servlet.http.HttpSessionContext getSessionContext() {
throw new RuntimeException(
"HttpSessionStub.getSessionContext() not implemented.");
}
@Override
@Deprecated
public Object getValue(String arg0) {
throw new RuntimeException(
"HttpSessionStub.getValue() not implemented.");
}
@Override
@Deprecated
public String[] getValueNames() {
throw new RuntimeException(
"HttpSessionStub.getValueNames() not implemented.");
}
@Override
public void invalidate() {
throw new RuntimeException(
"HttpSessionStub.invalidate() not implemented.");
}
@Override
public boolean isNew() {
throw new RuntimeException("HttpSessionStub.isNew() not implemented.");
}
@Override
@Deprecated
public void putValue(String arg0, Object arg1) {
throw new RuntimeException(
"HttpSessionStub.putValue() not implemented.");
}
@Override
@Deprecated
public void removeValue(String arg0) {
throw new RuntimeException(
"HttpSessionStub.removeValue() not implemented.");
}
}