Revision: 2726
http://archive-access.svn.sourceforge.net/archive-access/?rev=2726&view=rev
Author: bradtofel
Date: 2009-05-20 02:47:33 +0000 (Wed, 20 May 2009)
Log Message:
-----------
INITIAL REV: ArchivalURL-specific DateRedirecting ReplayRenderer, which preserves datespec context flags.
Added Paths:
-----------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlDateRedirectReplayRenderer.java
Added: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlDateRedirectReplayRenderer.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlDateRedirectReplayRenderer.java (rev 0)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlDateRedirectReplayRenderer.java 2009-05-20 02:47:33 UTC (rev 2726)
@@ -0,0 +1,83 @@
+/* ArchivalUrlDateRedirectReplayRenderer
+ *
+ * $Id$
+ *
+ * Created on 3:57:54 PM Apr 10, 2009.
+ *
+ * Copyright (C) 2009 Internet Archive.
+ *
+ * This file is part of wayback.
+ *
+ * wayback 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 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; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+package org.archive.wayback.archivalurl;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.archive.wayback.ReplayRenderer;
+import org.archive.wayback.ResultURIConverter;
+import org.archive.wayback.core.CaptureSearchResult;
+import org.archive.wayback.core.CaptureSearchResults;
+import org.archive.wayback.core.Resource;
+import org.archive.wayback.core.WaybackRequest;
+
+/**
+ *
+ *
+ * @author brad
+ * @version $Date$, $Revision$
+ */
+
+public class ArchivalUrlDateRedirectReplayRenderer implements ReplayRenderer {
+
+ /* (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,
+ CaptureSearchResult result, Resource resource,
+ ResultURIConverter uriConverter, CaptureSearchResults results)
+ throws ServletException, IOException {
+
+ // redirect to the better version:
+ String url = result.getOriginalUrl();
+ String captureDate = makeFlagDateSpec(
+ result.getCaptureTimestamp(),wbRequest);
+
+ String betterURI = uriConverter.makeReplayURI(captureDate,url);
+ httpResponse.sendRedirect(betterURI);
+ }
+ private String makeFlagDateSpec(String dateSpec, WaybackRequest request) {
+ StringBuilder sb = new StringBuilder();
+ sb.append(dateSpec);
+ if(request.isCSSContext()) {
+ sb.append(ArchivalUrlRequestParser.CSS_CONTEXT);
+ sb.append(ArchivalUrlRequestParser.FLAG_DELIM);
+ }
+ if(request.isJSContext()) {
+ sb.append(ArchivalUrlRequestParser.JS_CONTEXT);
+ sb.append(ArchivalUrlRequestParser.FLAG_DELIM);
+ }
+ if(request.isIMGContext()) {
+ sb.append(ArchivalUrlRequestParser.IMG_CONTEXT);
+ sb.append(ArchivalUrlRequestParser.FLAG_DELIM);
+ }
+ return sb.toString();
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|