From: <bra...@us...> - 2008-10-28 01:52:32
|
Revision: 2621 http://archive-access.svn.sourceforge.net/archive-access/?rev=2621&view=rev Author: bradtofel Date: 2008-10-28 01:52:22 +0000 (Tue, 28 Oct 2008) Log Message: ----------- BUGFIX(ACC-46): anchorDate adherence is now configured on AccessPoint, and is disabled by default. Modified Paths: -------------- branches/wayback-1_4_1/wayback-core/src/main/java/org/archive/wayback/core/CaptureSearchResults.java branches/wayback-1_4_1/wayback-core/src/main/java/org/archive/wayback/webapp/AccessPoint.java Modified: branches/wayback-1_4_1/wayback-core/src/main/java/org/archive/wayback/core/CaptureSearchResults.java =================================================================== --- branches/wayback-1_4_1/wayback-core/src/main/java/org/archive/wayback/core/CaptureSearchResults.java 2008-10-28 01:32:15 UTC (rev 2620) +++ branches/wayback-1_4_1/wayback-core/src/main/java/org/archive/wayback/core/CaptureSearchResults.java 2008-10-28 01:52:22 UTC (rev 2621) @@ -100,17 +100,22 @@ } /** * @param wbRequest - * @param err if true, then check Request Anchor Window and Date, throwing - * exception if no Result is within the Window. + * @param useAnchor if true, then check Request Anchor Window and Date, + * throwing exception if no Result is within the Window. * @return The closest CaptureSearchResult to the request. */ - public CaptureSearchResult getClosest(WaybackRequest wbRequest, boolean err) + public CaptureSearchResult getClosest(WaybackRequest wbRequest, + boolean useAnchor) throws AnchorWindowTooSmallException { CaptureSearchResult closest = null; long closestDistance = 0; CaptureSearchResult cur = null; - String anchorDate = wbRequest.getAnchorTimestamp(); + String anchorDate = null; + // TODO: check if HTTP request referrer is set before using? + if(useAnchor) { + anchorDate = wbRequest.getAnchorTimestamp(); + } long maxWindow = -1; long wantTime = wbRequest.getReplayDate().getTime(); if(anchorDate != null) { @@ -129,7 +134,7 @@ closestDistance = curDistance; } } - if(err && (maxWindow > 0)) { + if(useAnchor && (maxWindow > 0)) { if(closestDistance > maxWindow) { throw new AnchorWindowTooSmallException("Closest is " + closestDistance + " seconds away, Window is " + Modified: branches/wayback-1_4_1/wayback-core/src/main/java/org/archive/wayback/webapp/AccessPoint.java =================================================================== --- branches/wayback-1_4_1/wayback-core/src/main/java/org/archive/wayback/webapp/AccessPoint.java 2008-10-28 01:32:15 UTC (rev 2620) +++ branches/wayback-1_4_1/wayback-core/src/main/java/org/archive/wayback/webapp/AccessPoint.java 2008-10-28 01:52:22 UTC (rev 2621) @@ -79,6 +79,8 @@ AccessPoint.class.getName()); private boolean useServerName = false; + private boolean useAnchorWindow = false; + private int contextPort = 0; private String contextName = null; private String beanName = null; @@ -343,7 +345,7 @@ // TODO: check which versions are actually accessible right now? CaptureSearchResult closest = captureResults.getClosest(wbRequest, - true); + useAnchorWindow); resource = collection.getResourceStore().retrieveResource(closest); ReplayRenderer renderer = replay.getRenderer(wbRequest, closest, resource); renderer.renderResource(httpRequest, httpResponse, wbRequest, @@ -473,6 +475,20 @@ this.useServerName = useServerName; } + /** + * @return the useAnchorWindow + */ + public boolean isUseAnchorWindow() { + return useAnchorWindow; + } + + /** + * @param useAnchorWindow the useAnchorWindow to set + */ + public void setUseAnchorWindow(boolean useAnchorWindow) { + this.useAnchorWindow = useAnchorWindow; + } + public ExclusionFilterFactory getExclusionFactory() { return exclusionFactory; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |