Revision: 2384 http://archive-access.svn.sourceforge.net/archive-access/?rev=2384&view=rev Author: bradtofel Date: 2008-07-01 17:15:22 -0700 (Tue, 01 Jul 2008) Log Message: ----------- REMOVED: no longer needed with new simplified ReplayDispatcher interface. Removed Paths: ------------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/BaseReplayDispatcher.java Deleted: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/BaseReplayDispatcher.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/BaseReplayDispatcher.java 2008-07-01 23:56:58 UTC (rev 2383) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/BaseReplayDispatcher.java 2008-07-02 00:15:22 UTC (rev 2384) @@ -1,210 +0,0 @@ -/* ReplayRendererDispatcher - * - * $Id$ - * - * Created on 5:23:35 PM Aug 8, 2007. - * - * Copyright (C) 2007 Internet Archive. - * - * This file is part of wayback-core. - * - * wayback-core is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser Public License as published by - * the Free Software Foundation; either version 2.1 of the License, or - * any later version. - * - * wayback-core is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser Public License for more details. - * - * You should have received a copy of the GNU Lesser Public License - * along with wayback-core; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ -package org.archive.wayback.replay; - -import java.io.IOException; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.archive.wayback.ReplayDispatcher; -import org.archive.wayback.ReplayRenderer; -import org.archive.wayback.ResultURIConverter; -import org.archive.wayback.WaybackConstants; -import org.archive.wayback.core.Resource; -import org.archive.wayback.core.SearchResult; -import org.archive.wayback.core.SearchResults; -import org.archive.wayback.core.UIResults; -import org.archive.wayback.core.WaybackRequest; -import org.archive.wayback.exception.WaybackException; - -/** - * - * - * @author brad - * @version $Date$, $Revision$ - */ -public abstract class BaseReplayDispatcher implements ReplayDispatcher { - - private String errorJsp = "/jsp/HTMLError.jsp"; - private String imageErrorJsp = "/jsp/HTMLError.jsp"; - private String javascriptErrorJsp = "/jsp/JavaScriptError.jsp"; - private String cssErrorJsp = "/jsp/CSSError.jsp"; - - protected final Pattern IMAGE_REGEX = Pattern - .compile(".*\\.(jpg|jpeg|gif|png|bmp|tiff|tif)$"); - - /* ERROR HANDLING RESPONSES: */ - - private boolean requestIsEmbedded(HttpServletRequest httpRequest, - WaybackRequest wbRequest) { - // without a wbRequest, assume it is not embedded: send back HTML - if (wbRequest == null) { - return false; - } - String referer = wbRequest.get(WaybackConstants.REQUEST_REFERER_URL); - return (referer != null && referer.length() > 0); - } - - private boolean requestIsImage(HttpServletRequest httpRequest, - WaybackRequest wbRequest) { - String requestUrl = wbRequest.get(WaybackConstants.REQUEST_URL); - if (requestUrl == null) - return false; - Matcher matcher = IMAGE_REGEX.matcher(requestUrl); - return (matcher != null && matcher.matches()); - } - - private boolean requestIsJavascript(HttpServletRequest httpRequest, - WaybackRequest wbRequest) { - - String requestUrl = wbRequest.get(WaybackConstants.REQUEST_URL); - return (requestUrl != null) && requestUrl.endsWith(".js"); - } - - private boolean requestIsCSS(HttpServletRequest httpRequest, - WaybackRequest wbRequest) { - - String requestUrl = wbRequest.get(WaybackConstants.REQUEST_URL); - return (requestUrl != null) && requestUrl.endsWith(".css"); - } - - /* - * (non-Javadoc) - * - * @see org.archive.wayback.ReplayRenderer#renderException(javax.servlet.http.HttpServletRequest, - * javax.servlet.http.HttpServletResponse, - * org.archive.wayback.core.WaybackRequest, - * org.archive.wayback.exception.WaybackException) - */ - public void renderException(HttpServletRequest httpRequest, - HttpServletResponse httpResponse, WaybackRequest wbRequest, - WaybackException exception) throws ServletException, IOException { - - // the "standard HTML" response handler: - String finalJspPath = errorJsp; - - // try to not cause client errors by sending the HTML response if - // this request is ebedded, and is obviously one of the special types: - if (requestIsEmbedded(httpRequest, wbRequest)) { - - if (requestIsJavascript(httpRequest, wbRequest)) { - - finalJspPath = javascriptErrorJsp; - - } else if (requestIsCSS(httpRequest, wbRequest)) { - - finalJspPath = cssErrorJsp; - - } else if (requestIsImage(httpRequest, wbRequest)) { - - finalJspPath = imageErrorJsp; - - } - } - - httpRequest.setAttribute("exception", exception); - UIResults uiResults = new UIResults(wbRequest); - uiResults.storeInRequest(httpRequest, finalJspPath); - - RequestDispatcher dispatcher = httpRequest - .getRequestDispatcher(finalJspPath); - if(dispatcher == null) { - throw new ServletException("Null dispatcher for " + finalJspPath); - } - dispatcher.forward(httpRequest, httpResponse); - } - - /** - * @param wbRequest - * @param result - * @param resource - * @return the correct ReplayRenderer for the Resource - */ - public abstract ReplayRenderer getRenderer(WaybackRequest wbRequest, - SearchResult result, Resource resource); - - /* - * (non-Javadoc) - * - * @see org.archive.wayback.ReplayRenderer#renderResource(javax.servlet.http.HttpServletRequest, - * javax.servlet.http.HttpServletResponse, - * org.archive.wayback.core.WaybackRequest, - * org.archive.wayback.core.SearchResult, - * org.archive.wayback.core.Resource, - * org.archive.wayback.ResultURIConverter, - * org.archive.wayback.core.SearchResults) - */ - public void renderResource(HttpServletRequest httpRequest, - HttpServletResponse httpResponse, WaybackRequest wbRequest, - SearchResult result, Resource resource, - ResultURIConverter uriConverter, SearchResults results) - throws ServletException, IOException { - - ReplayRenderer renderer = getRenderer(wbRequest, result, resource); - try { - renderer.renderResource(httpRequest, httpResponse, wbRequest, result, - resource, uriConverter, results); - } catch (WaybackException e) { - renderException(httpRequest, httpResponse, wbRequest, e); - } - } - - public String getErrorJsp() { - return errorJsp; - } - - public void setErrorJsp(String errorJsp) { - this.errorJsp = errorJsp; - } - - public String getImageErrorJsp() { - return imageErrorJsp; - } - - public void setImageErrorJsp(String imageErrorJsp) { - this.imageErrorJsp = imageErrorJsp; - } - - public String getJavascriptErrorJsp() { - return javascriptErrorJsp; - } - - public void setJavascriptErrorJsp(String javascriptErrorJsp) { - this.javascriptErrorJsp = javascriptErrorJsp; - } - - public String getCssErrorJsp() { - return cssErrorJsp; - } - - public void setCssErrorJsp(String cssErrorJsp) { - this.cssErrorJsp = cssErrorJsp; - } -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |