You can subscribe to this list here.
| 2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(10) |
Sep
(36) |
Oct
(339) |
Nov
(103) |
Dec
(152) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2006 |
Jan
(141) |
Feb
(102) |
Mar
(125) |
Apr
(203) |
May
(57) |
Jun
(30) |
Jul
(139) |
Aug
(46) |
Sep
(64) |
Oct
(105) |
Nov
(34) |
Dec
(162) |
| 2007 |
Jan
(81) |
Feb
(57) |
Mar
(141) |
Apr
(72) |
May
(9) |
Jun
(1) |
Jul
(144) |
Aug
(88) |
Sep
(40) |
Oct
(43) |
Nov
(34) |
Dec
(20) |
| 2008 |
Jan
(44) |
Feb
(45) |
Mar
(16) |
Apr
(36) |
May
(8) |
Jun
(77) |
Jul
(177) |
Aug
(66) |
Sep
(8) |
Oct
(33) |
Nov
(13) |
Dec
(37) |
| 2009 |
Jan
(2) |
Feb
(5) |
Mar
(8) |
Apr
|
May
(36) |
Jun
(19) |
Jul
(46) |
Aug
(8) |
Sep
(1) |
Oct
(66) |
Nov
(61) |
Dec
(10) |
| 2010 |
Jan
(13) |
Feb
(16) |
Mar
(38) |
Apr
(76) |
May
(47) |
Jun
(32) |
Jul
(35) |
Aug
(45) |
Sep
(20) |
Oct
(61) |
Nov
(24) |
Dec
(16) |
| 2011 |
Jan
(22) |
Feb
(34) |
Mar
(11) |
Apr
(8) |
May
(24) |
Jun
(23) |
Jul
(11) |
Aug
(42) |
Sep
(81) |
Oct
(48) |
Nov
(21) |
Dec
(20) |
| 2012 |
Jan
(30) |
Feb
(25) |
Mar
(4) |
Apr
(6) |
May
(1) |
Jun
(5) |
Jul
(5) |
Aug
(8) |
Sep
(6) |
Oct
(6) |
Nov
|
Dec
|
|
From: <bra...@us...> - 2009-05-20 05:36:57
|
Revision: 2705
http://archive-access.svn.sourceforge.net/archive-access/?rev=2705&view=rev
Author: bradtofel
Date: 2009-05-20 00:40:05 +0000 (Wed, 20 May 2009)
Log Message:
-----------
MINOR-REFACTOR: moved common error checking into single method.
Modified Paths:
--------------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/core/Resource.java
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/core/Resource.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/core/Resource.java 2009-05-05 22:17:48 UTC (rev 2704)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/core/Resource.java 2009-05-20 00:40:05 UTC (rev 2705)
@@ -44,6 +44,12 @@
public abstract long getRecordLength();
public abstract Map<String,String> getHttpHeaders();
+ private void validate() throws IOException {
+ if(is == null) {
+ throw new IOException("No InputStream");
+ }
+ }
+
protected void setInputStream(InputStream is) {
if(is.markSupported()) {
this.is = is;
@@ -57,9 +63,7 @@
* @see java.io.BufferedInputStream#available()
*/
public int available() throws IOException {
- if(is == null) {
- throw new IOException("No InputStream");
- }
+ validate();
return is.available();
}
/**
@@ -87,9 +91,7 @@
* @see java.io.BufferedInputStream#read()
*/
public int read() throws IOException {
- if(is == null) {
- throw new IOException("No InputStream");
- }
+ validate();
return is.read();
}
/**
@@ -101,9 +103,7 @@
* @see java.io.BufferedInputStream#read(byte[], int, int)
*/
public int read(byte[] b, int off, int len) throws IOException {
- if(is == null) {
- throw new IOException("No InputStream");
- }
+ validate();
return is.read(b, off, len);
}
/**
@@ -113,9 +113,7 @@
* @see java.io.FilterInputStream#read(byte[])
*/
public int read(byte[] b) throws IOException {
- if(is == null) {
- throw new IOException("No InputStream");
- }
+ validate();
return is.read(b);
}
/**
@@ -123,9 +121,7 @@
* @see java.io.BufferedInputStream#reset()
*/
public void reset() throws IOException {
- if(is == null) {
- throw new IOException("No InputStream");
- }
+ validate();
is.reset();
}
/**
@@ -135,9 +131,7 @@
* @see java.io.BufferedInputStream#skip(long)
*/
public long skip(long n) throws IOException {
- if(is == null) {
- throw new IOException("No InputStream");
- }
+ validate();
return is.skip(n);
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
Revision: 2730
http://archive-access.svn.sourceforge.net/archive-access/?rev=2730&view=rev
Author: bradtofel
Date: 2009-05-20 02:55:09 +0000 (Wed, 20 May 2009)
Log Message:
-----------
FEATURE: now uses 'warc/revisit' mime type to determine if records should be annotated, in addition to blank('-') field for the ARC/WARC file.
Modified Paths:
--------------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/adapters/DeduplicationSearchResultAnnotationAdapter.java
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/adapters/DeduplicationSearchResultAnnotationAdapter.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/adapters/DeduplicationSearchResultAnnotationAdapter.java 2009-05-20 02:53:02 UTC (rev 2729)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/adapters/DeduplicationSearchResultAnnotationAdapter.java 2009-05-20 02:55:09 UTC (rev 2730)
@@ -26,6 +26,7 @@
public class DeduplicationSearchResultAnnotationAdapter
implements Adapter<CaptureSearchResult,CaptureSearchResult> {
private final static String EMPTY_VALUE = "-";
+ private final static String REVISIT_VALUE = "warc/revisit";
private HashMap<String,CaptureSearchResult> memory = null;
@@ -55,7 +56,8 @@
}
public CaptureSearchResult adapt(CaptureSearchResult o) {
- if(o.getFile().equals(EMPTY_VALUE)) {
+ if(o.getFile().equals(EMPTY_VALUE)
+ || o.getMimeType().equals(REVISIT_VALUE)) {
return annotate(o);
}
return remember(o);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bra...@us...> - 2009-05-20 02:53:10
|
Revision: 2729
http://archive-access.svn.sourceforge.net/archive-access/?rev=2729&view=rev
Author: bradtofel
Date: 2009-05-20 02:53:02 +0000 (Wed, 20 May 2009)
Log Message:
-----------
FEATURE: now adheres to a BetterRequestException.
Modified Paths:
--------------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/webapp/AccessPoint.java
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/webapp/AccessPoint.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/webapp/AccessPoint.java 2009-05-20 02:51:34 UTC (rev 2728)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/webapp/AccessPoint.java 2009-05-20 02:53:02 UTC (rev 2729)
@@ -50,6 +50,7 @@
import org.archive.wayback.core.WaybackRequest;
import org.archive.wayback.exception.AuthenticationControlException;
import org.archive.wayback.exception.BaseExceptionRenderer;
+import org.archive.wayback.exception.BetterRequestException;
import org.archive.wayback.exception.ResourceNotAvailableException;
import org.archive.wayback.exception.ResourceNotInArchiveException;
import org.archive.wayback.exception.WaybackException;
@@ -97,6 +98,41 @@
private String urlRoot = null;
private Locale locale = null;
+ /**
+ * @return the contextName
+ */
+ public String getContextName() {
+ return contextName;
+ }
+
+ /**
+ * @return the replay
+ */
+ public ReplayDispatcher getReplay() {
+ return replay;
+ }
+
+ /**
+ * @return the query
+ */
+ public QueryRenderer getQuery() {
+ return query;
+ }
+
+ /**
+ * @return the parser
+ */
+ public RequestParser getParser() {
+ return parser;
+ }
+
+ /**
+ * @return the uriConverter
+ */
+ public ResultURIConverter getUriConverter() {
+ return uriConverter;
+ }
+
public Locale getLocale() {
return locale;
}
@@ -316,6 +352,10 @@
handled = dispatchLocal(httpRequest,httpResponse);
}
+ } catch(BetterRequestException e) {
+ httpResponse.sendRedirect(e.getBetterURI());
+ handled = true;
+
} catch(WaybackException e) {
logNotInArchive(e,wbRequest);
exception.renderException(httpRequest, httpResponse, wbRequest, e,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bra...@us...> - 2009-05-20 02:51:40
|
Revision: 2728
http://archive-access.svn.sourceforge.net/archive-access/?rev=2728&view=rev
Author: bradtofel
Date: 2009-05-20 02:51:34 +0000 (Wed, 20 May 2009)
Log Message:
-----------
FEATURE: Now attempts to determine the referring page for badly resolved server-relative URLs within a page, re-resolving against the referring URL, and redirecting to the (hopefully) correct URL.
Modified Paths:
--------------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/webapp/RequestFilter.java
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/webapp/RequestFilter.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/webapp/RequestFilter.java 2009-05-20 02:49:24 UTC (rev 2727)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/webapp/RequestFilter.java 2009-05-20 02:51:34 UTC (rev 2728)
@@ -37,12 +37,12 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.apache.commons.httpclient.URIException;
+import org.archive.net.UURI;
+import org.archive.net.UURIFactory;
import org.archive.wayback.exception.ConfigurationException;
+import org.archive.wayback.util.url.UrlOperations;
-//import org.archive.wayback.core.WaybackRequest;
-//import org.archive.wayback.exception.BadQueryException;
-//import org.archive.wayback.exception.ConfigurationException;
-
/**
*
*
@@ -102,9 +102,55 @@
boolean handled = false;
RequestContext context = mapper.mapContext(httpRequest);
- if(context != null) {
+ if(context == null) {
+ try {
+ handled =
+ handleServerRelativeArchivalRedirect(httpRequest, httpResponse);
+ } catch(URIException e) {
+ // TODO: Log this?
+ handled = false;
+ }
+ } else {
handled = context.handleRequest(httpRequest,httpResponse);
}
return handled;
}
+
+ private boolean handleServerRelativeArchivalRedirect(
+ HttpServletRequest httpRequest, HttpServletResponse httpResponse)
+ throws IOException {
+
+ boolean handled = false;
+ // hope that it's a server relative request, with a valid referrer:
+ String referer = httpRequest.getHeader("Referer");
+ if(referer != null) {
+ UURI uri = UURIFactory.getInstance(referer);
+ String path = uri.getPath();
+ int secondSlash = path.indexOf('/',1);
+ if(secondSlash > -1) {
+ String collection = path.substring(0,secondSlash);
+ String remainder = path.substring(secondSlash+1);
+ int thirdSlash = remainder.indexOf('/');
+ if(thirdSlash > -1) {
+ String datespec = remainder.substring(0,thirdSlash);
+ String url = remainder.substring(thirdSlash+1);
+ String thisPath = httpRequest.getRequestURI();
+ String resolved = UrlOperations.resolveUrl(url, thisPath);
+ String contextPath = httpRequest.getContextPath();
+ String finalUrl = uri.getScheme() + "://" +
+ uri.getAuthority() + contextPath + collection + "/"
+ + datespec + "/" + resolved;
+ // cross your fingers!!!
+ LOGGER.info("Server-Relative-Redirect:\t" + referer + "\t"
+ + thisPath + "\t" + finalUrl);
+ httpResponse.sendRedirect(finalUrl);
+ handled = true;
+
+ }
+ }
+ }
+
+ return handled;
+
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bra...@us...> - 2009-05-20 02:49:41
|
Revision: 2727
http://archive-access.svn.sourceforge.net/archive-access/?rev=2727&view=rev
Author: bradtofel
Date: 2009-05-20 02:49:24 +0000 (Wed, 20 May 2009)
Log Message:
-----------
BUGFIX(unreported): Was assigning the content-encoding before setting headers, allowing original headers to override our setting. Now we set the encoding after setting the other headers.
Modified Paths:
--------------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/TextReplayRenderer.java
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/TextReplayRenderer.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/TextReplayRenderer.java 2009-05-20 02:47:33 UTC (rev 2726)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/TextReplayRenderer.java 2009-05-20 02:49:24 UTC (rev 2727)
@@ -95,10 +95,11 @@
// the "Content-Type" HTTP header, then Tomcat will use the default..
// who knows what that is, or what that will do to the page..
// let's try explicitly setting it to what we used:
- httpResponse.setCharacterEncoding(page.getCharSet());
+ headers.put("X-Wayback-Guessed-Charset", page.getCharSet());
// send back the headers:
HttpHeaderOperation.sendHeaders(headers, httpResponse);
+ httpResponse.setCharacterEncoding(page.getCharSet());
page.writeToOutputStream(httpResponse.getOutputStream());
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
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.
|
Revision: 2725
http://archive-access.svn.sourceforge.net/archive-access/?rev=2725&view=rev
Author: bradtofel
Date: 2009-05-20 02:45:10 +0000 (Wed, 20 May 2009)
Log Message:
-----------
INITIAL REV: new ReplayRenderer which allows jspInserts, and also attempts to rewrite absolute HTTP URL occurrences within the javascript page.
Added Paths:
-----------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlJSReplayRenderer.java
Added: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlJSReplayRenderer.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlJSReplayRenderer.java (rev 0)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlJSReplayRenderer.java 2009-05-20 02:45:10 UTC (rev 2725)
@@ -0,0 +1,104 @@
+/* ArchivalUrlJSReplayRenderer
+ *
+ * $Id$
+ *
+ * Created on 2:18:31 PM Feb 12, 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 java.util.Iterator;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+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;
+import org.archive.wayback.replay.HttpHeaderProcessor;
+import org.archive.wayback.replay.TextDocument;
+import org.archive.wayback.replay.TextReplayRenderer;
+import org.archive.wayback.util.Timestamp;
+
+/**
+ *
+ *
+ * @author brad
+ * @version $Date$, $Revision$
+ */
+
+public class ArchivalUrlJSReplayRenderer extends TextReplayRenderer {
+ /**
+ * @param httpHeaderProcessor
+ */
+ public ArchivalUrlJSReplayRenderer(
+ HttpHeaderProcessor httpHeaderProcessor) {
+ super(httpHeaderProcessor);
+ }
+
+ private final static Pattern httpPattern = Pattern
+ .compile("(http://[^/]*/)");
+
+ protected void updatePage(TextDocument page,
+ HttpServletRequest httpRequest, HttpServletResponse httpResponse,
+ WaybackRequest wbRequest, CaptureSearchResult result,
+ Resource resource, ResultURIConverter uriConverter,
+ CaptureSearchResults results) throws ServletException, IOException {
+ String resourceTS = result.getCaptureTimestamp();
+ String captureTS = Timestamp.parseBefore(resourceTS).getDateStr();
+
+ StringBuilder sb = page.sb;
+ StringBuffer replaced = new StringBuffer(sb.length());
+ Matcher m = httpPattern.matcher(sb);
+ while (m.find()) {
+ String host = m.group(1);
+ String replacement = uriConverter.makeReplayURI(captureTS, host);
+ m.appendReplacement(replaced, replacement);
+ }
+ m.appendTail(replaced);
+ // blasted StringBuilder/StringBuffer... gotta convert again...
+ page.sb.setLength(0);
+ page.sb.ensureCapacity(replaced.length());
+ page.sb.append(replaced);
+
+ // if any JS-specific jsp inserts are configured, run and insert...
+ List<String> jspInserts = getJspInserts();
+
+ StringBuilder toInsert = new StringBuilder(300);
+
+ if (jspInserts != null) {
+ Iterator<String> itr = jspInserts.iterator();
+ while (itr.hasNext()) {
+ toInsert.append(page.includeJspString(itr.next(), httpRequest,
+ httpResponse, wbRequest, results, result, resource));
+ }
+ }
+
+ page.insertAtStartOfDocument(toInsert.toString());
+
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bra...@us...> - 2009-05-20 02:35:11
|
Revision: 2724
http://archive-access.svn.sourceforge.net/archive-access/?rev=2724&view=rev
Author: bradtofel
Date: 2009-05-20 02:35:05 +0000 (Wed, 20 May 2009)
Log Message:
-----------
BUGFIX(unreported): results did not always have the correct offset when placed into the BDBIndex.
Modified Paths:
--------------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/liveweb/LiveWebCache.java
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/liveweb/LiveWebCache.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/liveweb/LiveWebCache.java 2009-05-20 02:33:36 UTC (rev 2723)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/liveweb/LiveWebCache.java 2009-05-20 02:35:05 UTC (rev 2724)
@@ -207,6 +207,8 @@
ARCRecord record = (ARCRecord) aResource.getArcRecord();
CaptureSearchResult result = adapter.adapt(record);
+ // HACKHACK: we're getting the wrong offset from the ARCReader:
+ result.setOffset(offset);
index.addSearchResult(result);
LOGGER.info("Added URL(" + url.toString() + ") in " +
"ARC(" + name + ") at (" + offset + ") to LiveIndex");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
Revision: 2723
http://archive-access.svn.sourceforge.net/archive-access/?rev=2723&view=rev
Author: bradtofel
Date: 2009-05-20 02:33:36 +0000 (Wed, 20 May 2009)
Log Message:
-----------
REFACTOR: now inherits from WrappedRequestParser, so inherits configuration access methods from the delegate.
Modified Paths:
--------------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/proxy/ProxyArchivalRequestParser.java
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/proxy/ProxyArchivalRequestParser.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/proxy/ProxyArchivalRequestParser.java 2009-05-20 02:30:31 UTC (rev 2722)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/proxy/ProxyArchivalRequestParser.java 2009-05-20 02:33:36 UTC (rev 2723)
@@ -11,17 +11,17 @@
import org.archive.wayback.requestparser.OpenSearchRequestParser;
public class ProxyArchivalRequestParser extends ProxyRequestParser {
- private ProxyReplayRequestParser prrp = new ProxyReplayRequestParser();
+ private ProxyReplayRequestParser prrp = new ProxyReplayRequestParser(this);
protected RequestParser[] getRequestParsers() {
prrp.init();
RequestParser[] theParsers = {
prrp,
- new PathDatePrefixQueryRequestParser(),
- new PathDateRangeQueryRequestParser(),
- new PathPrefixDatePrefixQueryRequestParser(),
- new PathPrefixDateRangeQueryRequestParser(),
- new OpenSearchRequestParser(),
- new FormRequestParser()
+ new PathDatePrefixQueryRequestParser(this),
+ new PathDateRangeQueryRequestParser(this),
+ new PathPrefixDatePrefixQueryRequestParser(this),
+ new PathPrefixDateRangeQueryRequestParser(this),
+ new OpenSearchRequestParser(this),
+ new FormRequestParser(this)
};
return theParsers;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bra...@us...> - 2009-05-20 02:30:39
|
Revision: 2722
http://archive-access.svn.sourceforge.net/archive-access/?rev=2722&view=rev
Author: bradtofel
Date: 2009-05-20 02:30:31 +0000 (Wed, 20 May 2009)
Log Message:
-----------
INITIAL REV: new ReplayRendererSelector implementations which trigger when WaybackRequest context flags are set.
Added Paths:
-----------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/selector/CSSRequestSelector.java
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/selector/IMGRequestSelector.java
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/selector/JSRequestSelector.java
Added: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/selector/CSSRequestSelector.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/selector/CSSRequestSelector.java (rev 0)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/selector/CSSRequestSelector.java 2009-05-20 02:30:31 UTC (rev 2722)
@@ -0,0 +1,48 @@
+/* CSSRequestSelector
+ *
+ * $Id$
+ *
+ * Created on 2:13:12 PM Feb 12, 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.replay.selector;
+
+import org.archive.wayback.core.CaptureSearchResult;
+import org.archive.wayback.core.Resource;
+import org.archive.wayback.core.WaybackRequest;
+
+/**
+ *
+ *
+ * @author brad
+ * @version $Date$, $Revision$
+ */
+
+public class CSSRequestSelector extends BaseReplayRendererSelector {
+
+ /* (non-Javadoc)
+ * @see org.archive.wayback.replay.selector.BaseReplayRendererSelector#canHandle(org.archive.wayback.core.WaybackRequest, org.archive.wayback.core.CaptureSearchResult, org.archive.wayback.core.Resource)
+ */
+ @Override
+ public boolean canHandle(WaybackRequest wbRequest,
+ CaptureSearchResult result, Resource resource) {
+ return wbRequest.isCSSContext();
+ }
+}
Added: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/selector/IMGRequestSelector.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/selector/IMGRequestSelector.java (rev 0)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/selector/IMGRequestSelector.java 2009-05-20 02:30:31 UTC (rev 2722)
@@ -0,0 +1,48 @@
+/* IMGRequestSelector
+ *
+ * $Id$
+ *
+ * Created on 4:02:56 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.replay.selector;
+
+import org.archive.wayback.core.CaptureSearchResult;
+import org.archive.wayback.core.Resource;
+import org.archive.wayback.core.WaybackRequest;
+
+/**
+ *
+ *
+ * @author brad
+ * @version $Date$, $Revision$
+ */
+
+public class IMGRequestSelector extends BaseReplayRendererSelector {
+
+ /* (non-Javadoc)
+ * @see org.archive.wayback.replay.selector.BaseReplayRendererSelector#canHandle(org.archive.wayback.core.WaybackRequest, org.archive.wayback.core.CaptureSearchResult, org.archive.wayback.core.Resource)
+ */
+ @Override
+ public boolean canHandle(WaybackRequest wbRequest,
+ CaptureSearchResult result, Resource resource) {
+ return wbRequest.isIMGContext();
+ }
+}
\ No newline at end of file
Added: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/selector/JSRequestSelector.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/selector/JSRequestSelector.java (rev 0)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/selector/JSRequestSelector.java 2009-05-20 02:30:31 UTC (rev 2722)
@@ -0,0 +1,49 @@
+/* JSRequestSelector
+ *
+ * $Id$
+ *
+ * Created on 2:14:14 PM Feb 12, 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.replay.selector;
+
+import org.archive.wayback.core.CaptureSearchResult;
+import org.archive.wayback.core.Resource;
+import org.archive.wayback.core.WaybackRequest;
+
+/**
+ *
+ *
+ * @author brad
+ * @version $Date$, $Revision$
+ */
+
+public class JSRequestSelector extends BaseReplayRendererSelector {
+
+ /* (non-Javadoc)
+ * @see org.archive.wayback.replay.selector.BaseReplayRendererSelector#canHandle(org.archive.wayback.core.WaybackRequest, org.archive.wayback.core.CaptureSearchResult, org.archive.wayback.core.Resource)
+ */
+ @Override
+ public boolean canHandle(WaybackRequest wbRequest,
+ CaptureSearchResult result, Resource resource) {
+ return wbRequest.isJSContext();
+ }
+
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bra...@us...> - 2009-05-20 02:28:41
|
Revision: 2721
http://archive-access.svn.sourceforge.net/archive-access/?rev=2721&view=rev
Author: bradtofel
Date: 2009-05-20 02:28:33 +0000 (Wed, 20 May 2009)
Log Message:
-----------
FEATURE: Now compares chaset case-insensitive in meta tags and HTTP headers
FEATURE: exposed setResultBytes()
FEATURE: new insertAtStartOfDocument() method
FEATURE: now detects charset by: a) document META tag, b) byte-detection, c) HTTP header. before was c,b,a.
Modified Paths:
--------------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/TextDocument.java
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/TextDocument.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/TextDocument.java 2009-05-20 02:22:20 UTC (rev 2720)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/TextDocument.java 2009-05-20 02:28:33 UTC (rev 2721)
@@ -31,6 +31,7 @@
import java.nio.charset.Charset;
import java.nio.charset.IllegalCharsetNameException;
import java.text.ParseException;
+import java.util.Iterator;
import java.util.Map;
import javax.servlet.ServletException;
@@ -102,7 +103,9 @@
}
private String contentTypeToCharset(final String contentType) {
- int offset = contentType.indexOf(CHARSET_TOKEN);
+ int offset =
+ contentType.toUpperCase().indexOf(CHARSET_TOKEN.toUpperCase());
+
if (offset != -1) {
String cs = contentType.substring(offset + CHARSET_TOKEN.length());
if(isCharsetSupported(cs)) {
@@ -135,7 +138,16 @@
String charsetName = null;
Map<String,String> httpHeaders = resource.getHttpHeaders();
- String ctype = httpHeaders.get(HTTP_CONTENT_TYPE_HEADER);
+ Iterator<String> keys = httpHeaders.keySet().iterator();
+ String ctype = null;
+ while(keys.hasNext()) {
+ String headerKey = keys.next();
+ String keyCmp = headerKey.toUpperCase().trim();
+ if(keyCmp.equals(HTTP_CONTENT_TYPE_HEADER.toUpperCase())) {
+ ctype = httpHeaders.get(headerKey);
+ break;
+ }
+ }
if (ctype != null) {
charsetName = contentTypeToCharset(ctype);
}
@@ -212,11 +224,11 @@
*/
protected String guessCharset() throws IOException {
- String charSet = getCharsetFromMeta(resource);
+ String charSet = getCharsetFromHeaders(resource);
if(charSet == null) {
charSet = getCharsetFromBytes(resource);
if(charSet == null) {
- charSet = getCharsetFromHeaders(resource);
+ charSet = getCharsetFromMeta(resource);
if(charSet == null) {
charSet = "UTF-8";
}
@@ -365,6 +377,9 @@
* @throws UnsupportedEncodingException
*/
public byte[] getBytes() throws UnsupportedEncodingException {
+ if(resultBytes != null) {
+ return resultBytes;
+ }
if(sb == null) {
throw new IllegalStateException("No interal StringBuffer");
}
@@ -374,6 +389,10 @@
return resultBytes;
}
+ public void setResultBytes(byte[] resultBytes) {
+ this.resultBytes = resultBytes;
+ }
+
/**
* Write the contents of the page to the client.
*
@@ -396,6 +415,13 @@
/**
* @param toInsert
*/
+ public void insertAtStartOfDocument(String toInsert) {
+ sb.insert(0,toInsert);
+ }
+
+ /**
+ * @param toInsert
+ */
public void insertAtStartOfHead(String toInsert) {
int insertPoint = TagMagix.getEndOfFirstTag(sb,"head");
if (-1 == insertPoint) {
@@ -450,9 +476,6 @@
StringHttpServletResponseWrapper wrappedResponse =
new StringHttpServletResponseWrapper(httpResponse);
uiResults.forward(httpRequest, wrappedResponse, jspPath);
-// uiResults.storeInRequest(httpRequest,jspPath);
-// RequestDispatcher dispatcher = httpRequest.getRequestDispatcher(jspPath);
-// dispatcher.forward(httpRequest, wrappedResponse);
return wrappedResponse.getStringResponse();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
Revision: 2720
http://archive-access.svn.sourceforge.net/archive-access/?rev=2720&view=rev
Author: bradtofel
Date: 2009-05-20 02:22:20 +0000 (Wed, 20 May 2009)
Log Message:
-----------
FEATURE: now uses the possibly set context properties of the WaybackRequest to better return exceptions that do not disrupt replayed documents.
Modified Paths:
--------------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/exception/BaseExceptionRenderer.java
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/exception/BaseExceptionRenderer.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/exception/BaseExceptionRenderer.java 2009-05-20 02:20:42 UTC (rev 2719)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/exception/BaseExceptionRenderer.java 2009-05-20 02:22:20 UTC (rev 2720)
@@ -74,6 +74,9 @@
protected boolean requestIsImage(HttpServletRequest httpRequest,
WaybackRequest wbRequest) {
+ if(wbRequest.isIMGContext()) {
+ return true;
+ }
String requestUrl = wbRequest.getRequestUrl();
if (requestUrl == null)
return false;
@@ -83,14 +86,18 @@
protected boolean requestIsJavascript(HttpServletRequest httpRequest,
WaybackRequest wbRequest) {
-
+ if(wbRequest.isJSContext()) {
+ return true;
+ }
String requestUrl = wbRequest.getRequestUrl();
return (requestUrl != null) && requestUrl.endsWith(".js");
}
protected boolean requestIsCSS(HttpServletRequest httpRequest,
WaybackRequest wbRequest) {
-
+ if(wbRequest.isCSSContext()) {
+ return true;
+ }
String requestUrl = wbRequest.getRequestUrl();
return (requestUrl != null) && requestUrl.endsWith(".css");
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
Revision: 2711
http://archive-access.svn.sourceforge.net/archive-access/?rev=2711&view=rev
Author: bradtofel
Date: 2009-05-20 01:55:41 +0000 (Wed, 20 May 2009)
Log Message:
-----------
INITIAL REV: new base class which most implementation classes will inherit from: should simplify configuration of CompositeRequestParsers -- each implementation class will now get configuration from the delegate instance.
Added Paths:
-----------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/WrappedRequestParser.java
Added: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/WrappedRequestParser.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/WrappedRequestParser.java (rev 0)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/WrappedRequestParser.java 2009-05-20 01:55:41 UTC (rev 2711)
@@ -0,0 +1,73 @@
+/* WrappedRequestParser
+ *
+ * $Id$
+ *
+ * Created on 11:53:19 AM Apr 9, 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.requestparser;
+
+/**
+ * Abstract subclass of BaseRequestParser, which allows retrieving
+ * configured maxRecords, and earliest and latest timestamp config from an
+ * delegate instance.
+ *
+ * This class is intended to be overridden and used in conjunction with a
+ * CompositeRequestParser: The CompositeRequestParser(or subclass thereof) will
+ * hold actual configuration data, and all composed RequestParsers will inherit
+ * from this, accessing the configured data on the wrapped instance.
+ *
+ * For examples, please see {Path,Form,OpenSearch,Composite}RequestParser in
+ * this package.
+ *
+ * @author brad
+ * @version $Date$, $Revision$
+ */
+
+public abstract class WrappedRequestParser extends BaseRequestParser {
+
+ private BaseRequestParser wrapped = null;
+
+ public WrappedRequestParser(BaseRequestParser wrapped) {
+ this.wrapped = wrapped;
+ }
+
+ /**
+ * @return
+ * @see org.archive.wayback.requestparser.BaseRequestParser#getEarliestTimestamp()
+ */
+ public String getEarliestTimestamp() {
+ return wrapped.getEarliestTimestamp();
+ }
+ /**
+ * @return
+ * @see org.archive.wayback.requestparser.BaseRequestParser#getLatestTimestamp()
+ */
+ public String getLatestTimestamp() {
+ return wrapped.getLatestTimestamp();
+ }
+ /**
+ * @return
+ * @see org.archive.wayback.requestparser.BaseRequestParser#getMaxRecords()
+ */
+ public int getMaxRecords() {
+ return wrapped.getMaxRecords();
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
Revision: 2710
http://archive-access.svn.sourceforge.net/archive-access/?rev=2710&view=rev
Author: bradtofel
Date: 2009-05-20 01:53:51 +0000 (Wed, 20 May 2009)
Log Message:
-----------
REFACTOR: changed modifiers of methods and instance variables.
Modified Paths:
--------------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/BaseRequestParser.java
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/BaseRequestParser.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/BaseRequestParser.java 2009-05-20 01:40:58 UTC (rev 2709)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/BaseRequestParser.java 2009-05-20 01:53:51 UTC (rev 2710)
@@ -31,44 +31,42 @@
import org.archive.wayback.RequestParser;
import org.archive.wayback.core.WaybackRequest;
import org.archive.wayback.exception.BadQueryException;
+import org.archive.wayback.exception.BetterRequestException;
import org.archive.wayback.util.Timestamp;
import org.archive.wayback.webapp.AccessPoint;
/**
- * Class that implements the RequestParser interface, and also understands how
- * to:
+ * Abstract implementation of the RequestParser interface, which provides some
+ * convenience methods for accessing data in Map<String,String>'s, and also
+ * allows for configuring maxRecords, and earliest and latest timestamp strings.
*
- *
- * This class will attempt to use the overridable parseCustom() method to
- * create the WaybackRequest object, but if that fails (returns null), it will
- * fall back to:
-
- * A) attempting to parse out an incoming OpenSearch format query
- * B) attempting to parse out any and all incoming form elements submitted as
- * either GET or POST arguments
+ * Subclasses must still implement parse().
*
- * This class also contains the functionality to extract HTTP header
- * information into WaybackRequest objects, including Http auth info, referer,
- * remote IPs, etc.
- *
* @author brad
* @version $Date$, $Revision$
*/
public abstract class BaseRequestParser implements RequestParser {
- protected final static String QUERY_BASE = "query";
+ public final static String QUERY_BASE = "query";
- protected final static String XQUERY_BASE = "xmlquery";
+ public final static String XQUERY_BASE = "xmlquery";
- protected final static String REPLAY_BASE = "replay";
+ public final static String REPLAY_BASE = "replay";
- protected final static int DEFAULT_MAX_RECORDS = 10;
+ public final static int DEFAULT_MAX_RECORDS = 10;
- protected int maxRecords = DEFAULT_MAX_RECORDS;
- protected String earliestTimestamp = null;
- protected String latestTimestamp = null;
+ private int maxRecords = DEFAULT_MAX_RECORDS;
+ private String earliestTimestamp = null;
+ private String latestTimestamp = null;
+ /* (non-Javadoc)
+ * @see org.archive.wayback.RequestParser#parse(javax.servlet.http.HttpServletRequest)
+ */
+ public abstract WaybackRequest parse(HttpServletRequest httpRequest,
+ AccessPoint wbContext) throws BadQueryException,
+ BetterRequestException;
+
protected static String getMapParam(Map<String,String[]> queryMap,
String field) {
String arr[] = queryMap.get(field);
@@ -97,12 +95,6 @@
return (val == null) ? "" : val;
}
- /* (non-Javadoc)
- * @see org.archive.wayback.RequestParser#parse(javax.servlet.http.HttpServletRequest)
- */
- public abstract WaybackRequest parse(HttpServletRequest httpRequest,
- AccessPoint wbContext) throws BadQueryException;
-
/**
* @return the maxRecords
*/
@@ -116,23 +108,31 @@
public void setMaxRecords(int maxRecords) {
this.maxRecords = maxRecords;
}
+
/**
- * @param timestamp
+ * @param default earliest timestamp
*/
public void setEarliestTimestamp(String timestamp) {
earliestTimestamp = Timestamp.parseBefore(timestamp).getDateStr();
}
+
/**
- * @return
+ * @return the default earliest timestamp
*/
public String getEarliestTimestamp() {
return earliestTimestamp;
}
+ /**
+ * @param default latest timestamp
+ */
public String getLatestTimestamp() {
return latestTimestamp;
}
+ /**
+ * @return the default latest timestamp
+ */
public void setLatestTimestamp(String timestamp) {
this.latestTimestamp = Timestamp.parseAfter(timestamp).getDateStr();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
Revision: 2709
http://archive-access.svn.sourceforge.net/archive-access/?rev=2709&view=rev
Author: bradtofel
Date: 2009-05-20 01:40:58 +0000 (Wed, 20 May 2009)
Log Message:
-----------
TWEAK: removed commented code
Modified Paths:
--------------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/url/AggressiveUrlCanonicalizer.java
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/url/AggressiveUrlCanonicalizer.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/url/AggressiveUrlCanonicalizer.java 2009-05-20 00:44:04 UTC (rev 2708)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/url/AggressiveUrlCanonicalizer.java 2009-05-20 01:40:58 UTC (rev 2709)
@@ -219,19 +219,6 @@
searchUrl = scheme + searchUrl;
}
- // TODO: this will only work with http:// scheme. should work with all?
- // force add of scheme and possible add '/' with empty path:
-// if (searchUrl.startsWith("http://")) {
-// if (-1 == searchUrl.indexOf('/', 8)) {
-// searchUrl = searchUrl + "/";
-// }
-// } else {
-// if (-1 == searchUrl.indexOf("/")) {
-// searchUrl = searchUrl + "/";
-// }
-// searchUrl = "http://" + searchUrl;
-// }
-
// TODO: These next few lines look crazy -- need to be reworked.. This
// was the only easy way I could find to get the correct unescaping
// out of UURIs, possible a bug. Definitely needs some TLC in any case,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bra...@us...> - 2009-05-20 02:20:50
|
Revision: 2719
http://archive-access.svn.sourceforge.net/archive-access/?rev=2719&view=rev
Author: bradtofel
Date: 2009-05-20 02:20:42 +0000 (Wed, 20 May 2009)
Log Message:
-----------
FEATURE: Now parses archival URL flags (cs_, js_, im_) from the datespec of archival URLs, enabling better handling of specific content types based on how they are included in HTML pages: We no longer need rely on the mime type of pages to determine how we mark them up as they are replayed.
Modified Paths:
--------------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlRequestParser.java
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/ReplayRequestParser.java
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlRequestParser.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlRequestParser.java 2009-05-20 02:18:23 UTC (rev 2718)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlRequestParser.java 2009-05-20 02:20:42 UTC (rev 2719)
@@ -42,6 +42,11 @@
* @version $Date$, $Revision$
*/
public class ArchivalUrlRequestParser extends CompositeRequestParser {
+ public final static String FLAG_DELIM = "_";
+ public final static String JS_CONTEXT = "js";
+ public final static String CSS_CONTEXT = "cs";
+ public final static String IMG_CONTEXT = "im";
+
protected RequestParser[] getRequestParsers() {
RequestParser[] theParsers = {
new ReplayRequestParser(this),
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/ReplayRequestParser.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/ReplayRequestParser.java 2009-05-20 02:18:23 UTC (rev 2718)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/ReplayRequestParser.java 2009-05-20 02:20:42 UTC (rev 2719)
@@ -27,6 +27,7 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import org.archive.wayback.archivalurl.ArchivalUrlRequestParser;
import org.archive.wayback.core.WaybackRequest;
import org.archive.wayback.requestparser.BaseRequestParser;
import org.archive.wayback.requestparser.PathRequestParser;
@@ -41,10 +42,11 @@
*/
public class ReplayRequestParser extends PathRequestParser {
/**
- * Regex which parses Archival URL replay requests into timestamp + url
+ * Regex which parses Archival URL replay requests into:
+ * timestamp, flags, & url
*/
- private final Pattern WB_REQUEST_REGEX = Pattern
- .compile("^(\\d{1,14})/(.*)$");
+ public final static Pattern WB_REQUEST_REGEX = Pattern
+ .compile("^(\\d{1,14})(([a-z]{2}_)*)/(.*)$");
/**
* @param wrapped
@@ -60,7 +62,9 @@
if (matcher != null && matcher.matches()) {
wbRequest = new WaybackRequest();
String dateStr = matcher.group(1);
- urlStr = matcher.group(2);
+ urlStr = matcher.group(4);
+ String flags = matcher.group(2);
+ assignFlags(wbRequest,flags);
// The logic of the classic WM wrt timestamp bounding:
// if 14-digits are specified, assume min-max range boundaries
@@ -71,6 +75,11 @@
String startDate = null;
String endDate = null;
+ if (dateStr.length() == 12) {
+ // assume this is one of those old old alexa ARCs which has
+ // some 12-digit dates. Pad with "00";
+ dateStr = dateStr.concat("00");
+ }
if (dateStr.length() == 14) {
startDate = getEarliestTimestamp();
endDate = getLatestTimestamp();
@@ -100,4 +109,23 @@
return wbRequest;
}
+ /**
+ * @param wbRequest
+ * @param flagsStr : "js_", "", "cs_", "cs_js_"
+ */
+ private void assignFlags(WaybackRequest wbRequest, String flagsStr) {
+ if(flagsStr != null) {
+ String[] flags = flagsStr.split(
+ ArchivalUrlRequestParser.FLAG_DELIM);
+ for(String flag: flags) {
+ if(flag.equals(ArchivalUrlRequestParser.CSS_CONTEXT)) {
+ wbRequest.setCSSContext(true);
+ } else if(flag.equals(ArchivalUrlRequestParser.JS_CONTEXT)) {
+ wbRequest.setJSContext(true);
+ } else if(flag.equals(ArchivalUrlRequestParser.IMG_CONTEXT)) {
+ wbRequest.setIMGContext(true);
+ }
+ }
+ }
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bra...@us...> - 2009-05-20 02:19:00
|
Revision: 2712
http://archive-access.svn.sourceforge.net/archive-access/?rev=2712&view=rev
Author: bradtofel
Date: 2009-05-20 01:58:38 +0000 (Wed, 20 May 2009)
Log Message:
-----------
REFACTOR: now inherits from WrappedRequestParser, so inherits configuration access methods from the delegate.
Modified Paths:
--------------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/FormRequestParser.java
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/OpenSearchRequestParser.java
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/PathRequestParser.java
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/FormRequestParser.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/FormRequestParser.java 2009-05-20 01:55:41 UTC (rev 2711)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/FormRequestParser.java 2009-05-20 01:58:38 UTC (rev 2712)
@@ -40,8 +40,15 @@
* @author brad
* @version $Date$, $Revision$
*/
-public class FormRequestParser extends BaseRequestParser {
+public class FormRequestParser extends WrappedRequestParser {
/**
+ * @param wrapped
+ */
+ public FormRequestParser(BaseRequestParser wrapped) {
+ super(wrapped);
+ }
+
+ /**
* CGI argument name for Submit button...
*/
private final static String SUBMIT_BUTTON = "Submit";
@@ -71,7 +78,7 @@
} else {
return null;
}
- wbRequest.setResultsPerPage(maxRecords);
+ wbRequest.setResultsPerPage(getMaxRecords());
Set<String> keys = queryMap.keySet();
Iterator<String> itr = keys.iterator();
while(itr.hasNext()) {
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/OpenSearchRequestParser.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/OpenSearchRequestParser.java 2009-05-20 01:55:41 UTC (rev 2711)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/OpenSearchRequestParser.java 2009-05-20 01:58:38 UTC (rev 2712)
@@ -39,9 +39,16 @@
* @author brad
* @version $Date$, $Revision$
*/
-public class OpenSearchRequestParser extends BaseRequestParser {
+public class OpenSearchRequestParser extends WrappedRequestParser {
/**
+ * @param wrapped
+ */
+ public OpenSearchRequestParser(BaseRequestParser wrapped) {
+ super(wrapped);
+ }
+
+ /**
* CGI argument name for query arguments
*/
public final static String SEARCH_QUERY = "q";
@@ -104,7 +111,7 @@
int nr = Integer.parseInt(numResults);
wbRequest.setResultsPerPage(nr);
} else {
- wbRequest.setResultsPerPage(maxRecords);
+ wbRequest.setResultsPerPage(getMaxRecords());
}
if (startPage != null) {
int sp = Integer.parseInt(startPage);
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/PathRequestParser.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/PathRequestParser.java 2009-05-20 01:55:41 UTC (rev 2711)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/PathRequestParser.java 2009-05-20 01:58:38 UTC (rev 2712)
@@ -37,9 +37,16 @@
* @author brad
* @version $Date$, $Revision$
*/
-public abstract class PathRequestParser extends BaseRequestParser {
+public abstract class PathRequestParser extends WrappedRequestParser {
/**
+ * @param wrapped
+ */
+ public PathRequestParser(BaseRequestParser wrapped) {
+ super(wrapped);
+ }
+
+ /**
* @param requestPath
* @return WaybackRequest with information parsed from the requestPath, or
* null if information could not be extracted.
@@ -67,7 +74,7 @@
WaybackRequest wbRequest = parse(requestPath);
if(wbRequest != null) {
- wbRequest.setResultsPerPage(maxRecords);
+ wbRequest.setResultsPerPage(getMaxRecords());
}
return wbRequest;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
Revision: 2714
http://archive-access.svn.sourceforge.net/archive-access/?rev=2714&view=rev
Author: bradtofel
Date: 2009-05-20 02:05:56 +0000 (Wed, 20 May 2009)
Log Message:
-----------
REFACTOR: now inherits from WrappedRequestParser, so inherits configuration access methods from the delegate.
Modified Paths:
--------------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/proxy/ProxyReplayRequestParser.java
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/proxy/ProxyReplayRequestParser.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/proxy/ProxyReplayRequestParser.java 2009-05-20 02:05:08 UTC (rev 2713)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/proxy/ProxyReplayRequestParser.java 2009-05-20 02:05:56 UTC (rev 2714)
@@ -32,6 +32,7 @@
import org.archive.wayback.core.WaybackRequest;
import org.archive.wayback.exception.BadQueryException;
import org.archive.wayback.requestparser.BaseRequestParser;
+import org.archive.wayback.requestparser.WrappedRequestParser;
import org.archive.wayback.webapp.AccessPoint;
/**
@@ -40,11 +41,18 @@
* @author brad
* @version $Date$, $Revision$
*/
-public class ProxyReplayRequestParser extends BaseRequestParser {
+public class ProxyReplayRequestParser extends WrappedRequestParser {
private List<String> localhostNames = null;
/**
+ * @param wrapped
+ */
+ public ProxyReplayRequestParser(BaseRequestParser wrapped) {
+ super(wrapped);
+ }
+
+ /**
*
*/
public void init() {
@@ -86,7 +94,7 @@
wbRequest = new WaybackRequest();
wbRequest.setRequestUrl(requestUrl);
wbRequest.setReplayRequest();
- wbRequest.setResultsPerPage(maxRecords);
+ wbRequest.setResultsPerPage(getMaxRecords());
return wbRequest;
}
public List<String> getLocalhostNames() {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
Revision: 2715
http://archive-access.svn.sourceforge.net/archive-access/?rev=2715&view=rev
Author: bradtofel
Date: 2009-05-20 02:06:47 +0000 (Wed, 20 May 2009)
Log Message:
-----------
REFACTOR: now inherits from WrappedRequestParser, so inherits configuration access methods from the delegate.
Modified Paths:
--------------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/domainprefix/DomainPrefixRequestParser.java
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/domainprefix/DomainPrefixRequestParser.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/domainprefix/DomainPrefixRequestParser.java 2009-05-20 02:05:56 UTC (rev 2714)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/domainprefix/DomainPrefixRequestParser.java 2009-05-20 02:06:47 UTC (rev 2715)
@@ -32,6 +32,7 @@
import org.archive.wayback.core.WaybackRequest;
import org.archive.wayback.exception.BadQueryException;
import org.archive.wayback.requestparser.BaseRequestParser;
+import org.archive.wayback.requestparser.WrappedRequestParser;
import org.archive.wayback.util.Timestamp;
import org.archive.wayback.webapp.AccessPoint;
@@ -41,8 +42,15 @@
* @author brad
* @version $Date$, $Revision$
*/
-public class DomainPrefixRequestParser extends BaseRequestParser {
+public class DomainPrefixRequestParser extends WrappedRequestParser {
+ /**
+ * @param wrapped
+ */
+ public DomainPrefixRequestParser(BaseRequestParser wrapped) {
+ super(wrapped);
+ }
+
String hostPort = "localhost:8081";
private final Pattern REPLAY_REGEX =
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bra...@us...> - 2009-05-20 02:18:54
|
Revision: 2713
http://archive-access.svn.sourceforge.net/archive-access/?rev=2713&view=rev
Author: bradtofel
Date: 2009-05-20 02:05:08 +0000 (Wed, 20 May 2009)
Log Message:
-----------
REFACTOR: now inherits from WrappedRequestParser, so inherits configuration access methods from the delegate.
Modified Paths:
--------------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/PathDatePrefixQueryRequestParser.java
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/PathDateRangeQueryRequestParser.java
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/PathPrefixDatePrefixQueryRequestParser.java
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/PathPrefixDateRangeQueryRequestParser.java
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/ReplayRequestParser.java
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/PathDatePrefixQueryRequestParser.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/PathDatePrefixQueryRequestParser.java 2009-05-20 01:58:38 UTC (rev 2712)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/PathDatePrefixQueryRequestParser.java 2009-05-20 02:05:08 UTC (rev 2713)
@@ -28,6 +28,7 @@
import java.util.regex.Pattern;
import org.archive.wayback.core.WaybackRequest;
+import org.archive.wayback.requestparser.BaseRequestParser;
import org.archive.wayback.requestparser.PathRequestParser;
import org.archive.wayback.util.Timestamp;
@@ -40,6 +41,13 @@
*/
public class PathDatePrefixQueryRequestParser extends PathRequestParser {
/**
+ * @param wrapped
+ */
+ public PathDatePrefixQueryRequestParser(BaseRequestParser wrapped) {
+ super(wrapped);
+ }
+
+ /**
* Regex which parses Archival URL queries into timestamp + url for an exact
* URL
*/
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/PathDateRangeQueryRequestParser.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/PathDateRangeQueryRequestParser.java 2009-05-20 01:58:38 UTC (rev 2712)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/PathDateRangeQueryRequestParser.java 2009-05-20 02:05:08 UTC (rev 2713)
@@ -28,6 +28,7 @@
import java.util.regex.Pattern;
import org.archive.wayback.core.WaybackRequest;
+import org.archive.wayback.requestparser.BaseRequestParser;
import org.archive.wayback.requestparser.PathRequestParser;
import org.archive.wayback.util.Timestamp;
@@ -41,6 +42,13 @@
public class PathDateRangeQueryRequestParser extends PathRequestParser {
/**
+ * @param wrapped
+ */
+ public PathDateRangeQueryRequestParser(BaseRequestParser wrapped) {
+ super(wrapped);
+ }
+
+ /**
* Regex which parses Archival URL queries into Start Timestamp +
* End Timestamp + URL for an exact URL
*/
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/PathPrefixDatePrefixQueryRequestParser.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/PathPrefixDatePrefixQueryRequestParser.java 2009-05-20 01:58:38 UTC (rev 2712)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/PathPrefixDatePrefixQueryRequestParser.java 2009-05-20 02:05:08 UTC (rev 2713)
@@ -28,6 +28,7 @@
import java.util.regex.Pattern;
import org.archive.wayback.core.WaybackRequest;
+import org.archive.wayback.requestparser.BaseRequestParser;
import org.archive.wayback.requestparser.PathRequestParser;
import org.archive.wayback.util.Timestamp;
@@ -40,6 +41,13 @@
*/
public class PathPrefixDatePrefixQueryRequestParser extends PathRequestParser {
/**
+ * @param wrapped
+ */
+ public PathPrefixDatePrefixQueryRequestParser(BaseRequestParser wrapped) {
+ super(wrapped);
+ }
+
+ /**
* Regex which parses Archival URL queries into timestamp + URL for URLs
* beginning with the URL prefix
*/
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/PathPrefixDateRangeQueryRequestParser.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/PathPrefixDateRangeQueryRequestParser.java 2009-05-20 01:58:38 UTC (rev 2712)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/PathPrefixDateRangeQueryRequestParser.java 2009-05-20 02:05:08 UTC (rev 2713)
@@ -28,6 +28,7 @@
import java.util.regex.Pattern;
import org.archive.wayback.core.WaybackRequest;
+import org.archive.wayback.requestparser.BaseRequestParser;
import org.archive.wayback.requestparser.PathRequestParser;
import org.archive.wayback.util.Timestamp;
@@ -40,6 +41,13 @@
*/
public class PathPrefixDateRangeQueryRequestParser extends PathRequestParser {
/**
+ * @param wrapped
+ */
+ public PathPrefixDateRangeQueryRequestParser(BaseRequestParser wrapped) {
+ super(wrapped);
+ }
+
+ /**
* Regex which parses Archival URL queries into Start Timestamp +
* End Timestamp + URL for URLs beginning with the URL prefix
*/
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/ReplayRequestParser.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/ReplayRequestParser.java 2009-05-20 01:58:38 UTC (rev 2712)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/ReplayRequestParser.java 2009-05-20 02:05:08 UTC (rev 2713)
@@ -28,6 +28,7 @@
import java.util.regex.Pattern;
import org.archive.wayback.core.WaybackRequest;
+import org.archive.wayback.requestparser.BaseRequestParser;
import org.archive.wayback.requestparser.PathRequestParser;
import org.archive.wayback.util.Timestamp;
@@ -45,6 +46,13 @@
private final Pattern WB_REQUEST_REGEX = Pattern
.compile("^(\\d{1,14})/(.*)$");
+ /**
+ * @param wrapped
+ */
+ public ReplayRequestParser(BaseRequestParser wrapped) {
+ super(wrapped);
+ }
+
public WaybackRequest parse(String requestPath) {
WaybackRequest wbRequest = null;
Matcher matcher = WB_REQUEST_REGEX.matcher(requestPath);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bra...@us...> - 2009-05-20 02:18:54
|
Revision: 2716
http://archive-access.svn.sourceforge.net/archive-access/?rev=2716&view=rev
Author: bradtofel
Date: 2009-05-20 02:12:57 +0000 (Wed, 20 May 2009)
Log Message:
-----------
REFACTOR: now all parse() implementations can throw a BetterRequestException. Also, CompositeRequestParser is now officially abstract, clarifying the semantics of overriding getRequestParsers().
Modified Paths:
--------------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/RequestParser.java
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlRequestParser.java
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/domainprefix/DomainPrefixCompositeRequestParser.java
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/proxy/ProxyRequestParser.java
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/CompositeRequestParser.java
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/RequestParser.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/RequestParser.java 2009-05-20 02:06:47 UTC (rev 2715)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/RequestParser.java 2009-05-20 02:12:57 UTC (rev 2716)
@@ -28,6 +28,7 @@
import org.archive.wayback.core.WaybackRequest;
import org.archive.wayback.exception.BadQueryException;
+import org.archive.wayback.exception.BetterRequestException;
import org.archive.wayback.webapp.AccessPoint;
/**
@@ -47,17 +48,6 @@
* @throws BadQueryException
*/
public abstract WaybackRequest parse(HttpServletRequest httpRequest,
- AccessPoint wbContext) throws BadQueryException;
- /**
- * @param maxRecords
- */
- public void setMaxRecords(int maxRecords);
- /**
- * @param timestamp
- */
- public void setEarliestTimestamp(String timestamp);
- /**
- * @param timestamp
- */
- public void setLatestTimestamp(String timestamp);
+ AccessPoint wbContext) throws BadQueryException,
+ BetterRequestException;
}
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlRequestParser.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlRequestParser.java 2009-05-20 02:06:47 UTC (rev 2715)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlRequestParser.java 2009-05-20 02:12:57 UTC (rev 2716)
@@ -44,13 +44,13 @@
public class ArchivalUrlRequestParser extends CompositeRequestParser {
protected RequestParser[] getRequestParsers() {
RequestParser[] theParsers = {
- new ReplayRequestParser(),
- new PathDatePrefixQueryRequestParser(),
- new PathDateRangeQueryRequestParser(),
- new PathPrefixDatePrefixQueryRequestParser(),
- new PathPrefixDateRangeQueryRequestParser(),
- new OpenSearchRequestParser(),
- new FormRequestParser()
+ new ReplayRequestParser(this),
+ new PathDatePrefixQueryRequestParser(this),
+ new PathDateRangeQueryRequestParser(this),
+ new PathPrefixDatePrefixQueryRequestParser(this),
+ new PathPrefixDateRangeQueryRequestParser(this),
+ new OpenSearchRequestParser(this),
+ new FormRequestParser(this)
};
return theParsers;
}
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/domainprefix/DomainPrefixCompositeRequestParser.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/domainprefix/DomainPrefixCompositeRequestParser.java 2009-05-20 02:06:47 UTC (rev 2715)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/domainprefix/DomainPrefixCompositeRequestParser.java 2009-05-20 02:12:57 UTC (rev 2716)
@@ -36,12 +36,12 @@
* @version $Date$, $Revision$
*/
public class DomainPrefixCompositeRequestParser extends CompositeRequestParser {
- DomainPrefixRequestParser dprp = new DomainPrefixRequestParser();
+ DomainPrefixRequestParser dprp = new DomainPrefixRequestParser(this);
protected RequestParser[] getRequestParsers() {
RequestParser[] theParsers = {
dprp,
- new OpenSearchRequestParser(),
- new FormRequestParser()
+ new OpenSearchRequestParser(this),
+ new FormRequestParser(this)
};
return theParsers;
}
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/proxy/ProxyRequestParser.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/proxy/ProxyRequestParser.java 2009-05-20 02:06:47 UTC (rev 2715)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/proxy/ProxyRequestParser.java 2009-05-20 02:12:57 UTC (rev 2716)
@@ -31,6 +31,7 @@
import org.archive.wayback.RequestParser;
import org.archive.wayback.core.WaybackRequest;
import org.archive.wayback.exception.BadQueryException;
+import org.archive.wayback.exception.BetterRequestException;
import org.archive.wayback.requestparser.CompositeRequestParser;
import org.archive.wayback.requestparser.FormRequestParser;
import org.archive.wayback.requestparser.OpenSearchRequestParser;
@@ -44,13 +45,13 @@
* @version $Date$, $Revision$
*/
public class ProxyRequestParser extends CompositeRequestParser {
- private ProxyReplayRequestParser prrp = new ProxyReplayRequestParser();
+ private ProxyReplayRequestParser prrp = new ProxyReplayRequestParser(this);
protected RequestParser[] getRequestParsers() {
prrp.init();
RequestParser[] theParsers = {
prrp,
- new OpenSearchRequestParser(),
- new FormRequestParser()
+ new OpenSearchRequestParser(this),
+ new FormRequestParser(this)
};
return theParsers;
}
@@ -61,7 +62,7 @@
prrp.setLocalhostNames(localhostNames);
}
public WaybackRequest parse(HttpServletRequest httpRequest,
- AccessPoint wbContext) throws BadQueryException {
+ AccessPoint wbContext) throws BadQueryException, BetterRequestException {
WaybackRequest wbRequest = super.parse(httpRequest, wbContext);
if (wbRequest != null) {
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/CompositeRequestParser.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/CompositeRequestParser.java 2009-05-20 02:06:47 UTC (rev 2715)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/CompositeRequestParser.java 2009-05-20 02:12:57 UTC (rev 2716)
@@ -29,15 +29,19 @@
import org.archive.wayback.RequestParser;
import org.archive.wayback.core.WaybackRequest;
import org.archive.wayback.exception.BadQueryException;
+import org.archive.wayback.exception.BetterRequestException;
import org.archive.wayback.webapp.AccessPoint;
/**
+ * Abstract RequestParser implementation. Subclasses must implement
+ * the getRequestParsers() method. This implementation provides a parse()
+ * implementation, which allows each RequestParser returned by the
+ * getRequestParsers() method an attempt at parsing the incoming request.
*
- *
* @author brad
* @version $Date$, $Revision$
*/
-public class CompositeRequestParser extends BaseRequestParser {
+public abstract class CompositeRequestParser extends BaseRequestParser {
private RequestParser[] parsers = null;
/**
@@ -45,31 +49,26 @@
*/
public void init() {
parsers = getRequestParsers();
- for(int i = 0; i < parsers.length; i++) {
- parsers[i].setMaxRecords(maxRecords);
- if(earliestTimestamp != null) {
- parsers[i].setEarliestTimestamp(earliestTimestamp);
- }
- if(latestTimestamp != null) {
- parsers[i].setLatestTimestamp(latestTimestamp);
- }
- }
}
- protected RequestParser[] getRequestParsers() {
- RequestParser[] theParsers = {
- new OpenSearchRequestParser(),
- new FormRequestParser()
- };
- return theParsers;
- }
+ protected abstract RequestParser[] getRequestParsers();
+// A basic example implementation method:
+
+// protected abstract RequestParser[] getRequestParsers() {
+// RequestParser[] theParsers = {
+// new OpenSearchRequestParser(this),
+// new FormRequestParser(this)
+// };
+// return theParsers;
+// }
+
/* (non-Javadoc)
* @see org.archive.wayback.RequestParser#parse(javax.servlet.http.HttpServletRequest)
*/
public WaybackRequest parse(HttpServletRequest httpRequest,
- AccessPoint wbContext) throws BadQueryException {
+ AccessPoint wbContext) throws BadQueryException, BetterRequestException {
WaybackRequest wbRequest = null;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
Revision: 2717
http://archive-access.svn.sourceforge.net/archive-access/?rev=2717&view=rev
Author: bradtofel
Date: 2009-05-20 02:16:53 +0000 (Wed, 20 May 2009)
Log Message:
-----------
TWEAK: added getter for replayURIPrefix member.
Modified Paths:
--------------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlResultURIConverter.java
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlResultURIConverter.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlResultURIConverter.java 2009-05-20 02:12:57 UTC (rev 2716)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlResultURIConverter.java 2009-05-20 02:16:53 UTC (rev 2717)
@@ -59,4 +59,11 @@
public void setReplayURIPrefix(String replayURIPrefix) {
this.replayURIPrefix = replayURIPrefix;
}
+
+ /**
+ * @return the replayURIPrefix
+ */
+ public String getReplayURIPrefix() {
+ return replayURIPrefix;
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
Revision: 2718
http://archive-access.svn.sourceforge.net/archive-access/?rev=2718&view=rev
Author: bradtofel
Date: 2009-05-20 02:18:23 +0000 (Wed, 20 May 2009)
Log Message:
-----------
FEATURE: now CSS pages can have jspInserts, which are always prepended to the replayed documents.
Modified Paths:
--------------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlCSSReplayRenderer.java
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlCSSReplayRenderer.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlCSSReplayRenderer.java 2009-05-20 02:16:53 UTC (rev 2717)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlCSSReplayRenderer.java 2009-05-20 02:18:23 UTC (rev 2718)
@@ -1,6 +1,8 @@
package org.archive.wayback.archivalurl;
import java.io.IOException;
+import java.util.Iterator;
+import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
@@ -35,5 +37,19 @@
throws ServletException, IOException {
page.resolveCSSUrls();
+ // if any CSS-specific jsp inserts are configured, run and insert...
+ List<String> jspInserts = getJspInserts();
+
+ StringBuilder toInsert = new StringBuilder(300);
+
+ if (jspInserts != null) {
+ Iterator<String> itr = jspInserts.iterator();
+ while (itr.hasNext()) {
+ toInsert.append(page.includeJspString(itr.next(), httpRequest,
+ httpResponse, wbRequest, results, result, resource));
+ }
+ }
+
+ page.insertAtStartOfDocument(toInsert.toString());
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bra...@us...> - 2009-05-20 00:44:11
|
Revision: 2708
http://archive-access.svn.sourceforge.net/archive-access/?rev=2708&view=rev
Author: bradtofel
Date: 2009-05-20 00:44:04 +0000 (Wed, 20 May 2009)
Log Message:
-----------
FEATURE: added static flags and access methods for JS, CSS, and IMG contexts.
Modified Paths:
--------------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/core/WaybackRequest.java
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/core/WaybackRequest.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/core/WaybackRequest.java 2009-05-20 00:42:23 UTC (rev 2707)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/core/WaybackRequest.java 2009-05-20 00:44:04 UTC (rev 2708)
@@ -233,6 +233,18 @@
* Request: xml data requested
*/
public static final String REQUEST_XML_DATA = "xmldata";
+ /**
+ * Request: CSS context requested
+ */
+ public static final String REQUEST_CSS_CONTEXT = "csscontext";
+ /**
+ * Request: JS context requested
+ */
+ public static final String REQUEST_JS_CONTEXT = "jscontext";
+ /**
+ * Request: IMG context requested
+ */
+ public static final String REQUEST_IMAGE_CONTEXT = "imagecontext";
/*
* *******************************
* /OUTPUT TYPE CONSTANTS
@@ -677,7 +689,28 @@
public boolean isXMLMode() {
return getBoolean(REQUEST_XML_DATA);
}
+
+ public void setJSContext(boolean isJSContext) {
+ setBoolean(REQUEST_JS_CONTEXT,isJSContext);
+ }
+ public boolean isJSContext() {
+ return getBoolean(REQUEST_JS_CONTEXT);
+ }
+
+ public void setCSSContext(boolean isCSSContext) {
+ setBoolean(REQUEST_CSS_CONTEXT,isCSSContext);
+ }
+ public boolean isCSSContext() {
+ return getBoolean(REQUEST_CSS_CONTEXT);
+ }
+ public void setIMGContext(boolean isIMGContext) {
+ setBoolean(REQUEST_IMAGE_CONTEXT,isIMGContext);
+ }
+ public boolean isIMGContext() {
+ return getBoolean(REQUEST_IMAGE_CONTEXT);
+ }
+
public String getWaybackContext() {
return get(REQUEST_WAYBACK_CONTEXT);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bra...@us...> - 2009-05-20 00:42:31
|
Revision: 2707
http://archive-access.svn.sourceforge.net/archive-access/?rev=2707&view=rev
Author: bradtofel
Date: 2009-05-20 00:42:23 +0000 (Wed, 20 May 2009)
Log Message:
-----------
TWEAK: added getter for List<CaptureSearchResult>
Modified Paths:
--------------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/core/CaptureSearchResults.java
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/core/CaptureSearchResults.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/core/CaptureSearchResults.java 2009-05-20 00:41:15 UTC (rev 2706)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/core/CaptureSearchResults.java 2009-05-20 00:42:23 UTC (rev 2707)
@@ -27,6 +27,7 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
+import java.util.List;
import org.archive.wayback.exception.AnchorWindowTooSmallException;
import org.archive.wayback.util.Timestamp;
@@ -179,6 +180,10 @@
return results.isEmpty();
}
+ public List<CaptureSearchResult> getResults() {
+ return results;
+ }
+
public Iterator<CaptureSearchResult> iterator() {
return results.iterator();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|