From: <bra...@us...> - 2010-08-16 22:57:56
|
Revision: 3229 http://archive-access.svn.sourceforge.net/archive-access/?rev=3229&view=rev Author: bradtofel Date: 2010-08-16 22:57:47 +0000 (Mon, 16 Aug 2010) Log Message: ----------- REFACTOR: moving Memento stuff into it's own package -- it's really a new Replay format, so like archivalurl and proxy mode, should have it's own package. Added Paths: ----------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/memento/ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/memento/MementoHTMLReplayRenderer.java trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/memento/MementoParser.java trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/memento/MementoRequestParser.java trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/memento/TimeBundleParser.java Removed Paths: ------------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/MementoParser.java trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/TimeBundleParser.java Added: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/memento/MementoHTMLReplayRenderer.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/memento/MementoHTMLReplayRenderer.java (rev 0) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/memento/MementoHTMLReplayRenderer.java 2010-08-16 22:57:47 UTC (rev 3229) @@ -0,0 +1,97 @@ +/* MementoHTMLReplayRenderer + * + * $Id$ + * + * Created on 2:23:03 PM Jul 18, 2008. + * + * Copyright (C) 2008 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.memento; + +import java.io.IOException; +import java.util.Iterator; +import java.util.List; + +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.TextDocument; +import org.archive.wayback.replay.TextReplayRenderer; +import org.archive.wayback.replay.HttpHeaderProcessor; + +/** + * + * + * @author brad + * @version $Date$, $Revision$ + */ +public class MementoHTMLReplayRenderer extends TextReplayRenderer { + /** + * @param httpHeaderProcessor + */ + public MementoHTMLReplayRenderer(HttpHeaderProcessor httpHeaderProcessor) { + super(httpHeaderProcessor); + } + + /* (non-Javadoc) + * @see org.archive.wayback.replay.HTMLReplayRenderer#updatePage(org.archive.wayback.replay.HTMLPage, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, org.archive.wayback.core.WaybackRequest, org.archive.wayback.core.CaptureSearchResult, org.archive.wayback.core.Resource, org.archive.wayback.ResultURIConverter, org.archive.wayback.core.CaptureSearchResults) + */ + @Override + protected void updatePage(TextDocument page, HttpServletRequest httpRequest, + HttpServletResponse httpResponse, WaybackRequest wbRequest, + CaptureSearchResult result, Resource resource, + ResultURIConverter uriConverter, CaptureSearchResults results) + throws ServletException, IOException { + + List<String> jspInserts = getJspInserts(); + + StringBuilder toInsert = new StringBuilder(300); + + /* + * URLs have to resolve as they did originally: + * + * * absolute URLs are fine as-is + * + * * page-relative and server-relative URLs have to resolve against + * the page's original URL, not where ever it is being served from + * now. Hopefully, this can be accomplished by adding a + * <BASE href="XXX"> + * with the original page URL unless the page contains one + * already.. + */ + page.addBase(); + + if(jspInserts != null) { + Iterator<String> itr = jspInserts.iterator(); + while(itr.hasNext()) { + toInsert.append(page.includeJspString(itr.next(), httpRequest, + httpResponse, wbRequest, results, result, resource)); + } + } + + // insert the new content: + page.insertAtEndOfBody(toInsert.toString()); + } +} Property changes on: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/memento/MementoHTMLReplayRenderer.java ___________________________________________________________________ Added: svn:keywords + Author Date Revision Id Copied: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/memento/MementoParser.java (from rev 3191, trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/MementoParser.java) =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/memento/MementoParser.java (rev 0) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/memento/MementoParser.java 2010-08-16 22:57:47 UTC (rev 3229) @@ -0,0 +1,157 @@ +package org.archive.wayback.memento; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.Iterator; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.log4j.Logger; +import org.archive.wayback.core.WaybackRequest; +import org.archive.wayback.exception.BadQueryException; +import org.archive.wayback.exception.BetterRequestException; +import org.archive.wayback.requestparser.BaseRequestParser; +import org.archive.wayback.requestparser.WrappedRequestParser; +import org.archive.wayback.webapp.AccessPoint; + +/** + * RequestParser subclass which matches ".../timegate/URL" requests, and parses + * the Accept-Datetime header + * + * @author Lyudmila Balakireva + * + */ +public class MementoParser extends WrappedRequestParser { + private static final Logger LOGGER = + Logger.getLogger(MementoParser.class.getName()); + + String DTHEADER = "Accept-Datetime"; + + List<SimpleDateFormat> dtsupportedformats = + new ArrayList<SimpleDateFormat>(); + + String MEMENTO_BASE = "timegate"; + + /** + * @param wrapped + * BaseRequestParser with configuration + */ + public MementoParser(BaseRequestParser wrapped) { + super(wrapped); + + dtsupportedformats + .add(new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss Z")); + dtsupportedformats.add(new SimpleDateFormat("E, dd MMM yyyy Z")); + dtsupportedformats.add(new SimpleDateFormat("E, dd MMM yyyy")); + } + + @Override + public WaybackRequest parse(HttpServletRequest httpRequest, + AccessPoint accessPoint) throws BadQueryException, + BetterRequestException { + + String base = accessPoint.translateRequestPath(httpRequest); + String requestPath = accessPoint.translateRequestPathQuery(httpRequest); + + LOGGER.trace("requestPath:" + requestPath); + if (base.startsWith(MEMENTO_BASE)) { + + // strip leading "timegate/": + String urlStr = base.substring(requestPath.indexOf("/") + 1); + + // get the "Accept-Datetime" header: + String httpdate = getHttpDate(httpRequest); + Date dtconnegdate = null; + if (httpdate != null) { + dtconnegdate = checkDateValidity(httpdate, dtsupportedformats); + if (dtconnegdate == null) { + return null; + } + } else { + // TODO: should this return null her? no header.. + } + + WaybackRequest wbRequest = new WaybackRequest(); + if (wbRequest.getStartTimestamp() == null) { + wbRequest.setStartTimestamp(getEarliestTimestamp()); + } + if (dtconnegdate != null) { + wbRequest.setAnchorDate(dtconnegdate); + } else { + wbRequest.setAnchorTimestamp(getLatestTimestamp()); + } + + wbRequest.put("dtconneg", httpdate); + + if (wbRequest.getEndTimestamp() == null) { + wbRequest.setEndTimestamp(getLatestTimestamp()); + } + wbRequest.setCaptureQueryRequest(); + wbRequest.setRequestUrl(urlStr); + if (wbRequest != null) { + wbRequest.setResultsPerPage(getMaxRecords()); + } + return wbRequest; + } + return null; + } + + /** + * Extract the value of the "Accept-Datetime" HTTP request header, if + * present, and further strips the date value from any surrounding "{","}" + * @param req HttpServletRequest for this request + * @return the raw String containing the date information, or null if no + * such HTTP header exists. + */ + public String getHttpDate(HttpServletRequest req) { + String httpdate = req.getHeader(DTHEADER); + + if (httpdate != null) { + int j = httpdate.indexOf("{", 0); + + if (j >= 0) { + + httpdate = httpdate.substring(httpdate.indexOf("{", 0) + 1); + + } + + if (httpdate.indexOf("}") > 0) { + httpdate = httpdate.substring(0, httpdate.indexOf("}")); + + } + } + return httpdate; + } + + /** + * Attempt to parse the String httpdate argument using one of the + * SimpleDateFormats provided. + * + * @param httpdate + * String version of a Date + * @param list + * of SimpleDateFormats to parse the httpdate + * @return Date object set to the time parsed, or null if not parsed + */ + public Date checkDateValidity(String httpdate, List<SimpleDateFormat> list) { + + Date d = null; + Iterator<SimpleDateFormat> it = list.iterator(); + while (it.hasNext()) { + SimpleDateFormat formatter = it.next(); + try { + + d = formatter.parse(httpdate); + break; + + } catch (Exception e) { + e.printStackTrace(); + } + + } + + return d; + } +} Added: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/memento/MementoRequestParser.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/memento/MementoRequestParser.java (rev 0) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/memento/MementoRequestParser.java 2010-08-16 22:57:47 UTC (rev 3229) @@ -0,0 +1,59 @@ +/* MementoRequestParser + * + * $Id$: + * + * Created on Aug 16, 2010. + * + * Copyright (C) 2006 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.memento; + +import org.archive.wayback.RequestParser; +import org.archive.wayback.archivalurl.ArchivalUrlRequestParser; +import org.archive.wayback.archivalurl.requestparser.ArchivalUrlFormRequestParser; +import org.archive.wayback.archivalurl.requestparser.DatelessReplayRequestParser; +import org.archive.wayback.archivalurl.requestparser.PathDatePrefixQueryRequestParser; +import org.archive.wayback.archivalurl.requestparser.PathDateRangeQueryRequestParser; +import org.archive.wayback.archivalurl.requestparser.PathPrefixDatePrefixQueryRequestParser; +import org.archive.wayback.archivalurl.requestparser.PathPrefixDateRangeQueryRequestParser; +import org.archive.wayback.archivalurl.requestparser.ReplayRequestParser; +import org.archive.wayback.requestparser.OpenSearchRequestParser; + +/** + * @author brad + * + */ +public class MementoRequestParser extends ArchivalUrlRequestParser { + protected RequestParser[] getRequestParsers() { + RequestParser[] theParsers = { + new ReplayRequestParser(this), + new MementoParser(this), + new TimeBundleParser(this), + new PathDatePrefixQueryRequestParser(this), + new PathDateRangeQueryRequestParser(this), + new PathPrefixDatePrefixQueryRequestParser(this), + new PathPrefixDateRangeQueryRequestParser(this), + new OpenSearchRequestParser(this), + new ArchivalUrlFormRequestParser(this), + new DatelessReplayRequestParser(this) + }; + return theParsers; + } +} Property changes on: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/memento/MementoRequestParser.java ___________________________________________________________________ Added: svn:keywords + Author Date Revision Id Copied: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/memento/TimeBundleParser.java (from rev 3191, trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/TimeBundleParser.java) =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/memento/TimeBundleParser.java (rev 0) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/memento/TimeBundleParser.java 2010-08-16 22:57:47 UTC (rev 3229) @@ -0,0 +1,90 @@ +package org.archive.wayback.memento; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.log4j.Logger; +import org.archive.wayback.core.WaybackRequest; +import org.archive.wayback.exception.BadQueryException; +import org.archive.wayback.exception.BetterRequestException; +import org.archive.wayback.requestparser.BaseRequestParser; +import org.archive.wayback.requestparser.WrappedRequestParser; +import org.archive.wayback.webapp.AccessPoint; + +/** + * RequestParser subclass which parses "timebundle/URL" and + * "timemap/FORMAT/URL" requests + * + * @author Lyudmila Balakireva + * + */ +public class TimeBundleParser extends WrappedRequestParser { + private static final Logger LOGGER = + Logger.getLogger(TimeBundleParser.class.getName()); + + String MEMENTO_BASE = "timegate"; + + /** + * @param wrapped BaseRequestParser holding config + */ + public TimeBundleParser(BaseRequestParser wrapped) { + super(wrapped); + } + + @Override + public WaybackRequest parse(HttpServletRequest httpRequest, + AccessPoint accessPoint) throws BadQueryException, + BetterRequestException { + + String requestPath = accessPoint.translateRequestPathQuery(httpRequest); + LOGGER.trace("requestpath:" + requestPath); + + if (requestPath.startsWith("timebundle")) { + + WaybackRequest wbRequest = new WaybackRequest(); + String urlStr = requestPath.substring(requestPath.indexOf("/") + 1); + if (wbRequest.getStartTimestamp() == null) { + wbRequest.setStartTimestamp(getEarliestTimestamp()); + } + if (wbRequest.getEndTimestamp() == null) { + wbRequest.setEndTimestamp(getLatestTimestamp()); + } + wbRequest.setCaptureQueryRequest(); + wbRequest.setRequestUrl(urlStr); + + // TODO: is it critical to return a 303 code, or will a 302 do? + // if so, this and ORE.jsp can be simplified by throwing a + // BetterRequestException here. + wbRequest.put("redirect", "true"); + return wbRequest; + } + + if (requestPath.startsWith("timemap")) { + + String urlStrplus = requestPath + .substring(requestPath.indexOf("/") + 1); + String format = urlStrplus.substring(0, urlStrplus.indexOf("/")); + + LOGGER.trace("format:" + format); + String urlStr = urlStrplus.substring(urlStrplus.indexOf("/") + 1); + LOGGER.trace("id:" + urlStr); + WaybackRequest wbRequest = new WaybackRequest(); + if (wbRequest.getStartTimestamp() == null) { + wbRequest.setStartTimestamp(getEarliestTimestamp()); + } + wbRequest.setAnchorTimestamp(getLatestTimestamp()); + wbRequest.put("format", format); + if (wbRequest.getEndTimestamp() == null) { + wbRequest.setEndTimestamp(getLatestTimestamp()); + } + wbRequest.setCaptureQueryRequest(); + wbRequest.setRequestUrl(urlStr); + if (wbRequest != null) { + wbRequest.setResultsPerPage(getMaxRecords()); + } + return wbRequest; + + } + return null; + } + +} Deleted: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/MementoParser.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/MementoParser.java 2010-08-10 23:27:47 UTC (rev 3228) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/MementoParser.java 2010-08-16 22:57:47 UTC (rev 3229) @@ -1,155 +0,0 @@ -package org.archive.wayback.requestparser; - -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.Iterator; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; - -import org.apache.log4j.Logger; -import org.archive.wayback.core.WaybackRequest; -import org.archive.wayback.exception.BadQueryException; -import org.archive.wayback.exception.BetterRequestException; -import org.archive.wayback.webapp.AccessPoint; - -/** - * RequestParser subclass which matches ".../timegate/URL" requests, and parses - * the Accept-Datetime header - * - * @author Lyudmila Balakireva - * - */ -public class MementoParser extends WrappedRequestParser { - private static final Logger LOGGER = - Logger.getLogger(MementoParser.class.getName()); - - String DTHEADER = "Accept-Datetime"; - - List<SimpleDateFormat> dtsupportedformats = - new ArrayList<SimpleDateFormat>(); - - String MEMENTO_BASE = "timegate"; - - /** - * @param wrapped - * BaseRequestParser with configuration - */ - public MementoParser(BaseRequestParser wrapped) { - super(wrapped); - - dtsupportedformats - .add(new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss Z")); - dtsupportedformats.add(new SimpleDateFormat("E, dd MMM yyyy Z")); - dtsupportedformats.add(new SimpleDateFormat("E, dd MMM yyyy")); - } - - @Override - public WaybackRequest parse(HttpServletRequest httpRequest, - AccessPoint accessPoint) throws BadQueryException, - BetterRequestException { - - String base = accessPoint.translateRequestPath(httpRequest); - String requestPath = accessPoint.translateRequestPathQuery(httpRequest); - - LOGGER.trace("requestPath:" + requestPath); - if (base.startsWith(MEMENTO_BASE)) { - - // strip leading "timegate/": - String urlStr = base.substring(requestPath.indexOf("/") + 1); - - // get the "Accept-Datetime" header: - String httpdate = getHttpDate(httpRequest); - Date dtconnegdate = null; - if (httpdate != null) { - dtconnegdate = checkDateValidity(httpdate, dtsupportedformats); - if (dtconnegdate == null) { - return null; - } - } else { - // TODO: should this return null her? no header.. - } - - WaybackRequest wbRequest = new WaybackRequest(); - if (wbRequest.getStartTimestamp() == null) { - wbRequest.setStartTimestamp(getEarliestTimestamp()); - } - if (dtconnegdate != null) { - wbRequest.setAnchorDate(dtconnegdate); - } else { - wbRequest.setAnchorTimestamp(getLatestTimestamp()); - } - - wbRequest.put("dtconneg", httpdate); - - if (wbRequest.getEndTimestamp() == null) { - wbRequest.setEndTimestamp(getLatestTimestamp()); - } - wbRequest.setCaptureQueryRequest(); - wbRequest.setRequestUrl(urlStr); - if (wbRequest != null) { - wbRequest.setResultsPerPage(getMaxRecords()); - } - return wbRequest; - } - return null; - } - - /** - * Extract the value of the "Accept-Datetime" HTTP request header, if - * present, and further strips the date value from any surrounding "{","}" - * @param req HttpServletRequest for this request - * @return the raw String containing the date information, or null if no - * such HTTP header exists. - */ - public String getHttpDate(HttpServletRequest req) { - String httpdate = req.getHeader(DTHEADER); - - if (httpdate != null) { - int j = httpdate.indexOf("{", 0); - - if (j >= 0) { - - httpdate = httpdate.substring(httpdate.indexOf("{", 0) + 1); - - } - - if (httpdate.indexOf("}") > 0) { - httpdate = httpdate.substring(0, httpdate.indexOf("}")); - - } - } - return httpdate; - } - - /** - * Attempt to parse the String httpdate argument using one of the - * SimpleDateFormats provided. - * - * @param httpdate - * String version of a Date - * @param list - * of SimpleDateFormats to parse the httpdate - * @return Date object set to the time parsed, or null if not parsed - */ - public Date checkDateValidity(String httpdate, List<SimpleDateFormat> list) { - - Date d = null; - Iterator<SimpleDateFormat> it = list.iterator(); - while (it.hasNext()) { - SimpleDateFormat formatter = it.next(); - try { - - d = formatter.parse(httpdate); - break; - - } catch (Exception e) { - e.printStackTrace(); - } - - } - - return d; - } -} Deleted: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/TimeBundleParser.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/TimeBundleParser.java 2010-08-10 23:27:47 UTC (rev 3228) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/TimeBundleParser.java 2010-08-16 22:57:47 UTC (rev 3229) @@ -1,88 +0,0 @@ -package org.archive.wayback.requestparser; - -import javax.servlet.http.HttpServletRequest; - -import org.apache.log4j.Logger; -import org.archive.wayback.core.WaybackRequest; -import org.archive.wayback.exception.BadQueryException; -import org.archive.wayback.exception.BetterRequestException; -import org.archive.wayback.webapp.AccessPoint; - -/** - * RequestParser subclass which parses "timebundle/URL" and - * "timemap/FORMAT/URL" requests - * - * @author Lyudmila Balakireva - * - */ -public class TimeBundleParser extends WrappedRequestParser { - private static final Logger LOGGER = - Logger.getLogger(TimeBundleParser.class.getName()); - - String MEMENTO_BASE = "timegate"; - - /** - * @param wrapped BaseRequestParser holding config - */ - public TimeBundleParser(BaseRequestParser wrapped) { - super(wrapped); - } - - @Override - public WaybackRequest parse(HttpServletRequest httpRequest, - AccessPoint accessPoint) throws BadQueryException, - BetterRequestException { - - String requestPath = accessPoint.translateRequestPathQuery(httpRequest); - LOGGER.trace("requestpath:" + requestPath); - - if (requestPath.startsWith("timebundle")) { - - WaybackRequest wbRequest = new WaybackRequest(); - String urlStr = requestPath.substring(requestPath.indexOf("/") + 1); - if (wbRequest.getStartTimestamp() == null) { - wbRequest.setStartTimestamp(getEarliestTimestamp()); - } - if (wbRequest.getEndTimestamp() == null) { - wbRequest.setEndTimestamp(getLatestTimestamp()); - } - wbRequest.setCaptureQueryRequest(); - wbRequest.setRequestUrl(urlStr); - - // TODO: is it critical to return a 303 code, or will a 302 do? - // if so, this and ORE.jsp can be simplified by throwing a - // BetterRequestException here. - wbRequest.put("redirect", "true"); - return wbRequest; - } - - if (requestPath.startsWith("timemap")) { - - String urlStrplus = requestPath - .substring(requestPath.indexOf("/") + 1); - String format = urlStrplus.substring(0, urlStrplus.indexOf("/")); - - LOGGER.trace("format:" + format); - String urlStr = urlStrplus.substring(urlStrplus.indexOf("/") + 1); - LOGGER.trace("id:" + urlStr); - WaybackRequest wbRequest = new WaybackRequest(); - if (wbRequest.getStartTimestamp() == null) { - wbRequest.setStartTimestamp(getEarliestTimestamp()); - } - wbRequest.setAnchorTimestamp(getLatestTimestamp()); - wbRequest.put("format", format); - if (wbRequest.getEndTimestamp() == null) { - wbRequest.setEndTimestamp(getLatestTimestamp()); - } - wbRequest.setCaptureQueryRequest(); - wbRequest.setRequestUrl(urlStr); - if (wbRequest != null) { - wbRequest.setResultsPerPage(getMaxRecords()); - } - return wbRequest; - - } - return null; - } - -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |