From: <ikr...@us...> - 2012-02-21 04:05:45
|
Revision: 3618 http://archive-access.svn.sourceforge.net/archive-access/?rev=3618&view=rev Author: ikreymer Date: 2012-02-21 04:05:39 +0000 (Tue, 21 Feb 2012) Log Message: ----------- FEATURE: Add shutdown() method to ExclusionFilter, allowing for a filter to perform cleanup (such as closing resources) after a request is complete, not just after every capture check. The shutdown() method is optional and is a no-op by default, except in CompositeExclusionFilter which propagates the shutdown to other its members Modified Paths: -------------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/accesscontrol/robotstxt/RobotExclusionFilter.java trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/filters/CompositeExclusionFilter.java trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/filters/ExclusionFilter.java 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/accesscontrol/robotstxt/RobotExclusionFilter.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/accesscontrol/robotstxt/RobotExclusionFilter.java 2012-02-21 01:39:14 UTC (rev 3617) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/accesscontrol/robotstxt/RobotExclusionFilter.java 2012-02-21 04:05:39 UTC (rev 3618) @@ -30,9 +30,8 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.archive.util.ArchiveUtils; +import org.archive.wayback.core.CaptureSearchResult; import org.archive.wayback.core.Resource; -import org.archive.wayback.core.CaptureSearchResult; import org.archive.wayback.exception.LiveDocumentNotAvailableException; import org.archive.wayback.exception.LiveWebCacheUnavailableException; import org.archive.wayback.exception.LiveWebTimeoutException; @@ -97,7 +96,7 @@ sb = new StringBuilder(100); } - private String hostToRobotUrlString(String host) { + protected String hostToRobotUrlString(String host) { sb.setLength(0); sb.append(HTTP_PREFIX).append(host).append(ROBOT_SUFFIX); String robotUrl = sb.toString(); @@ -177,15 +176,15 @@ rulesCache.put(firstUrlString, rules); } } else { + long start = System.currentTimeMillis();; try { LOGGER.fine("ROBOT: NotCached - Downloading("+urlString+")"); tmpRules = new RobotRules(); - long start = System.currentTimeMillis(); Resource resource = webCache.getCachedResource(new URL(urlString), maxCacheMS,true); - long elapsed = System.currentTimeMillis() - start; - PerformanceLogger.noteElapsed("RobotRequest", elapsed, urlString); + //long elapsed = System.currentTimeMillis() - start; + //PerformanceLogger.noteElapsed("RobotRequest", elapsed, urlString); if(resource.getStatusCode() != 200) { LOGGER.info("ROBOT: NotAvailable("+urlString+")"); @@ -214,6 +213,9 @@ LOGGER.severe("ROBOT: LiveDocumentTimedOutException("+urlString+")"); filterGroup.setRobotTimedOut(); return null; + } finally { + long elapsed = System.currentTimeMillis() - start; + PerformanceLogger.noteElapsed("RobotRequest", elapsed, urlString); } } } @@ -269,4 +271,8 @@ } return filterResult; } + + public LiveWebCache getWebCache() { + return webCache; + } } Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/filters/CompositeExclusionFilter.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/filters/CompositeExclusionFilter.java 2012-02-21 01:39:14 UTC (rev 3617) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/filters/CompositeExclusionFilter.java 2012-02-21 04:05:39 UTC (rev 3618) @@ -69,4 +69,12 @@ } return FILTER_INCLUDE; } + + @Override + public void shutdown() + { + for (ExclusionFilter filter : filters) { + filter.shutdown(); + } + } } Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/filters/ExclusionFilter.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/filters/ExclusionFilter.java 2012-02-21 01:39:14 UTC (rev 3617) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/filters/ExclusionFilter.java 2012-02-21 04:05:39 UTC (rev 3618) @@ -32,4 +32,9 @@ public void setFilterGroup(ExclusionCaptureFilterGroup filterGroup) { this.filterGroup = filterGroup; } + + public void shutdown() + { + + } } 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 2012-02-21 01:39:14 UTC (rev 3617) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/webapp/AccessPoint.java 2012-02-21 04:05:39 UTC (rev 3618) @@ -192,6 +192,7 @@ WaybackRequest wbRequest = null; boolean handled = false; + ExclusionFilter exclusionFilter = null; try { String inputPath = translateRequestPathQuery(httpRequest); @@ -219,7 +220,7 @@ } if(getExclusionFactory() != null) { - ExclusionFilter exclusionFilter = + exclusionFilter = getExclusionFactory().get(); if(exclusionFilter == null) { throw new AdministrativeAccessControlException( @@ -279,7 +280,12 @@ getException().renderException(httpRequest, httpResponse, wbRequest, e, getUriConverter()); } + } finally { + if (exclusionFilter != null) { + exclusionFilter.shutdown(); + } } + return handled; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |