From: Brad <bra...@us...> - 2005-10-18 02:31:01
|
Update of /cvsroot/archive-access/archive-access/projects/wayback/src/java/org/archive/wayback/servletglue In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3483/src/java/org/archive/wayback/servletglue Added Files: RequestFilter.java WBQueryUIServlet.java WBReplayUIServlet.java Log Message: Initial check-in -- pre code review --- NEW FILE: WBQueryUIServlet.java --- package org.archive.wayback.servletglue; import java.io.IOException; import java.util.Enumeration; import java.util.Properties; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.archive.wayback.QueryUI; import org.archive.wayback.core.WMRequest; import org.archive.wayback.core.WaybackLogic; public class WBQueryUIServlet extends HttpServlet { private WaybackLogic wayback = new WaybackLogic(); private static final String WMREQUEST_ATTRIBUTE = "wmrequest.attribute"; private static final long serialVersionUID = 1L; public WBQueryUIServlet() { super(); // TODO Auto-generated constructor stub } public void init(ServletConfig c) throws ServletException { Properties p = new Properties(); for (Enumeration e = c.getInitParameterNames(); e.hasMoreElements();) { String key = (String) e.nextElement(); p.put(key, c.getInitParameter(key)); } try { wayback.init(p); } catch (Exception e) { throw new ServletException(e.getMessage()); } } public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { WMRequest wmRequest = (WMRequest) request .getAttribute(WMREQUEST_ATTRIBUTE); if (wmRequest == null) { throw new ServletException("No WMRequest object"); } QueryUI queryUI = wayback.getQueryUI(); queryUI.handle(wayback, wmRequest, request, response); } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub } } --- NEW FILE: WBReplayUIServlet.java --- package org.archive.wayback.servletglue; import java.io.IOException; import java.util.Enumeration; import java.util.Properties; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.archive.wayback.ReplayUI; import org.archive.wayback.core.WMRequest; import org.archive.wayback.core.WaybackLogic; public class WBReplayUIServlet extends HttpServlet { private static final String WMREQUEST_ATTRIBUTE = "wmrequest.attribute"; private static final long serialVersionUID = 1L; private WaybackLogic wayback = new WaybackLogic(); public WBReplayUIServlet() { super(); // TODO Auto-generated constructor stub } public void init(ServletConfig c) throws ServletException { Properties p = new Properties(); for (Enumeration e = c.getInitParameterNames(); e.hasMoreElements();) { String key = (String) e.nextElement(); p.put(key, c.getInitParameter(key)); } try { wayback.init(p); } catch (Exception e) { throw new ServletException(e.getMessage()); } } public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { WMRequest wmRequest = (WMRequest) request .getAttribute(WMREQUEST_ATTRIBUTE); if (wmRequest == null) { throw new ServletException("No WMRequest object"); } ReplayUI replayUI = wayback.getReplayUI(); replayUI.handle(wayback, wmRequest, request, response); } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub } } --- NEW FILE: RequestFilter.java --- package org.archive.wayback.servletglue; import java.io.IOException; import java.util.logging.Logger; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.archive.net.UURI; import org.archive.wayback.RequestParser; import org.archive.wayback.core.WMRequest; public class RequestFilter implements Filter { private static final Logger LOGGER = Logger.getLogger(RequestFilter.class .getName()); private static final String WMREQUEST_ATTRIBUTE = "wmrequest.attribute"; private static final String REQUEST_PARSER_CLASS = "requestParser.class"; private static final String HANDLER_URL = "handler.url"; private String handlerUrl = null; private RequestParser requestParser = null; public RequestFilter() { super(); // TODO Auto-generated constructor stub } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub } public void init(FilterConfig c) throws ServletException { handlerUrl = c.getInitParameter(HANDLER_URL); if ((handlerUrl == null) || (handlerUrl.length() <= 0)) { throw new ServletException("No config (" + HANDLER_URL + ")"); } String className = c.getInitParameter(REQUEST_PARSER_CLASS); if ((className == null) || (className.length() <= 0)) { throw new ServletException("No config (" + REQUEST_PARSER_CLASS + ")"); } try { requestParser = (RequestParser) Class.forName(className) .newInstance(); LOGGER.info("new " + className + " requestParser created."); } catch (Exception e) { // Convert. Add info. throw new ServletException("Failed making requestParser with " + className + ": " + e.getMessage()); } } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if (!handle(request, response)) { chain.doFilter(request, response); } } protected boolean handle(final ServletRequest request, final ServletResponse response) throws IOException, ServletException { if (!(request instanceof HttpServletRequest)) { return false; } if (!(response instanceof HttpServletResponse)) { return false; } HttpServletRequest httpRequest = (HttpServletRequest) request; HttpServletResponse httpResponse = (HttpServletResponse) response; WMRequest wmRequest = requestParser.parseRequest(httpRequest); if (wmRequest == null) { return false; } // if getRedirectURI returns non-null, then the request needs a // redirect: UURI redirectURI = wmRequest.getRedirectURI(); if (redirectURI != null) { String redirectURL = redirectURI.getEscapedURI(); // response.sendRedirect(response.encodeRedirectURL(redirectURL)); httpResponse.sendRedirect(httpResponse .encodeRedirectURL(redirectURL)); } else { request.setAttribute(WMREQUEST_ATTRIBUTE, wmRequest); RequestDispatcher dispatcher = request .getRequestDispatcher(handlerUrl); dispatcher.forward(request, response); } return true; } public void destroy() { // TODO Auto-generated method stub } } |