From: Brad <bra...@us...> - 2005-11-18 23:06:55
|
Update of /cvsroot/archive-access/archive-access/projects/wayback/src/java/org/archive/wayback/replay In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20289/src/java/org/archive/wayback/replay Modified Files: ReplayServlet.java Log Message: Now uses Logging to report ResourceNotInArchive exceptions Index: ReplayServlet.java =================================================================== RCS file: /cvsroot/archive-access/archive-access/projects/wayback/src/java/org/archive/wayback/replay/ReplayServlet.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ReplayServlet.java 16 Nov 2005 03:11:30 -0000 1.1 --- ReplayServlet.java 18 Nov 2005 23:06:42 -0000 1.2 *************** *** 31,34 **** --- 31,35 ---- import java.util.Properties; import java.util.Set; + import java.util.logging.Logger; import javax.servlet.ServletConfig; *************** *** 51,54 **** --- 52,56 ---- import org.archive.wayback.core.WaybackLogic; import org.archive.wayback.exception.BadQueryException; + import org.archive.wayback.exception.ResourceNotInArchiveException; import org.archive.wayback.exception.WaybackException; *************** *** 60,63 **** --- 62,68 ---- */ public class ReplayServlet extends HttpServlet { + private static final Logger LOGGER = Logger.getLogger(ReplayServlet.class + .getName()); + private static final String WMREQUEST_ATTRIBUTE = "wmrequest.attribute"; *************** *** 66,70 **** private WaybackLogic wayback = new WaybackLogic(); - /** * Constructor --- 71,74 ---- *************** *** 93,96 **** --- 97,101 ---- } } + private String getMapParam(Map queryMap, String field) { String arr[] = (String[]) queryMap.get(field); *************** *** 102,114 **** public WaybackRequest parseCGIRequest(HttpServletRequest httpRequest) ! throws BadQueryException { WaybackRequest wbRequest = new WaybackRequest(); Map queryMap = httpRequest.getParameterMap(); Set keys = queryMap.keySet(); Iterator itr = keys.iterator(); ! while(itr.hasNext()) { String key = (String) itr.next(); ! String val = getMapParam(queryMap,key); ! wbRequest.put(key,val); } String referer = httpRequest.getHeader("REFERER"); --- 107,119 ---- public WaybackRequest parseCGIRequest(HttpServletRequest httpRequest) ! throws BadQueryException { WaybackRequest wbRequest = new WaybackRequest(); Map queryMap = httpRequest.getParameterMap(); Set keys = queryMap.keySet(); Iterator itr = keys.iterator(); ! while (itr.hasNext()) { String key = (String) itr.next(); ! String val = getMapParam(queryMap, key); ! wbRequest.put(key, val); } String referer = httpRequest.getHeader("REFERER"); *************** *** 116,154 **** referer = null; } ! wbRequest.put(WaybackConstants.REQUEST_REFERER_URL,referer); return wbRequest; } ! private SearchResult getClosest(SearchResults results, WaybackRequest wbRequest) throws ParseException { ! SearchResult closest = null; ! long closestDistance = 0; ! SearchResult cur = null; ! Timestamp wantTimestamp; ! wantTimestamp = Timestamp.parseBefore(wbRequest. ! get(WaybackConstants.REQUEST_EXACT_DATE)); ! ! Iterator itr = results.iterator(); ! while (itr.hasNext()) { ! cur = (SearchResult) itr.next(); ! long curDistance; ! try { ! Timestamp curTimestamp = Timestamp.parseBefore(cur. ! get(WaybackConstants.RESULT_CAPTURE_DATE)); ! curDistance = curTimestamp.absDistanceFromTimestamp( ! wantTimestamp); ! } catch (ParseException e) { ! continue; ! } ! if ((closest == null) || (curDistance < closestDistance)) { ! closest = cur; ! closestDistance = curDistance; ! } ! } ! return closest; } ! public void doGet(HttpServletRequest httpRequest, HttpServletResponse httpResponse) throws IOException, --- 121,159 ---- referer = null; } ! wbRequest.put(WaybackConstants.REQUEST_REFERER_URL, referer); return wbRequest; } ! private SearchResult getClosest(SearchResults results, WaybackRequest wbRequest) throws ParseException { ! SearchResult closest = null; ! long closestDistance = 0; ! SearchResult cur = null; ! Timestamp wantTimestamp; ! wantTimestamp = Timestamp.parseBefore(wbRequest ! .get(WaybackConstants.REQUEST_EXACT_DATE)); ! ! Iterator itr = results.iterator(); ! while (itr.hasNext()) { ! cur = (SearchResult) itr.next(); ! long curDistance; ! try { ! Timestamp curTimestamp = Timestamp.parseBefore(cur ! .get(WaybackConstants.RESULT_CAPTURE_DATE)); ! curDistance = curTimestamp ! .absDistanceFromTimestamp(wantTimestamp); ! } catch (ParseException e) { ! continue; ! } ! if ((closest == null) || (curDistance < closestDistance)) { ! closest = cur; ! closestDistance = curDistance; ! } ! } ! return closest; } ! public void doGet(HttpServletRequest httpRequest, HttpServletResponse httpResponse) throws IOException, *************** *** 171,175 **** SearchResults results = idx.query(wbRequest); ! SearchResult closest = getClosest(results,wbRequest); // TODO loop here looking for closest online/available version? --- 176,180 ---- SearchResults results = idx.query(wbRequest); ! SearchResult closest = getClosest(results, wbRequest); // TODO loop here looking for closest online/available version? *************** *** 179,183 **** renderer.renderResource(httpRequest, httpResponse, wbRequest, ! closest, resource,uriConverter); } catch (WaybackException wbe) { --- 184,194 ---- renderer.renderResource(httpRequest, httpResponse, wbRequest, ! closest, resource, uriConverter); ! ! } catch (ResourceNotInArchiveException nia) { ! ! LOGGER.info("NotInArchive\t" ! + wbRequest.get(WaybackConstants.REQUEST_URL)); ! renderer.renderException(httpRequest, httpResponse, wbRequest, nia); } catch (WaybackException wbe) { |