From: <bra...@us...> - 2007-08-18 00:48:11
|
Revision: 1901 http://archive-access.svn.sourceforge.net/archive-access/?rev=1901&view=rev Author: bradtofel Date: 2007-08-17 17:48:14 -0700 (Fri, 17 Aug 2007) Log Message: ----------- FEATURE: form and open search parsers now accept 'xmlquery' requests and annotate the WaybackRequest object indicating the user wants XML data returned. FEATURE: all request parsers now accept a default "earliestTimestamp" property which is used if the user does not specify a start date in their request. 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/PathPrefixDatePrefixQueryRequestParser.java 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/CompositeRequestParser.java 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/archivalurl/requestparser/PathDatePrefixQueryRequestParser.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/PathDatePrefixQueryRequestParser.java 2007-08-07 01:19:24 UTC (rev 1900) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/PathDatePrefixQueryRequestParser.java 2007-08-18 00:48:14 UTC (rev 1901) @@ -58,7 +58,12 @@ String dateStr = matcher.group(1); String urlStr = matcher.group(2); - String startDate = Timestamp.parseBefore(dateStr).getDateStr(); + String startDate; + if(dateStr.length() == 0) { + startDate = earliestTimestamp; + } else { + startDate = Timestamp.parseBefore(dateStr).getDateStr(); + } String endDate = Timestamp.parseAfter(dateStr).getDateStr(); wbRequest.put(WaybackConstants.REQUEST_START_DATE,startDate); wbRequest.put(WaybackConstants.REQUEST_END_DATE,endDate); 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 2007-08-07 01:19:24 UTC (rev 1900) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/PathPrefixDatePrefixQueryRequestParser.java 2007-08-18 00:48:14 UTC (rev 1901) @@ -56,7 +56,14 @@ wbRequest = new WaybackRequest(); String dateStr = matcher.group(1); String urlStr = matcher.group(2); - String startDate = Timestamp.parseBefore(dateStr).getDateStr(); + + String startDate; + if(dateStr.length() == 0) { + startDate = earliestTimestamp; + } else { + startDate = Timestamp.parseBefore(dateStr).getDateStr(); + } + String endDate = Timestamp.parseAfter(dateStr).getDateStr(); wbRequest.put(WaybackConstants.REQUEST_START_DATE, startDate); 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 2007-08-07 01:19:24 UTC (rev 1900) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/BaseRequestParser.java 2007-08-18 00:48:14 UTC (rev 1901) @@ -30,6 +30,7 @@ import org.archive.wayback.RequestParser; import org.archive.wayback.WaybackConstants; +import org.archive.wayback.core.Timestamp; import org.archive.wayback.core.WaybackRequest; import org.archive.wayback.exception.BadQueryException; import org.archive.wayback.webapp.WaybackContext; @@ -58,11 +59,16 @@ protected final static String QUERY_BASE = "query"; + protected final static String XQUERY_BASE = "xmlquery"; + protected final static String REPLAY_BASE = "replay"; protected final static int DEFAULT_MAX_RECORDS = 10; protected int maxRecords = DEFAULT_MAX_RECORDS; + + protected String earliestTimestamp = + Timestamp.earliestTimestamp().getDateStr(); protected static String getMapParam(Map<String,String[]> queryMap, String field) { @@ -142,4 +148,17 @@ public void setMaxRecords(int maxRecords) { this.maxRecords = maxRecords; } + /** + * @param timestamp + */ + public void setEarliestTimestamp(String timestamp) { + earliestTimestamp = Timestamp.parseBefore(timestamp).getDateStr(); + } + /** + * @return + */ + public String getEarliestTimestamp() { + return earliestTimestamp; + } + } 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 2007-08-07 01:19:24 UTC (rev 1900) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/CompositeRequestParser.java 2007-08-18 00:48:14 UTC (rev 1901) @@ -47,6 +47,7 @@ parsers = getRequestParsers(); for(int i = 0; i < parsers.length; i++) { parsers[i].setMaxRecords(maxRecords); + parsers[i].setEarliestTimestamp(earliestTimestamp); } } 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 2007-08-07 01:19:24 UTC (rev 1900) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/FormRequestParser.java 2007-08-18 00:48:14 UTC (rev 1901) @@ -66,6 +66,11 @@ } else if(base.startsWith(QUERY_BASE)) { wbRequest.put(WaybackConstants.REQUEST_TYPE, WaybackConstants.REQUEST_URL_QUERY); + } else if(base.startsWith(XQUERY_BASE)){ + wbRequest.put(WaybackConstants.REQUEST_TYPE, + WaybackConstants.REQUEST_URL_QUERY); + wbRequest.put(WaybackConstants.REQUEST_XML_DATA,"1"); + } else { return null; } @@ -81,6 +86,10 @@ String val = getMapParam(queryMap,key); wbRequest.put(key,val); } + if(wbRequest.get(WaybackConstants.REQUEST_START_DATE) == null) { + wbRequest.put(WaybackConstants.REQUEST_START_DATE, + earliestTimestamp); + } } if(wbRequest != null) { addHttpHeaderFields(wbRequest, httpRequest); 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 2007-08-07 01:19:24 UTC (rev 1900) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/OpenSearchRequestParser.java 2007-08-18 00:48:14 UTC (rev 1901) @@ -92,6 +92,11 @@ } else if(base.startsWith(QUERY_BASE)){ wbRequest.put(WaybackConstants.REQUEST_TYPE, WaybackConstants.REQUEST_URL_QUERY); + } else if(base.startsWith(XQUERY_BASE)){ + wbRequest.put(WaybackConstants.REQUEST_TYPE, + WaybackConstants.REQUEST_URL_QUERY); + wbRequest.put(WaybackConstants.REQUEST_XML_DATA,"1"); + } else { return null; } @@ -139,7 +144,10 @@ // let's just let em all thru for now: wbRequest.put(key, value); } - + if(wbRequest.get(WaybackConstants.REQUEST_START_DATE) == null) { + wbRequest.put(WaybackConstants.REQUEST_START_DATE, + earliestTimestamp); + } addHttpHeaderFields(wbRequest, httpRequest); return wbRequest; 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 2007-08-07 01:19:24 UTC (rev 1900) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/PathRequestParser.java 2007-08-18 00:48:14 UTC (rev 1901) @@ -68,6 +68,7 @@ WaybackRequest wbRequest = parse(requestPath); if(wbRequest != null) { addHttpHeaderFields(wbRequest, httpRequest); + wbRequest.setResultsPerPage(maxRecords); } return wbRequest; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |