You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(10) |
Sep
(36) |
Oct
(339) |
Nov
(103) |
Dec
(152) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(141) |
Feb
(102) |
Mar
(125) |
Apr
(203) |
May
(57) |
Jun
(30) |
Jul
(139) |
Aug
(46) |
Sep
(64) |
Oct
(105) |
Nov
(34) |
Dec
(162) |
2007 |
Jan
(81) |
Feb
(57) |
Mar
(141) |
Apr
(72) |
May
(9) |
Jun
(1) |
Jul
(144) |
Aug
(88) |
Sep
(40) |
Oct
(43) |
Nov
(34) |
Dec
(20) |
2008 |
Jan
(44) |
Feb
(45) |
Mar
(16) |
Apr
(36) |
May
(8) |
Jun
(77) |
Jul
(177) |
Aug
(66) |
Sep
(8) |
Oct
(33) |
Nov
(13) |
Dec
(37) |
2009 |
Jan
(2) |
Feb
(5) |
Mar
(8) |
Apr
|
May
(36) |
Jun
(19) |
Jul
(46) |
Aug
(8) |
Sep
(1) |
Oct
(66) |
Nov
(61) |
Dec
(10) |
2010 |
Jan
(13) |
Feb
(16) |
Mar
(38) |
Apr
(76) |
May
(47) |
Jun
(32) |
Jul
(35) |
Aug
(45) |
Sep
(20) |
Oct
(61) |
Nov
(24) |
Dec
(16) |
2011 |
Jan
(22) |
Feb
(34) |
Mar
(11) |
Apr
(8) |
May
(24) |
Jun
(23) |
Jul
(11) |
Aug
(42) |
Sep
(81) |
Oct
(48) |
Nov
(21) |
Dec
(20) |
2012 |
Jan
(30) |
Feb
(25) |
Mar
(4) |
Apr
(6) |
May
(1) |
Jun
(5) |
Jul
(5) |
Aug
(8) |
Sep
(6) |
Oct
(6) |
Nov
|
Dec
|
From: <bra...@us...> - 2008-04-11 04:05:09
|
Revision: 2230 http://archive-access.svn.sourceforge.net/archive-access/?rev=2230&view=rev Author: bradtofel Date: 2008-04-10 21:05:05 -0700 (Thu, 10 Apr 2008) Log Message: ----------- INTERFACE: added shutdown() to ResourceStore, currently no-op on all implementations Modified Paths: -------------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/ResourceStore.java trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/Http11ResourceStore.java trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/LocalARCResourceStore.java Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/ResourceStore.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/ResourceStore.java 2008-04-11 03:58:09 UTC (rev 2229) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/ResourceStore.java 2008-04-11 04:05:05 UTC (rev 2230) @@ -46,4 +46,6 @@ */ public Resource retrieveResource(SearchResult result) throws IOException, ResourceNotAvailableException; + + public void shutdown() throws IOException; } Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/Http11ResourceStore.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/Http11ResourceStore.java 2008-04-11 03:58:09 UTC (rev 2229) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/Http11ResourceStore.java 2008-04-11 04:05:05 UTC (rev 2230) @@ -98,4 +98,8 @@ public void setUrlPrefix(String urlPrefix) { this.urlPrefix = urlPrefix; } + + public void shutdown() throws IOException { + // no-op + } } Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/LocalARCResourceStore.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/LocalARCResourceStore.java 2008-04-11 03:58:09 UTC (rev 2229) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/LocalARCResourceStore.java 2008-04-11 04:05:05 UTC (rev 2230) @@ -363,4 +363,8 @@ public void setIndexClient(IndexClient indexClient) { this.indexClient = indexClient; } + + public void shutdown() throws IOException { + // no-op... could shutdown threads... + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bra...@us...> - 2008-04-11 03:58:03
|
Revision: 2229 http://archive-access.svn.sourceforge.net/archive-access/?rev=2229&view=rev Author: bradtofel Date: 2008-04-10 20:58:09 -0700 (Thu, 10 Apr 2008) Log Message: ----------- BUGFIX: ACC-17: Parsing of some style tags that were not really style tags cause a String OOB exception. Now we're checking that the regex matched substring is long enough to consider. Modified Paths: -------------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/TagMagix.java Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/TagMagix.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/TagMagix.java 2008-04-11 03:56:08 UTC (rev 2228) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/TagMagix.java 2008-04-11 03:58:09 UTC (rev 2229) @@ -42,6 +42,10 @@ */ public class TagMagix { + // minimum length XXXX in a 'style=XXXX' declaration... mostly handy + // to keep us from trying to mark up javascript generated style code. + private static int MIN_STYLE_LENGTH = 3; + private static HashMap<String, Pattern> pcPatterns = new HashMap<String, Pattern>(); @@ -166,6 +170,11 @@ int origAttrLength = attrValue.length(); int attrStart = matcher.start(1); int attrEnd = matcher.end(1); + idx = attrEnd; + if(origAttrLength < MIN_STYLE_LENGTH) { + continue; + } + if (attrValue.charAt(0) == '"') { attrValue = attrValue.substring(1, origAttrLength - 1); attrStart += 1; @@ -177,7 +186,6 @@ attrStart += 2; } - idx = attrEnd; Matcher urlMatcher = cssUrlPattern.matcher(attrValue); int attrIdx = 0; while(urlMatcher.find(attrIdx)) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bra...@us...> - 2008-04-11 03:56:09
|
Revision: 2228 http://archive-access.svn.sourceforge.net/archive-access/?rev=2228&view=rev Author: bradtofel Date: 2008-04-10 20:56:08 -0700 (Thu, 10 Apr 2008) Log Message: ----------- BUGFIX: ACC-18: added @page UTF-8 explicit declaration, changed StringHttpServletResponseWrapper to also be UTF-8 explicitly Modified Paths: -------------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/StringHttpServletResponseWrapper.java trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/CSSError.jsp trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/CalendarResults.jsp trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/HTMLError.jsp trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/HTMLResults.jsp trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/JavaScriptError.jsp trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/ResultMeta.jsp trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/XMLError.jsp trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/XMLResults.jsp trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/replay/ArchiveComment.jsp trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/replay/ClientSideJSInsert.jsp trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/replay/Disclaimer.jsp trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/replay/JSLessTimeline.jsp trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/replay/Timeline.jsp trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/template/UI-footer.jsp Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/StringHttpServletResponseWrapper.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/StringHttpServletResponseWrapper.java 2008-04-11 03:51:10 UTC (rev 2227) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/StringHttpServletResponseWrapper.java 2008-04-11 03:56:08 UTC (rev 2228) @@ -37,7 +37,7 @@ * @version $Date$, $Revision$ */ public class StringHttpServletResponseWrapper extends HttpServletResponseWrapper { - + private final static String WRAPPED_CHAR_ENCODING = "UTF-8"; private StringWriter sw = new StringWriter(); /** @@ -45,6 +45,7 @@ */ public StringHttpServletResponseWrapper(HttpServletResponse response) { super(response); + setCharacterEncoding(WRAPPED_CHAR_ENCODING); } public PrintWriter getWriter() { return new PrintWriter(sw); Modified: trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/CSSError.jsp =================================================================== --- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/CSSError.jsp 2008-04-11 03:51:10 UTC (rev 2227) +++ trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/CSSError.jsp 2008-04-11 03:56:08 UTC (rev 2228) @@ -1,3 +1,4 @@ +<%@ page language="java" pageEncoding="utf-8" contentType="text/html;charset=utf-8"%> <%@ page import="org.archive.wayback.exception.WaybackException" %> <%@ page import="org.archive.wayback.core.UIResults" %> <%@ page import="org.archive.wayback.util.StringFormatter" %> Modified: trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/CalendarResults.jsp =================================================================== --- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/CalendarResults.jsp 2008-04-11 03:51:10 UTC (rev 2227) +++ trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/CalendarResults.jsp 2008-04-11 03:56:08 UTC (rev 2228) @@ -1,3 +1,4 @@ +<%@ page language="java" pageEncoding="utf-8" contentType="text/html;charset=utf-8"%> <%@ page import="java.util.ArrayList" %> <%@ page import="java.util.Date" %> <%@ page import="java.util.Iterator" %> Modified: trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/HTMLError.jsp =================================================================== --- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/HTMLError.jsp 2008-04-11 03:51:10 UTC (rev 2227) +++ trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/HTMLError.jsp 2008-04-11 03:56:08 UTC (rev 2228) @@ -1,3 +1,4 @@ +<%@ page language="java" pageEncoding="utf-8" contentType="text/html;charset=utf-8"%> <%@ page import="org.archive.wayback.exception.WaybackException" %> <%@ page import="org.archive.wayback.core.UIResults" %> <%@ page import="org.archive.wayback.util.StringFormatter" %> @@ -14,5 +15,5 @@ %> <h2><%= fmt.format(e.getTitleKey()) %></h2> -<p><b><%= fmt.format(e.getMessageKey()) %></b></p> +<p><b><%= fmt.format(e.getMessageKey(),e.getMessage()) %></b></p> <jsp:include page="/template/UI-footer.jsp" flush="true" /> Modified: trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/HTMLResults.jsp =================================================================== --- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/HTMLResults.jsp 2008-04-11 03:51:10 UTC (rev 2227) +++ trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/HTMLResults.jsp 2008-04-11 03:56:08 UTC (rev 2228) @@ -1,3 +1,4 @@ +<%@ page language="java" pageEncoding="utf-8" contentType="text/html;charset=utf-8"%> <%@ page import="java.util.Iterator" %> <%@ page import="java.util.ArrayList" %> <%@ page import="java.util.Date" %> Modified: trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/JavaScriptError.jsp =================================================================== --- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/JavaScriptError.jsp 2008-04-11 03:51:10 UTC (rev 2227) +++ trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/JavaScriptError.jsp 2008-04-11 03:56:08 UTC (rev 2228) @@ -1,3 +1,4 @@ +<%@ page language="java" pageEncoding="utf-8" contentType="text/html;charset=utf-8"%> <%@ page import="org.archive.wayback.exception.WaybackException" %> <%@ page import="org.archive.wayback.core.UIResults" %> <%@ page import="org.archive.wayback.util.StringFormatter" %> Modified: trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/ResultMeta.jsp =================================================================== --- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/ResultMeta.jsp 2008-04-11 03:51:10 UTC (rev 2227) +++ trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/ResultMeta.jsp 2008-04-11 03:56:08 UTC (rev 2228) @@ -1,3 +1,4 @@ +<%@ page language="java" pageEncoding="utf-8" contentType="text/html;charset=utf-8"%> <%@ page import="java.util.Iterator" %> <%@ page import="java.util.Map" %> <%@ page import="org.archive.wayback.core.Timestamp" %> Modified: trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/XMLError.jsp =================================================================== --- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/XMLError.jsp 2008-04-11 03:51:10 UTC (rev 2227) +++ trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/XMLError.jsp 2008-04-11 03:56:08 UTC (rev 2228) @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<%@ page contentType="text/xml" %> +<%@ page language="java" pageEncoding="utf-8" contentType="text/xml;charset=utf-8"%> <%@ page import="org.archive.wayback.exception.WaybackException" %> <%@ page import="org.archive.wayback.core.UIResults" %> <%@ page import="org.archive.wayback.util.StringFormatter" %> Modified: trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/XMLResults.jsp =================================================================== --- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/XMLResults.jsp 2008-04-11 03:51:10 UTC (rev 2227) +++ trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/jsp/XMLResults.jsp 2008-04-11 03:56:08 UTC (rev 2228) @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<%@ page contentType="text/xml" %> +<%@ page language="java" pageEncoding="utf-8" contentType="text/xml;charset=utf-8"%> <%@ page import="java.util.Iterator" %> <%@ page import="java.util.ArrayList" %> <%@ page import="java.util.Properties" %> Modified: trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/replay/ArchiveComment.jsp =================================================================== --- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/replay/ArchiveComment.jsp 2008-04-11 03:51:10 UTC (rev 2227) +++ trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/replay/ArchiveComment.jsp 2008-04-11 03:56:08 UTC (rev 2228) @@ -1,3 +1,4 @@ +<%@ page language="java" pageEncoding="utf-8" contentType="text/html;charset=utf-8"%> <%@ page import="java.util.Date" %> <%@ page import="org.archive.wayback.core.Timestamp" %> <%@ page import="org.archive.wayback.core.UIResults" %> Modified: trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/replay/ClientSideJSInsert.jsp =================================================================== --- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/replay/ClientSideJSInsert.jsp 2008-04-11 03:51:10 UTC (rev 2227) +++ trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/replay/ClientSideJSInsert.jsp 2008-04-11 03:56:08 UTC (rev 2228) @@ -1,3 +1,4 @@ +<%@ page language="java" pageEncoding="utf-8" contentType="text/html;charset=utf-8"%> <%@ page import="java.util.Date" %> <%@ page import="org.archive.wayback.ResultURIConverter" %> <%@ page import="org.archive.wayback.core.Timestamp" %> Modified: trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/replay/Disclaimer.jsp =================================================================== --- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/replay/Disclaimer.jsp 2008-04-11 03:51:10 UTC (rev 2227) +++ trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/replay/Disclaimer.jsp 2008-04-11 03:56:08 UTC (rev 2228) @@ -1,3 +1,4 @@ +<%@ page language="java" pageEncoding="utf-8" contentType="text/html;charset=utf-8"%> <%@ page import="java.util.Date" %> <%@ page import="org.archive.wayback.WaybackConstants" %> <%@ page import="org.archive.wayback.core.Timestamp" %> Modified: trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/replay/JSLessTimeline.jsp =================================================================== --- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/replay/JSLessTimeline.jsp 2008-04-11 03:51:10 UTC (rev 2227) +++ trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/replay/JSLessTimeline.jsp 2008-04-11 03:56:08 UTC (rev 2228) @@ -1,3 +1,4 @@ +<%@ page language="java" pageEncoding="utf-8" contentType="text/html;charset=utf-8"%> <%@ page import="java.util.Iterator" %> <%@ page import="java.util.ArrayList" %> <%@ page import="java.util.Date" %> @@ -287,11 +288,11 @@ %><input type="checkbox" name="metamode" value="yes" <%= metaChecked %> onClick="changeMeta()">  - --> - <a wmSpecial="1" href="<%= contextRoot %>/help.jsp" target="_top"><%= - fmt.format("UIGlobal.helpLink") - %></a> </form> + --> + <a wmSpecial="1" href="<%= contextRoot %>/help.jsp" target="_top"><%= + fmt.format("UIGlobal.helpLink") + %></a> </td> <td> <img wmSpecial="1" alt='' height='1' src='<%= contextRoot %>/images/1px.gif' width='5'> Modified: trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/replay/Timeline.jsp =================================================================== --- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/replay/Timeline.jsp 2008-04-11 03:51:10 UTC (rev 2227) +++ trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/replay/Timeline.jsp 2008-04-11 03:56:08 UTC (rev 2228) @@ -1,3 +1,4 @@ +<%@ page language="java" pageEncoding="utf-8" contentType="text/html;charset=utf-8"%> <%@ page import="java.util.Iterator" %> <%@ page import="java.util.ArrayList" %> <%@ page import="java.util.Date" %> @@ -309,11 +310,11 @@ %><input type="checkbox" name="metamode" value="yes" <%= metaChecked %> onClick="changeMeta()">  - --> - <a wmSpecial="1" href="<%= contextRoot %>/help.jsp" target="_top"><%= - fmt.format("UIGlobal.helpLink") - %></a> </form> + --> + <a wmSpecial="1" href="<%= contextRoot %>/help.jsp" target="_top"><%= + fmt.format("UIGlobal.helpLink") + %></a> </td> <td> <img wmSpecial="1" alt='' height='1' src='<%= contextRoot %>/images/1px.gif' width='5'> Modified: trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/template/UI-footer.jsp =================================================================== --- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/template/UI-footer.jsp 2008-04-11 03:51:10 UTC (rev 2227) +++ trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/template/UI-footer.jsp 2008-04-11 03:56:08 UTC (rev 2228) @@ -1,3 +1,4 @@ +<%@ page language="java" pageEncoding="utf-8" contentType="text/html;charset=utf-8"%> <%@ page import="org.archive.wayback.core.UIResults" %> <%@ page import="org.archive.wayback.util.StringFormatter" %> <% This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bra...@us...> - 2008-04-11 03:51:07
|
Revision: 2227 http://archive-access.svn.sourceforge.net/archive-access/?rev=2227&view=rev Author: bradtofel Date: 2008-04-10 20:51:10 -0700 (Thu, 10 Apr 2008) Log Message: ----------- INTERFACE: urlToFile() is now protected, not private Modified Paths: -------------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/liveweb/URLCacher.java Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/liveweb/URLCacher.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/liveweb/URLCacher.java 2008-04-11 03:48:48 UTC (rev 2226) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/liveweb/URLCacher.java 2008-04-11 03:51:10 UTC (rev 2227) @@ -106,7 +106,7 @@ return tmpFile; } - private ExtendedGetMethod urlToFile(String urlString, File file) + protected ExtendedGetMethod urlToFile(String urlString, File file) throws LiveDocumentNotAvailableException, URIException, IOException { HttpClient http = getHttpClient(); @@ -282,7 +282,7 @@ private String remoteIP = ""; private Date captureDate = null; - private String mime = ""; + private String mime = "unk"; private OutputStream os = null; /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
Revision: 2226 http://archive-access.svn.sourceforge.net/archive-access/?rev=2226&view=rev Author: bradtofel Date: 2008-04-10 20:48:48 -0700 (Thu, 10 Apr 2008) Log Message: ----------- BUGFIX: ACC-20 : sending correct endDateStr to remote Nutch index. WHITESPACE & COMMENT changes. INTERFACE: added shutdown() method for new ResourceIndex interface. Modified Paths: -------------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/NutchResourceIndex.java Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/NutchResourceIndex.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/NutchResourceIndex.java 2008-04-01 02:00:10 UTC (rev 2225) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/NutchResourceIndex.java 2008-04-11 03:48:48 UTC (rev 2226) @@ -96,7 +96,6 @@ LOGGER.info("initializing NutchResourceIndex..."); LOGGER.info("Using base search url " + this.searchUrlBase); -// this.factory = DocumentBuilderFactory.newInstance(); this.factory.setNamespaceAware(true); try { this.builder = this.factory.newDocumentBuilder(); @@ -249,32 +248,29 @@ protected String getRequestUrl(WaybackRequest wbRequest) throws BadQueryException { -// final String urlStr, final String date, -// } -// final int count) -// throws IOException { - String urlStr = wbRequest.get(WaybackConstants.REQUEST_URL); - String exactDateStr = wbRequest.get(WaybackConstants.REQUEST_EXACT_DATE); - if (exactDateStr != null && exactDateStr.length() == 0) { - exactDateStr = null; - } - String endDateStr = wbRequest.get(WaybackConstants.REQUEST_END_DATE); - if (endDateStr == null || endDateStr.length() == 0) { - endDateStr = wbRequest.get(WaybackConstants.REQUEST_DATE); - } - String startDateStr = wbRequest.get(WaybackConstants.REQUEST_START_DATE); - if (startDateStr == null || startDateStr.length() == 0) { - startDateStr = Timestamp.earliestTimestamp().getDateStr(); - } - int hitsPerPage = wbRequest.getResultsPerPage(); - if(hitsPerPage < 1) { - throw new BadQueryException("Hits per page must be positive"); - } - if(hitsPerPage > maxRecords) { - throw new BadQueryException("Hits per page must be less than " + - maxRecords); - } - int start = (wbRequest.getPageNum()-1) * hitsPerPage; + + String urlStr = wbRequest.get(WaybackConstants.REQUEST_URL); + String exactDateStr = wbRequest.get(WaybackConstants.REQUEST_EXACT_DATE); + if (exactDateStr != null && exactDateStr.length() == 0) { + exactDateStr = null; + } + String endDateStr = wbRequest.get(WaybackConstants.REQUEST_END_DATE); + if (endDateStr == null || endDateStr.length() == 0) { + endDateStr = Timestamp.latestTimestamp().getDateStr(); + } + String startDateStr = wbRequest.get(WaybackConstants.REQUEST_START_DATE); + if (startDateStr == null || startDateStr.length() == 0) { + startDateStr = Timestamp.earliestTimestamp().getDateStr(); + } + int hitsPerPage = wbRequest.getResultsPerPage(); + if(hitsPerPage < 1) { + throw new BadQueryException("Hits per page must be positive"); + } + if(hitsPerPage > maxRecords) { + throw new BadQueryException("Hits per page must be less than " + + maxRecords); + } + int start = (wbRequest.getPageNum()-1) * hitsPerPage; if (urlStr == null || urlStr.length() <= 0) { throw new BadQueryException("Url is empty."); } @@ -282,16 +278,8 @@ MutableString ms = new MutableString(this.searchUrlBase) .append("?query="); // Add 'date:...+' to query string. - // As searching for exact dates is not what we want in most cases, - // we will only use this if REQUEST_[END_]DATE is empty; - if ((endDateStr == null || endDateStr.length() == 0) - && exactDateStr != null && exactDateStr.length() > 0) { - ms.append("date%3A").append(exactDateStr).append('+'); - - } else { - ms.append("date%3A").append(startDateStr).append('-').append( - exactDateStr != null ? exactDateStr : endDateStr).append('+'); - } + ms.append("date%3A").append(startDateStr).append('-').append(endDateStr); + ms.append('+'); // Add 'url:URL'. if(wbRequest.get(WaybackConstants.REQUEST_TYPE).equals( WaybackConstants.REQUEST_URL_PREFIX_QUERY)) { @@ -303,10 +291,6 @@ } catch (UnsupportedEncodingException e) { throw new BadQueryException(e.toString()); } - // when searching for exacturl, we are mostly - // interested in the different versions over the time -// ms.append("&sort=date"); -// ms.append("&reverse=true"); } ms.append("&hitsPerPage=").append(hitsPerPage); ms.append("&start=").append(start); @@ -348,28 +332,31 @@ d = this.builder.parse(url); return d; } -/** - * @return the searchUrlBase - */ -public String getSearchUrlBase() { - return searchUrlBase; + /** + * @return the searchUrlBase + */ + public String getSearchUrlBase() { + return searchUrlBase; + } + /** + * @param searchUrlBase the searchUrlBase to set + */ + public void setSearchUrlBase(String searchUrlBase) { + this.searchUrlBase = searchUrlBase; + } + /** + * @return the maxRecords + */ + public int getMaxRecords() { + return maxRecords; + } + /** + * @param maxRecords the maxRecords to set + */ + public void setMaxRecords(int maxRecords) { + this.maxRecords = maxRecords; + } + public void shutdown() throws IOException { + + } } -/** - * @param searchUrlBase the searchUrlBase to set - */ -public void setSearchUrlBase(String searchUrlBase) { - this.searchUrlBase = searchUrlBase; -} -/** - * @return the maxRecords - */ -public int getMaxRecords() { - return maxRecords; -} -/** - * @param maxRecords the maxRecords to set - */ -public void setMaxRecords(int maxRecords) { - this.maxRecords = maxRecords; -} -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bra...@us...> - 2008-04-01 02:00:09
|
Revision: 2225 http://archive-access.svn.sourceforge.net/archive-access/?rev=2225&view=rev Author: bradtofel Date: 2008-03-31 19:00:10 -0700 (Mon, 31 Mar 2008) Log Message: ----------- BUGFIX: changed declared META tag encoding to utf-8, thanks Lukas ADDED: @page declaration indicate utf-8 encoding as well. Modified Paths: -------------- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/template/UI-header.jsp Modified: trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/template/UI-header.jsp =================================================================== --- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/template/UI-header.jsp 2008-03-21 01:10:43 UTC (rev 2224) +++ trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/template/UI-header.jsp 2008-04-01 02:00:10 UTC (rev 2225) @@ -2,6 +2,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <%@ page import="org.archive.wayback.core.UIResults" %> <%@ page import="org.archive.wayback.util.StringFormatter" %> +<%@ page language="java" pageEncoding="utf-8" contentType="text/html;charset=utf-8"%> <% UIResults results = UIResults.getFromRequest(request); StringFormatter fmt = results.getFormatter(); @@ -12,7 +13,7 @@ <html xmlns="http://www.w3.org/1999/xhtml"> <head> - <meta http-equiv="content-type" content="text/html;charset=iso-8859-1"> + <meta http-equiv="content-type" content="text/html; charset=utf-8"> <link rel="stylesheet" type="text/css" href="<%= contextRoot %>css/styles.css" @@ -53,7 +54,7 @@ <!-- URL FORM --> - <form action="<%= contextRoot %>query" method="GET"> + <form action="<%= contextRoot %>query" method="get"> <tr> @@ -83,7 +84,7 @@ <option>1996</option> </select> - <input type="Submit" name="Submit" value="<%= fmt.format("UIGlobal.urlSearchButton") %>" align="absMiddle"> + <input type="submit" name="Submit" value="<%= fmt.format("UIGlobal.urlSearchButton") %>" align="absMiddle"> <a href="<%= contextRoot %>advanced_search.jsp" style="color:white;font-size:11px"> <%= fmt.format("UIGlobal.advancedSearchLink") %> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <al...@us...> - 2008-03-21 01:11:24
|
Revision: 2224 http://archive-access.svn.sourceforge.net/archive-access/?rev=2224&view=rev Author: alexoz Date: 2008-03-20 18:10:43 -0700 (Thu, 20 Mar 2008) Log Message: ----------- * list_rules.jsp Made "save" the default form action. Only display delete button on existing rules (not new ones). Modified Paths: -------------- trunk/archive-access/projects/access-control/oracle/src/main/webapp/WEB-INF/views/list_rules.jsp Modified: trunk/archive-access/projects/access-control/oracle/src/main/webapp/WEB-INF/views/list_rules.jsp =================================================================== --- trunk/archive-access/projects/access-control/oracle/src/main/webapp/WEB-INF/views/list_rules.jsp 2008-03-21 00:58:37 UTC (rev 2223) +++ trunk/archive-access/projects/access-control/oracle/src/main/webapp/WEB-INF/views/list_rules.jsp 2008-03-21 01:10:43 UTC (rev 2224) @@ -69,14 +69,15 @@ <p><label for="policy">Policy:</label> <input name="policy" id="policy" value="<c:out value="${rule.rule.policy}"/>" /></p> + <div class="priButtons"> + <input type="submit" value="Save" name="saveRule" /> + <input type="submit" value="Cancel" name="cancel" /> + </div> <div class="altButtons"> - <input type="submit" value="Delete Rule" name="delete" /> + <c:if test="${rule.rule.id != -1}"> + <input type="submit" value="Delete Rule" name="delete" /> + </c:if> </div> - - <div class="priButtons"> - <input type="submit" value="Save" name="saveRule" /> - <input type="submit" value="Cancel" name="cancel" /> - </div> </fieldset> </form> <script type="text/javascript"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
Revision: 2223 http://archive-access.svn.sourceforge.net/archive-access/?rev=2223&view=rev Author: alexoz Date: 2008-03-20 17:58:37 -0700 (Thu, 20 Mar 2008) Log Message: ----------- AdminController.java * Added a few cleanups to SURTs and allow URLs to be entered as an alternative. Modified Paths: -------------- trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/webui/AdminController.java Modified: trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/webui/AdminController.java =================================================================== --- trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/webui/AdminController.java 2008-03-14 03:23:05 UTC (rev 2222) +++ trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/webui/AdminController.java 2008-03-21 00:58:37 UTC (rev 2223) @@ -19,6 +19,8 @@ import org.archive.accesscontrol.model.Rule; import org.archive.accesscontrol.model.RuleSet; import org.archive.surt.NewSurtTokenizer; +import org.archive.util.ArchiveUtils; +import org.archive.util.SURT; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController; @@ -52,9 +54,40 @@ } return ruleList(surt, editingRuleId, request, response); } + + /** + * Return true if the given string appears to be a SURT. + * @param s + * @return + */ + protected boolean isSurt(String s) { + return s.charAt(0) == '(' || s.indexOf("://") == s.indexOf("://("); + } + /** + * Perform a several cleanups on the given surt: + * * Convert a URL to a SURT + * * Add a trailing slash to SURTs of the form: http://(...) + * @param surt + * @return + */ + protected String cleanSurt(String surt) { + if (!isSurt(surt)) { + surt = ArchiveUtils.addImpliedHttpIfNecessary(surt); + surt = SURT.fromURI(surt); + } + + if (surt.endsWith(",)") && surt.indexOf(")") == surt.length()-1) { + surt = surt + "/"; + } + + return surt; + } + protected ModelAndView ruleList(String surt, Long editingRuleId, HttpServletRequest request, HttpServletResponse response) throws Exception { + + surt = cleanSurt(surt); int surtSegments = new NewSurtTokenizer(surt).toList().size(); Map<String, Object> model = new HashMap<String, Object>(); RuleSet rules = ruleDao.getRuleTree(surt); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
Revision: 2222 http://archive-access.svn.sourceforge.net/archive-access/?rev=2222&view=rev Author: alexoz Date: 2008-03-13 20:23:05 -0700 (Thu, 13 Mar 2008) Log Message: ----------- * RulesController.java Fixup the double-slash in surt schemes (replace http:/foo with http://foo). Some client libraries annoyingly remove double-slashes. Modified Paths: -------------- trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/oracle/RulesController.java Modified: trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/oracle/RulesController.java =================================================================== --- trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/oracle/RulesController.java 2008-03-14 03:20:56 UTC (rev 2221) +++ trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/oracle/RulesController.java 2008-03-14 03:23:05 UTC (rev 2222) @@ -241,10 +241,22 @@ * @throws URIException */ public ModelAndView getRuleTree(String surt) throws URIException { + surt = fixupSchemeSlashes(surt); System.out.println("*** getRuleTree: " + surt); return new ModelAndView(view, "object", ruleDao.getRuleTree(surt)); } + /** + * Ensure scheme has a double slash. eg replaces "http:/blah" with "http://blah" + */ + private String fixupSchemeSlashes(String surt) { + if (surt.indexOf(":/(") == surt.indexOf(":")) { + int i = surt.indexOf(":"); + surt = surt.substring(0, i + 1) + "/" + surt.substring(i+1); + } + return surt; + } + @Override protected ModelAndView handleRequestInternal(HttpServletRequest request, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <al...@us...> - 2008-03-14 03:20:50
|
Revision: 2221 http://archive-access.svn.sourceforge.net/archive-access/?rev=2221&view=rev Author: alexoz Date: 2008-03-13 20:20:56 -0700 (Thu, 13 Mar 2008) Log Message: ----------- * Rule.java Treat blank groups the same as null groups (wildcard), as the web UI cannot distinguish the two cases. * RuleTest.java Added unit test to cover the above change. Modified Paths: -------------- trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/accesscontrol/model/Rule.java trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/accesscontrol/model/RuleTest.java Modified: trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/accesscontrol/model/Rule.java =================================================================== --- trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/accesscontrol/model/Rule.java 2008-03-14 02:54:06 UTC (rev 2220) +++ trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/accesscontrol/model/Rule.java 2008-03-14 03:20:56 UTC (rev 2221) @@ -348,7 +348,7 @@ * @return */ public boolean matches(String surt, Date captureDate, Date retrievalDate, String who2) { - return (who == null || who == who2) && matches(surt, captureDate, retrievalDate); + return (who == null || "".equals(who) || who == who2) && matches(surt, captureDate, retrievalDate); } public boolean isExactMatch() { Modified: trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/accesscontrol/model/RuleTest.java =================================================================== --- trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/accesscontrol/model/RuleTest.java 2008-03-14 02:54:06 UTC (rev 2220) +++ trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/accesscontrol/model/RuleTest.java 2008-03-14 03:20:56 UTC (rev 2221) @@ -70,4 +70,11 @@ assertFalse("under embargo, so non-match", rule.matches("(org,archive,)/", new GregorianCalendar(2007, 4, 10).getTime(), new GregorianCalendar(2007, 4, 12).getTime())); assertTrue("outside embargo, so match", rule.matches("(org,archive,)/", new GregorianCalendar(2007, 4, 10).getTime(), new GregorianCalendar(2007, 4, 25).getTime())); } + + public void testBlankGroupMatching() { + rule = new Rule(); + rule.setSurt("("); + rule.setWho(""); + assertTrue(rule.matches("(org,",null, null, "blah")); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
Revision: 2220 http://archive-access.svn.sourceforge.net/archive-access/?rev=2220&view=rev Author: alexoz Date: 2008-03-13 19:54:06 -0700 (Thu, 13 Mar 2008) Log Message: ----------- * RulesController.java Allow retrieving rules that start with a scheme. Modified Paths: -------------- trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/oracle/RulesController.java Modified: trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/oracle/RulesController.java =================================================================== --- trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/oracle/RulesController.java 2008-03-13 06:34:03 UTC (rev 2219) +++ trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/oracle/RulesController.java 2008-03-14 02:54:06 UTC (rev 2220) @@ -241,6 +241,7 @@ * @throws URIException */ public ModelAndView getRuleTree(String surt) throws URIException { + System.out.println("*** getRuleTree: " + surt); return new ModelAndView(view, "object", ruleDao.getRuleTree(surt)); } @@ -267,10 +268,16 @@ ruleDao.deleteAllRules(); return null; } - } else if (idParam.startsWith("(")) { // GET /rules/(some,surt,) + } + + Long id = null; + try { + id = new Long(idParam); + } catch (NumberFormatException e) {} + + if (id == null) { // GET /rules/(some,surt,) return getRuleNode(idParam); } else { - Long id = new Long(idParam); if (request.getMethod().equals("GET")) { // GET /rules/:id return getRule(id); } else if (request.getMethod().equals("PUT")) { // PUT /rules/:id This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <al...@us...> - 2008-03-13 06:34:04
|
Revision: 2219 http://archive-access.svn.sourceforge.net/archive-access/?rev=2219&view=rev Author: alexoz Date: 2008-03-12 23:34:03 -0700 (Wed, 12 Mar 2008) Log Message: ----------- * RuleSet.java Fixed exception when iterating over empty RuleSet. * RuleSetTest.java Added unit-test to cover above fix. Modified Paths: -------------- trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/accesscontrol/model/RuleSet.java trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/accesscontrol/model/RuleSetTest.java Modified: trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/accesscontrol/model/RuleSet.java =================================================================== --- trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/accesscontrol/model/RuleSet.java 2008-03-13 06:08:34 UTC (rev 2218) +++ trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/accesscontrol/model/RuleSet.java 2008-03-13 06:34:03 UTC (rev 2219) @@ -24,12 +24,13 @@ public RuleSetIterator() { mapIterator = rulemap.values().iterator(); - setIterator = mapIterator.next().iterator(); + setIterator = null; + hasNext(); } public boolean hasNext() { while (true) { - if (setIterator.hasNext()) + if (setIterator != null && setIterator.hasNext()) return true; if (!mapIterator.hasNext()) return false; Modified: trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/accesscontrol/model/RuleSetTest.java =================================================================== --- trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/accesscontrol/model/RuleSetTest.java 2008-03-13 06:08:34 UTC (rev 2218) +++ trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/accesscontrol/model/RuleSetTest.java 2008-03-13 06:34:03 UTC (rev 2219) @@ -81,4 +81,9 @@ assertEquals("robots", ruleset.getMatchingRule("(org,archive,)/classified-photons", new Date(), new Date(), "public").getPolicy()); } + public void testIterator() { + ruleset = new RuleSet(); + assertFalse(ruleset.iterator().hasNext()); + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <al...@us...> - 2008-03-13 06:09:17
|
Revision: 2218 http://archive-access.svn.sourceforge.net/archive-access/?rev=2218&view=rev Author: alexoz Date: 2008-03-12 23:08:34 -0700 (Wed, 12 Mar 2008) Log Message: ----------- * pom.xml Enable usage of snapshots from the builds.archive.org repository. Modified Paths: -------------- trunk/archive-access/projects/access-control/access-control/pom.xml trunk/archive-access/projects/access-control/oracle/pom.xml Modified: trunk/archive-access/projects/access-control/access-control/pom.xml =================================================================== --- trunk/archive-access/projects/access-control/access-control/pom.xml 2008-03-13 05:23:07 UTC (rev 2217) +++ trunk/archive-access/projects/access-control/access-control/pom.xml 2008-03-13 06:08:34 UTC (rev 2218) @@ -29,7 +29,7 @@ <repository> <releases /> <snapshots> - <enabled>false</enabled> + <enabled>true</enabled> </snapshots> <id>archive</id> <url>http://builds.archive.org:8080/maven2</url> Modified: trunk/archive-access/projects/access-control/oracle/pom.xml =================================================================== --- trunk/archive-access/projects/access-control/oracle/pom.xml 2008-03-13 05:23:07 UTC (rev 2217) +++ trunk/archive-access/projects/access-control/oracle/pom.xml 2008-03-13 06:08:34 UTC (rev 2218) @@ -54,7 +54,7 @@ <repository> <releases /> <snapshots> - <enabled>false</enabled> + <enabled>true</enabled> </snapshots> <id>archive</id> <url>http://builds.archive.org:8080/maven2</url> @@ -160,4 +160,4 @@ <version>1.1.2</version> </dependency> </dependencies> -</project> \ No newline at end of file +</project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <al...@us...> - 2008-03-13 05:23:55
|
Revision: 2217 http://archive-access.svn.sourceforge.net/archive-access/?rev=2217&view=rev Author: alexoz Date: 2008-03-12 22:23:07 -0700 (Wed, 12 Mar 2008) Log Message: ----------- * applicationContext.xml Use a HSQLDB file database by default instead of PostgreSQL, to reduce dependencies and save the end user from needing to configure anything. Modified Paths: -------------- trunk/archive-access/projects/access-control/oracle/src/main/webapp/WEB-INF/applicationContext.xml Modified: trunk/archive-access/projects/access-control/oracle/src/main/webapp/WEB-INF/applicationContext.xml =================================================================== --- trunk/archive-access/projects/access-control/oracle/src/main/webapp/WEB-INF/applicationContext.xml 2008-03-10 22:00:46 UTC (rev 2216) +++ trunk/archive-access/projects/access-control/oracle/src/main/webapp/WEB-INF/applicationContext.xml 2008-03-13 05:23:07 UTC (rev 2217) @@ -28,10 +28,10 @@ <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> - <property name="driverClassName" value="org.postgresql.Driver" /> + <property name="driverClassName" value="org.hsqldb.jdbcDriver" /> <property name="url" - value="jdbc:postgresql://localhost/exclusions" /> - <property name="username" value="ato" /> + value="jdbc:hsqldb:file:db/oracle.db" /> + <property name="username" value="sa" /> <!-- <property name="password" value="" /> --> </bean> @@ -46,8 +46,8 @@ </property> <property name="hibernateProperties"> <value> - hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect - hibernate.hbm2ddl.auto=update + hibernate.dialect=org.hibernate.dialect.HSQLDialect + hibernate.hbm2ddl.auto=create </value> </property> </bean> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bra...@us...> - 2008-03-10 22:00:54
|
Revision: 2216 http://archive-access.svn.sourceforge.net/archive-access/?rev=2216&view=rev Author: bradtofel Date: 2008-03-10 15:00:46 -0700 (Mon, 10 Mar 2008) Log Message: ----------- BUGFIX: (ACC-14) now generate a fresh latest timestamp (if one is not configured) each time one is needed, instead of using the "default" one we generated when the JVM starts up. 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/archivalurl/requestparser/ReplayRequestParser.java trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/domainprefix/DomainPrefixRequestParser.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 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 2008-03-04 05:01:52 UTC (rev 2215) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/PathDatePrefixQueryRequestParser.java 2008-03-10 22:00:46 UTC (rev 2216) @@ -61,8 +61,8 @@ String startDate; String endDate; if(dateStr.length() == 0) { - startDate = earliestTimestamp; - endDate = latestTimestamp; + startDate = getEarliestTimestamp(); + endDate = getLatestTimestamp(); } else { startDate = Timestamp.parseBefore(dateStr).getDateStr(); endDate = Timestamp.parseAfter(dateStr).getDateStr(); 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 2008-03-04 05:01:52 UTC (rev 2215) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/PathPrefixDatePrefixQueryRequestParser.java 2008-03-10 22:00:46 UTC (rev 2216) @@ -60,8 +60,8 @@ String startDate; String endDate; if(dateStr.length() == 0) { - startDate = earliestTimestamp; - endDate = latestTimestamp; + startDate = getEarliestTimestamp(); + endDate = getLatestTimestamp(); } else { startDate = Timestamp.parseBefore(dateStr).getDateStr(); endDate = Timestamp.parseAfter(dateStr).getDateStr(); Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/ReplayRequestParser.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/ReplayRequestParser.java 2008-03-04 05:01:52 UTC (rev 2215) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/requestparser/ReplayRequestParser.java 2008-03-10 22:00:46 UTC (rev 2216) @@ -75,8 +75,8 @@ String startDate = null; String endDate = null; if (dateStr.length() == 14) { - startDate = earliestTimestamp; - endDate = latestTimestamp; + startDate = getEarliestTimestamp(); + endDate = getLatestTimestamp(); } else { // classic behavior: @@ -85,8 +85,8 @@ // dateStr = endDate; // "better" behavior: - startDate = earliestTimestamp; - endDate = latestTimestamp; + startDate = getEarliestTimestamp(); + endDate = getLatestTimestamp(); dateStr = Timestamp.parseAfter(dateStr).getDateStr(); } Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/domainprefix/DomainPrefixRequestParser.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/domainprefix/DomainPrefixRequestParser.java 2008-03-04 05:01:52 UTC (rev 2215) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/domainprefix/DomainPrefixRequestParser.java 2008-03-10 22:00:46 UTC (rev 2216) @@ -108,8 +108,8 @@ String startDate; String endDate; if(dateStr.length() == 0) { - startDate = earliestTimestamp; - endDate = latestTimestamp; + startDate = getEarliestTimestamp(); + endDate = getLatestTimestamp(); } else { startDate = Timestamp.parseBefore(dateStr).getDateStr(); endDate = Timestamp.parseAfter(dateStr).getDateStr(); 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 2008-03-04 05:01:52 UTC (rev 2215) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/BaseRequestParser.java 2008-03-10 22:00:46 UTC (rev 2216) @@ -66,10 +66,8 @@ protected int maxRecords = DEFAULT_MAX_RECORDS; - protected String earliestTimestamp = - Timestamp.earliestTimestamp().getDateStr(); - protected String latestTimestamp = - Timestamp.latestTimestamp().getDateStr(); + protected String earliestTimestamp = null; + protected String latestTimestamp = null; protected static String getMapParam(Map<String,String[]> queryMap, String field) { @@ -128,15 +126,21 @@ * @return */ public String getEarliestTimestamp() { - return earliestTimestamp; + if(earliestTimestamp != null) { + return earliestTimestamp; + + } + return Timestamp.earliestTimestamp().getDateStr(); } public String getLatestTimestamp() { - return latestTimestamp; + if(latestTimestamp != null) { + return latestTimestamp; + } + return Timestamp.latestTimestamp().getDateStr(); } public void setLatestTimestamp(String timestamp) { this.latestTimestamp = Timestamp.parseAfter(timestamp).getDateStr(); } - } 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 2008-03-04 05:01:52 UTC (rev 2215) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/CompositeRequestParser.java 2008-03-10 22:00:46 UTC (rev 2216) @@ -47,8 +47,12 @@ parsers = getRequestParsers(); for(int i = 0; i < parsers.length; i++) { parsers[i].setMaxRecords(maxRecords); - parsers[i].setEarliestTimestamp(earliestTimestamp); - parsers[i].setLatestTimestamp(latestTimestamp); + if(earliestTimestamp != null) { + parsers[i].setEarliestTimestamp(earliestTimestamp); + } + if(latestTimestamp != null) { + parsers[i].setLatestTimestamp(latestTimestamp); + } } } 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 2008-03-04 05:01:52 UTC (rev 2215) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/FormRequestParser.java 2008-03-10 22:00:46 UTC (rev 2216) @@ -88,11 +88,11 @@ } if(wbRequest.get(WaybackConstants.REQUEST_START_DATE) == null) { wbRequest.put(WaybackConstants.REQUEST_START_DATE, - earliestTimestamp); + getEarliestTimestamp()); } if(wbRequest.get(WaybackConstants.REQUEST_END_DATE) == null) { wbRequest.put(WaybackConstants.REQUEST_END_DATE, - latestTimestamp); + getLatestTimestamp()); } } if(wbRequest != null) { 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 2008-03-04 05:01:52 UTC (rev 2215) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/requestparser/OpenSearchRequestParser.java 2008-03-10 22:00:46 UTC (rev 2216) @@ -146,11 +146,11 @@ } if(wbRequest.get(WaybackConstants.REQUEST_START_DATE) == null) { wbRequest.put(WaybackConstants.REQUEST_START_DATE, - earliestTimestamp); + getEarliestTimestamp()); } if(wbRequest.get(WaybackConstants.REQUEST_END_DATE) == null) { wbRequest.put(WaybackConstants.REQUEST_END_DATE, - latestTimestamp); + getLatestTimestamp()); } wbRequest.fixup(httpRequest); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <al...@us...> - 2008-03-04 05:01:47
|
Revision: 2215 http://archive-access.svn.sourceforge.net/archive-access/?rev=2215&view=rev Author: alexoz Date: 2008-03-03 21:01:52 -0800 (Mon, 03 Mar 2008) Log Message: ----------- * index.jsp Adjusted welcome page to have links to http://(, https://( and ftp://(, rather than directly going to "(". Modified Paths: -------------- trunk/archive-access/projects/access-control/oracle/src/main/webapp/WEB-INF/views/index.jsp trunk/archive-access/projects/access-control/oracle/src/main/webapp/index.jsp Modified: trunk/archive-access/projects/access-control/oracle/src/main/webapp/WEB-INF/views/index.jsp =================================================================== --- trunk/archive-access/projects/access-control/oracle/src/main/webapp/WEB-INF/views/index.jsp 2008-03-04 04:45:10 UTC (rev 2214) +++ trunk/archive-access/projects/access-control/oracle/src/main/webapp/WEB-INF/views/index.jsp 2008-03-04 05:01:52 UTC (rev 2215) @@ -1,17 +1,16 @@ <%@ include file="header.inc"%> +<p>Enter a URL or SURT fragment to edit:</p> <form action="<c:url value="/admin"/>" method="GET"><input size="50" name="surt" - value="(org,archive,www,)/foo" /> <input type="submit" value="Go!" /> + value="http://(" /> <input type="submit" value="Go!" /> </form> -<h2 class="breadcrumb"><a href="admin?surt=(org">(org</a>,<a - href="admin?surt=(org,archive">archive</a></h2> +<h2>Browse</h2> <ul> - <li><a href="admin?surt=(org,archive,audio">audio</a></li> - <li>web</li> - <li>webteam</li> - <li>www</li> + <li><a href="admin?surt=http://(">http://(</a></li> + <li><a href="admin?surt=https://(">https://(</a></li> + <li><a href="admin?surt=ftp://(">ftp://(</a></li> </ul> <%@ include file="footer.inc"%> Modified: trunk/archive-access/projects/access-control/oracle/src/main/webapp/index.jsp =================================================================== --- trunk/archive-access/projects/access-control/oracle/src/main/webapp/index.jsp 2008-03-04 04:45:10 UTC (rev 2214) +++ trunk/archive-access/projects/access-control/oracle/src/main/webapp/index.jsp 2008-03-04 05:01:52 UTC (rev 2215) @@ -1,3 +1,3 @@ <% -response.sendRedirect("admin?surt=("); +response.sendRedirect("admin"); %> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <al...@us...> - 2008-03-04 04:45:58
|
Revision: 2214 http://archive-access.svn.sourceforge.net/archive-access/?rev=2214&view=rev Author: alexoz Date: 2008-03-03 20:45:10 -0800 (Mon, 03 Mar 2008) Log Message: ----------- * AccessControlClient.java, NewSurtTokenizer.java Allow specifying a SURT with a scheme. * NewSurtTokenizer.java, NewSurtTokenizerTest.java Added method to return a list of searches (to replace functionality of old SURT tokenizer). * RuleSet.java Changed to use new SURT tokenizer. * RuleSetTest.java Updated tests to reflect the new tokenizing behaviour. * SURTTokenizer2.java, SURTTokenizer2Test.java Removed old SURT tokenizer. Modified Paths: -------------- trunk/archive-access/projects/access-control/access-control/.classpath trunk/archive-access/projects/access-control/access-control/.project trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/accesscontrol/AccessControlClient.java trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/accesscontrol/model/RuleSet.java trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/surt/NewSurtTokenizer.java trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/accesscontrol/model/RuleSetTest.java trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/surt/NewSurtTokenizerTest.java Removed Paths: ------------- trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/surt/SURTTokenizer2.java trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/surt/SURTTokenizer2Test.java Modified: trunk/archive-access/projects/access-control/access-control/.classpath =================================================================== --- trunk/archive-access/projects/access-control/access-control/.classpath 2008-03-04 04:41:20 UTC (rev 2213) +++ trunk/archive-access/projects/access-control/access-control/.classpath 2008-03-04 04:45:10 UTC (rev 2214) @@ -4,33 +4,33 @@ <classpathentry kind="src" path="src/test/java" output="target/test-classes"/> <classpathentry kind="output" path="target/classes"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> - <classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.3/commons-lang-2.3.jar"/> - <classpathentry kind="var" path="M2_REPO/org/dnsjava/dnsjava/2.0.3/dnsjava-2.0.3.jar"/> - <classpathentry kind="var" path="M2_REPO/it/unimi/dsi/mg4j/1.0.1/mg4j-1.0.1.jar"/> + <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.3.4.O/xpp3_min-1.1.3.4.O.jar"/> + <classpathentry kind="var" path="M2_REPO/fastutil/fastutil/5.0.7/fastutil-5.0.7.jar"/> + <classpathentry kind="var" path="M2_REPO/org/gnu/inet/libidn/0.6.5/libidn-0.6.5.jar"/> + <classpathentry kind="var" path="M2_REPO/com/lowagie/itext/1.3/itext-1.3.jar"/> + <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar"/> + <classpathentry kind="var" path="M2_REPO/net/htmlparser/jericho/jericho-html/2.3/jericho-html-2.3.jar"/> + <classpathentry kind="var" path="M2_REPO/commons-cli/commons-cli/1.0/commons-cli-1.0.jar"/> + <classpathentry kind="var" path="M2_REPO/org/archive/overlays/archive-overlay-commons-pool/1.3/archive-overlay-commons-pool-1.3.jar"/> + <classpathentry kind="var" path="M2_REPO/oro/oro/2.0.8/oro-2.0.8.jar"/> + <classpathentry kind="var" path="M2_REPO/commons-net/commons-net/1.4.1/commons-net-1.4.1.jar"/> + <classpathentry kind="var" path="M2_REPO/junit/junit/4.4/junit-4.4.jar"/> + <classpathentry kind="var" path="M2_REPO/poi/poi-scratchpad/2.5.1-final-20040804/poi-scratchpad-2.5.1-final-20040804.jar"/> <classpathentry kind="var" path="M2_REPO/org/archive/heritrix/commons/2.0.0-RC1/commons-2.0.0-RC1.jar"/> <classpathentry kind="var" path="M2_REPO/org/codehaus/jettison/jettison/1.0-beta-1/jettison-1.0-beta-1.jar"/> + <classpathentry kind="var" path="M2_REPO/commons-dbcp/commons-dbcp/1.2.2/commons-dbcp-1.2.2.jar"/> + <classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.3/commons-lang-2.3.jar"/> <classpathentry kind="var" path="M2_REPO/net/java/dev/jets3t/jets3t/0.5.0/jets3t-0.5.0.jar"/> - <classpathentry kind="var" path="M2_REPO/commons-cli/commons-cli/1.0/commons-cli-1.0.jar"/> - <classpathentry kind="var" path="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar"/> - <classpathentry kind="var" path="M2_REPO/junit/junit/4.4/junit-4.4.jar"/> - <classpathentry kind="var" path="M2_REPO/org/archive/overlays/archive-overlay-commons-httpclient/3.1/archive-overlay-commons-httpclient-3.1.jar"/> - <classpathentry kind="var" path="M2_REPO/org/archive/overlays/archive-overlay-commons-pool/1.3/archive-overlay-commons-pool-1.3.jar"/> - <classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.3.1/commons-io-1.3.1.jar"/> - <classpathentry kind="var" path="M2_REPO/poi/poi-scratchpad/2.5.1-final-20040804/poi-scratchpad-2.5.1-final-20040804.jar"/> - <classpathentry kind="var" path="M2_REPO/net/htmlparser/jericho/jericho-html/2.3/jericho-html-2.3.jar"/> - <classpathentry kind="var" path="M2_REPO/org/gnu/inet/libidn/0.6.5/libidn-0.6.5.jar"/> - <classpathentry kind="var" path="M2_REPO/commons-pool/commons-pool/1.3/commons-pool-1.3.jar"/> + <classpathentry kind="var" path="M2_REPO/poi/poi/2.5.1-final-20040804/poi-2.5.1-final-20040804.jar"/> + <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.2.2/xstream-1.2.2.jar"/> <classpathentry kind="var" path="M2_REPO/com/anotherbigidea/javaswf/CVS-SNAPSHOT-1/javaswf-CVS-SNAPSHOT-1.jar"/> <classpathentry kind="var" path="M2_REPO/commons-codec/commons-codec/1.3/commons-codec-1.3.jar"/> + <classpathentry kind="var" path="M2_REPO/berkeleydb/je/3.2.44/je-3.2.44.jar"/> + <classpathentry kind="var" path="M2_REPO/commons-pool/commons-pool/1.3/commons-pool-1.3.jar"/> + <classpathentry kind="var" path="M2_REPO/org/archive/overlays/archive-overlay-commons-httpclient/3.1/archive-overlay-commons-httpclient-3.1.jar"/> + <classpathentry kind="var" path="M2_REPO/it/unimi/dsi/mg4j/1.0.1/mg4j-1.0.1.jar"/> + <classpathentry kind="var" path="M2_REPO/org/dnsjava/dnsjava/2.0.3/dnsjava-2.0.3.jar"/> <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/> - <classpathentry kind="var" path="M2_REPO/fastutil/fastutil/5.0.7/fastutil-5.0.7.jar"/> - <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar"/> - <classpathentry kind="var" path="M2_REPO/oro/oro/2.0.8/oro-2.0.8.jar"/> - <classpathentry kind="var" path="M2_REPO/poi/poi/2.5.1-final-20040804/poi-2.5.1-final-20040804.jar"/> - <classpathentry kind="var" path="M2_REPO/commons-dbcp/commons-dbcp/1.2.2/commons-dbcp-1.2.2.jar"/> - <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.3.4.O/xpp3_min-1.1.3.4.O.jar"/> - <classpathentry kind="var" path="M2_REPO/com/lowagie/itext/1.3/itext-1.3.jar"/> - <classpathentry kind="var" path="M2_REPO/berkeleydb/je/3.2.44/je-3.2.44.jar"/> - <classpathentry kind="var" path="M2_REPO/commons-net/commons-net/1.4.1/commons-net-1.4.1.jar"/> - <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.2.2/xstream-1.2.2.jar"/> + <classpathentry kind="var" path="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar"/> + <classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.3.1/commons-io-1.3.1.jar"/> </classpath> \ No newline at end of file Modified: trunk/archive-access/projects/access-control/access-control/.project =================================================================== --- trunk/archive-access/projects/access-control/access-control/.project 2008-03-04 04:41:20 UTC (rev 2213) +++ trunk/archive-access/projects/access-control/access-control/.project 2008-03-04 04:45:10 UTC (rev 2214) @@ -12,11 +12,15 @@ <buildCommand> <name>org.eclipse.wst.validation.validationbuilder</name> </buildCommand> + <buildCommand> + <name>org.maven.ide.eclipse.maven2Builder</name> + </buildCommand> </buildSpec> <natures> <nature>org.eclipse.wst.common.project.facet.core.nature</nature> <nature>org.eclipse.jdt.core.javanature</nature> <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature> <nature>org.eclipse.jem.workbench.JavaEMFNature</nature> + <nature>org.maven.ide.eclipse.maven2Nature</nature> </natures> </projectDescription> \ No newline at end of file Modified: trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/accesscontrol/AccessControlClient.java =================================================================== --- trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/accesscontrol/AccessControlClient.java 2008-03-04 04:41:20 UTC (rev 2213) +++ trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/accesscontrol/AccessControlClient.java 2008-03-04 04:45:10 UTC (rev 2214) @@ -101,10 +101,8 @@ String publicSuffix = PublicSuffixes .reduceSurtToTopmostAssigned(getSurtAuthority(surt)); - surt = stripScheme(surt); + RuleSet rules = ruleDao.getRuleTree(getScheme(surt) + "(" + publicSuffix); - RuleSet rules = ruleDao.getRuleTree("(" + publicSuffix); - Rule matchingRule = rules.getMatchingRule(surt, captureDate, retrievalDate, who); return matchingRule; @@ -142,13 +140,13 @@ return surt.substring(indexOfOpen + 4, indexOfClose); } - protected static String stripScheme(String surt) { + protected static String getScheme(String surt) { int i = surt.indexOf("://"); int j = surt.indexOf(":"); if (i >= 0 && i == j) { - return surt.substring(i + 3); + return surt.substring(0, i + 3); } else { - return surt; + return ""; } } Modified: trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/accesscontrol/model/RuleSet.java =================================================================== --- trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/accesscontrol/model/RuleSet.java 2008-03-04 04:41:20 UTC (rev 2213) +++ trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/accesscontrol/model/RuleSet.java 2008-03-04 04:45:10 UTC (rev 2214) @@ -5,8 +5,7 @@ import java.util.Iterator; import java.util.TreeSet; -import org.archive.surt.SURTTokenizer2; - +import org.archive.surt.NewSurtTokenizer; import sun.reflect.generics.reflectiveObjects.NotImplementedException; /** @@ -67,16 +66,10 @@ public Rule getMatchingRule(String surt, Date captureDate, Date retrievalDate, String who) { - SURTTokenizer2 tok = SURTTokenizer2.newFromSURT(surt); + NewSurtTokenizer tok = new NewSurtTokenizer(surt); boolean done = false; - while (!done) { - String key = tok.nextSearch(); - if (key == null) { - key = "("; - done = true; - } - + for (String key: tok.getSearchList()) { Iterable<Rule> rules = rulemap.get(key); if (rules != null) { for (Rule rule : rules) { Modified: trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/surt/NewSurtTokenizer.java =================================================================== --- trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/surt/NewSurtTokenizer.java 2008-03-04 04:41:20 UTC (rev 2213) +++ trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/surt/NewSurtTokenizer.java 2008-03-04 04:45:10 UTC (rev 2214) @@ -8,9 +8,9 @@ /** * The new SURT tokenizer breaks a SURT up into tokens. * - * For example "(org,archive,www,)/path/file.html?query#anchor" is broken up into: + * For example "http://(org,archive,www,)/path/file.html?query#anchor" is broken up into: * - * ["(" + * ["http://(" * "org," * "archive," * "www," @@ -76,9 +76,13 @@ return surtLength; } - // ROOT: "(..." + // Scheme: "http://(..." if (pos == 0) { - return 1; // "(" + int i = surt.indexOf('('); + if (i == -1) { + return preTabLength; + } + return i + 1; // "http://(" } // Host components: "foo,..." if (pos < endOfAuthority || endOfAuthority == -1) { @@ -150,4 +154,26 @@ return (String[]) toList().toArray(); } + /** + * Return a list of searches in order of decreasing length. For example + * given the surt "(org,archive,)/fishing" return: + * + * [ "(org,archive,)/fishing", + * "(org,archive,)/", + * "(org,archive,", + * "(org,", + * "(" + * ] + * @return + */ + public List<String> getSearchList() { + List<String> searches = new ArrayList<String>(); + String running = ""; + for (String token: this) { + running += token; + searches.add(0, running); + } + return searches; + } + } Deleted: trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/surt/SURTTokenizer2.java =================================================================== --- trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/surt/SURTTokenizer2.java 2008-03-04 04:41:20 UTC (rev 2213) +++ trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/surt/SURTTokenizer2.java 2008-03-04 04:45:10 UTC (rev 2214) @@ -1,201 +0,0 @@ -/* SURTTokenizer - * - * $Id: SURTTokenizer.java 4795 2006-12-12 23:42:09Z paul_jack $ - * - * Created on 3:21:49 PM May 11, 2006. - * - * 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.surt; - -import java.util.Iterator; - -import org.apache.commons.httpclient.URIException; -import org.archive.net.UURI; -import org.archive.net.UURIFactory; -import org.archive.util.ArchiveUtils; -import org.archive.util.SURT; - -import sun.reflect.generics.reflectiveObjects.NotImplementedException; - -/** - * provides iterative Url reduction for prefix matching to find ever coarser - * grained URL-specific configuration. Assumes that a prefix binary search is - * being attempted for each returned value. First value is the entire SURT - * url String, with TAB appended. Second removes CGI ARGs. Then each subsequent - * path segment ('/' separated) is removed. Then the login:password, if present - * is removed. Then the port, if not :80 or omitted on the initial URL. Then - * each subsequent authority segment(. separated) is removed. - * - * the nextSearch() method will return null, finally, when no broader searches - * can be attempted on the URL. - * - * @author brad - * @version $Date: 2006-12-12 15:42:09 -0800 (Tue, 12 Dec 2006) $, $Revision: 4795 $ - */ -public class SURTTokenizer2 { - - public final static String EXACT_SUFFIX = "\t"; - private String remainder; - private boolean triedExact; - private boolean triedFull; - private boolean choppedArgs; - private boolean choppedPath; - private boolean choppedLogin; - private boolean choppedPort; - - public SURTTokenizer2() { - } - - public void setSURT(String surt) { - remainder = getKeyFromSURT(surt, false); - } - - /** - * constructor - * - * @param url String URL - * @throws URIException - */ - public SURTTokenizer2(final String url) throws URIException { - remainder = getKey(url,false); - } - /** - * update internal state and return the next smaller search string - * for the url - * - * @return string to lookup for prefix match for relevant information. - */ - public String nextSearch() { - if(!triedExact) { - triedExact = true; - //remainder = remainder.substring(0,remainder.length()-1); - return remainder + EXACT_SUFFIX; - } - if(!triedFull) { - triedFull = true; - return remainder; - } - if(!choppedArgs) { - choppedArgs = true; - int argStart = remainder.indexOf('?'); - if(argStart != -1) { - remainder = remainder.substring(0,argStart); - return remainder; - } - } - if(!choppedPath) { - int lastSlash = remainder.lastIndexOf('/'); - if(lastSlash != -1) { - remainder = remainder.substring(0,lastSlash); - if(remainder.endsWith(")")) { - remainder = remainder.substring(0,remainder.length()-1); - } - return remainder; - } - choppedPath = true; - } - if(!choppedLogin) { - choppedLogin = true; - int lastAt = remainder.lastIndexOf('@'); - if(lastAt != -1) { - remainder = remainder.substring(0,lastAt); - if(remainder.endsWith(",")) { - remainder = remainder.substring(0,remainder.length()-1); - } - return remainder; - } - } - if(!choppedPort) { - choppedPort = true; - int lastColon = remainder.lastIndexOf(':'); - if(lastColon != -1) { - remainder = remainder.substring(0,lastColon); - if(remainder.endsWith(",")) { - remainder = remainder.substring(0,remainder.length()-1); - } - return remainder; - } - } - // now just remove ','s - int lastComma = remainder.lastIndexOf(','); - if(lastComma == -1) { - return null; - } - remainder = remainder.substring(0,lastComma); - return remainder; - } - - /** - * @param url - * @return String SURT which will match exactly argument url - * @throws URIException - */ - public static String exactKey(String url) throws URIException { - return getKey(url,false); - } - - /** - * @param url - * @return String SURT which will match urls prefixed with the argument url - * @throws URIException - */ - public static String prefixKey(String url) throws URIException { - return getKey(url,true); - } - - private static String getKey(String url, boolean prefix) - throws URIException { - - String key = ArchiveUtils.addImpliedHttpIfNecessary(url); - UURI uuri = UURIFactory.getInstance(key); - key = uuri.getScheme() + "://" + uuri.getAuthority() + - uuri.getEscapedPathQuery(); - - key = SURT.fromURI(key); - key = getKeyFromSURT(key, prefix); - return key; - } - - private static String getKeyFromSURT(String surtKey, boolean prefix) { - int hashPos = surtKey.indexOf('#'); - if(hashPos != -1) { - surtKey = surtKey.substring(0,hashPos); - } - - if(surtKey.startsWith("http://")) { - surtKey = surtKey.substring(7); - } - if(prefix) { - if(surtKey.endsWith(")/")) { - surtKey = surtKey.substring(0,surtKey.length()-2); - } - } - return surtKey; - } - - /** - * Create new SURTTokenizer from a SURT rather than a URL. - */ - public static SURTTokenizer2 newFromSURT(String surt) { - SURTTokenizer2 tok = new SURTTokenizer2(); - tok.setSURT(surt); - return tok; - } -} Modified: trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/accesscontrol/model/RuleSetTest.java =================================================================== --- trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/accesscontrol/model/RuleSetTest.java 2008-03-04 04:41:20 UTC (rev 2213) +++ trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/accesscontrol/model/RuleSetTest.java 2008-03-04 04:45:10 UTC (rev 2214) @@ -14,9 +14,9 @@ public void testSimple() { ruleset = new RuleSet(); ruleset.add(new Rule("robots", "(")); - ruleset.add(new Rule("allow", "(org,archive")); - ruleset.add(new Rule("block", "(org,archive,)/secret")); - ruleset.add(new Rule("allow", "(org,archive,)/secret/public")); + ruleset.add(new Rule("allow", "(org,archive,")); + ruleset.add(new Rule("block", "(org,archive,)/secret/")); + ruleset.add(new Rule("allow", "(org,archive,)/secret/public/")); for (Rule rule: ruleset) { System.out.println(rule.getSurt()); @@ -37,9 +37,9 @@ ruleset = new RuleSet(); ruleset.add(new Rule("robots", "(")); ruleset.add(new Rule("allow", "(")); - ruleset.add(new Rule("block", "(org,archive,)/secret")); - ruleset.add(new Rule("allow", "(org,archive,)/secret/public")); - ruleset.add(new Rule("block", "(org,archive,)/secret/public")); + ruleset.add(new Rule("block", "(org,archive,)/secret/")); + ruleset.add(new Rule("allow", "(org,archive,)/secret/public/")); + ruleset.add(new Rule("block", "(org,archive,)/secret/public/")); assertEquals("allow", ruleset.getMatchingRule("(org", new Date(), new Date(), null).getPolicy()); assertEquals("allow", ruleset.getMatchingRule("(org,archive,)/", new Date(), new Date(), null).getPolicy()); @@ -52,7 +52,7 @@ public void testEmbargo() { ruleset = new RuleSet(); ruleset.add(new Rule("robots", "(")); - ruleset.add(new Rule("allow", "(org,archive")); + ruleset.add(new Rule("allow", "(org,archive,")); ruleset.add(new Rule("block", "(org,archive,)/classified/")); ruleset.add(new Rule("allow", "(org,archive,)/classified/", 60 * 60 * 24 * 90)); @@ -70,9 +70,9 @@ public void testGroup() { ruleset = new RuleSet(); ruleset.add(new Rule("robots", "(")); - ruleset.add(new Rule("allow", "(org,archive", "archivists")); - ruleset.add(new Rule("block", "(org,archive,)/classified")); - ruleset.add(new Rule("allow", "(org,archive,)/classified", "admins")); + ruleset.add(new Rule("allow", "(org,archive,", "archivists")); + ruleset.add(new Rule("block", "(org,archive,)/classified/")); + ruleset.add(new Rule("allow", "(org,archive,)/classified/", "admins")); assertEquals("robots", ruleset.getMatchingRule("(org,archive,www,)/index.html", new Date(), new Date(), "dinosaurs").getPolicy()); assertEquals("allow", ruleset.getMatchingRule("(org,archive,www,)/index.html", new Date(), new Date(), "archivists").getPolicy()); Modified: trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/surt/NewSurtTokenizerTest.java =================================================================== --- trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/surt/NewSurtTokenizerTest.java 2008-03-04 04:41:20 UTC (rev 2213) +++ trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/surt/NewSurtTokenizerTest.java 2008-03-04 04:45:10 UTC (rev 2214) @@ -7,10 +7,10 @@ public class NewSurtTokenizerTest extends TestCase { public void testRoot() { - NewSurtTokenizer tok = new NewSurtTokenizer("("); + NewSurtTokenizer tok = new NewSurtTokenizer("http://("); Iterator<String> it = tok.iterator(); - assertEquals("(", it.next()); + assertEquals("http://(", it.next()); assertFalse(it.hasNext()); } @@ -34,10 +34,10 @@ } public void testFewSegs() { - NewSurtTokenizer tok = new NewSurtTokenizer("(org,archive,www"); + NewSurtTokenizer tok = new NewSurtTokenizer("http://(org,archive,www"); Iterator<String> it = tok.iterator(); - assertEquals("(", it.next()); + assertEquals("http://(", it.next()); assertEquals("org,", it.next()); assertEquals("archive,", it.next()); assertEquals("www", it.next()); @@ -68,10 +68,10 @@ } public void testPage() { - NewSurtTokenizer tok = new NewSurtTokenizer("(org,archive,www,)/about.html"); + NewSurtTokenizer tok = new NewSurtTokenizer("http://(org,archive,www,)/about.html"); Iterator<String> it = tok.iterator(); - assertEquals("(", it.next()); + assertEquals("http://(", it.next()); assertEquals("org,", it.next()); assertEquals("archive,", it.next()); assertEquals("www,", it.next()); @@ -145,10 +145,10 @@ } public void testQueryAnchor() { - NewSurtTokenizer tok = new NewSurtTokenizer("(org,archive,www,)/fishes/pinky.html?moo=yes&bar=12#423"); + NewSurtTokenizer tok = new NewSurtTokenizer("ftp://(org,archive,www,)/fishes/pinky.html?moo=yes&bar=12#423"); Iterator<String> it = tok.iterator(); - assertEquals("(", it.next()); + assertEquals("ftp://(", it.next()); assertEquals("org,", it.next()); assertEquals("archive,", it.next()); assertEquals("www,", it.next()); @@ -185,4 +185,19 @@ } + public void testSearchList() { + NewSurtTokenizer tok = new NewSurtTokenizer("(org,archive,www,)/fishes/pinky.html?moo=yes&bar=12#423"); + Iterator<String> it = tok.getSearchList().iterator(); + + assertEquals("(org,archive,www,)/fishes/pinky.html?moo=yes&bar=12#423", it.next()); + assertEquals("(org,archive,www,)/fishes/pinky.html?moo=yes&bar=12", it.next()); + assertEquals("(org,archive,www,)/fishes/pinky.html", it.next()); + assertEquals("(org,archive,www,)/fishes/", it.next()); + assertEquals("(org,archive,www,)/", it.next()); + assertEquals("(org,archive,www,", it.next()); + assertEquals("(org,archive,", it.next()); + assertEquals("(org,", it.next()); + assertEquals("(", it.next()); + assertFalse(it.hasNext()); + } } Deleted: trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/surt/SURTTokenizer2Test.java =================================================================== --- trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/surt/SURTTokenizer2Test.java 2008-03-04 04:41:20 UTC (rev 2213) +++ trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/surt/SURTTokenizer2Test.java 2008-03-04 04:45:10 UTC (rev 2214) @@ -1,203 +0,0 @@ -/* SURTTokenizerTest - * - * $Id: SURTTokenizerTest.java 5056 2007-04-11 17:15:33Z paul_jack $ - * - * Created on 3:40:18 PM May 11, 2006. - * - * 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.surt; - -import junit.framework.TestCase; - -import org.apache.commons.httpclient.URIException; -import org.archive.surt.SURTTokenizer2; - -/** - * - * - * @author brad - * @version $Date: 2007-04-11 10:15:33 -0700 (Wed, 11 Apr 2007) $, $Revision: 5056 $ - */ -public class SURTTokenizer2Test extends TestCase { - - SURTTokenizer2 tok; - /** - * Test method for 'org.archive.wayback.accesscontrol.SURTTokenizer.nextSearch()' - */ - public void testSimple() { - tok = toSurtT("http://www.archive.org/foo"); - assertEquals("(org,archive,www,)/foo\t",tok.nextSearch()); - assertEquals("(org,archive,www,)/foo",tok.nextSearch()); - assertEquals("(org,archive,www,",tok.nextSearch()); - assertEquals("(org,archive,www",tok.nextSearch()); - assertEquals("(org,archive",tok.nextSearch()); - assertEquals("(org",tok.nextSearch()); - assertNull(tok.nextSearch()); - } - /** test */ - public void testSimpleSurt() { - tok = SURTTokenizer2.newFromSURT("http://(org,archive,www,)/foo"); - assertEquals("(org,archive,www,)/foo\t",tok.nextSearch()); - assertEquals("(org,archive,www,)/foo",tok.nextSearch()); - assertEquals("(org,archive,www,",tok.nextSearch()); - assertEquals("(org,archive,www",tok.nextSearch()); - assertEquals("(org,archive",tok.nextSearch()); - assertEquals("(org",tok.nextSearch()); - assertNull(tok.nextSearch()); - } - /** test */ - public void testSlashPath() { - tok = toSurtT("http://www.archive.org/"); - assertEquals("(org,archive,www,)/\t",tok.nextSearch()); - assertEquals("(org,archive,www,)/",tok.nextSearch()); - assertEquals("(org,archive,www,",tok.nextSearch()); - assertEquals("(org,archive,www",tok.nextSearch()); - assertEquals("(org,archive",tok.nextSearch()); - assertEquals("(org",tok.nextSearch()); - assertNull(tok.nextSearch()); - } - - /** test */ - public void testEmptyPath() { - tok = toSurtT("http://www.archive.org"); - assertEquals("(org,archive,www,)/\t",tok.nextSearch()); - assertEquals("(org,archive,www,)/",tok.nextSearch()); - assertEquals("(org,archive,www,",tok.nextSearch()); - assertEquals("(org,archive,www",tok.nextSearch()); - assertEquals("(org,archive",tok.nextSearch()); - assertEquals("(org",tok.nextSearch()); - assertNull(tok.nextSearch()); - } - - - /** test */ - public void testEmptyPathMore() { - tok = toSurtT("http://brad.www.archive.org"); - assertEquals("(org,archive,www,brad,)/\t",tok.nextSearch()); - assertEquals("(org,archive,www,brad,)/",tok.nextSearch()); - assertEquals("(org,archive,www,brad,",tok.nextSearch()); - assertEquals("(org,archive,www,brad",tok.nextSearch()); - assertEquals("(org,archive,www",tok.nextSearch()); - assertEquals("(org,archive",tok.nextSearch()); - assertEquals("(org",tok.nextSearch()); - assertNull(tok.nextSearch()); - } - /** test */ - public void testLongPathMore() { - tok = toSurtT("http://brad.www.archive.org/one/two"); - assertEquals("( org, archive, www, brad, )/ one/ two\t",tok.nextSearch()); - assertEquals("(org,archive,www,brad,)/one/two",tok.nextSearch()); - assertEquals("(org,archive,www,brad,)/one",tok.nextSearch()); - assertEquals("(org,archive,www,brad,",tok.nextSearch()); - assertEquals("(org,archive,www,brad",tok.nextSearch()); - assertEquals("(org,archive,www",tok.nextSearch()); - assertEquals("(org,archive",tok.nextSearch()); - assertEquals("(org",tok.nextSearch()); - assertNull(tok.nextSearch()); - } - /** test */ - public void testShortPathHash() { - tok = toSurtT("http://www.archive.org/one/two#hash"); - assertEquals("(org,archive,www,)/one/two\t",tok.nextSearch()); - assertEquals("(org,archive,www,)/one/two",tok.nextSearch()); - assertEquals("(org,archive,www,)/one",tok.nextSearch()); - assertEquals("(org,archive,www,",tok.nextSearch()); - assertEquals("(org,archive,www",tok.nextSearch()); - assertEquals("(org,archive",tok.nextSearch()); - assertEquals("(org",tok.nextSearch()); - assertNull(tok.nextSearch()); - } - /** test */ - public void testCGI1() { - tok = toSurtT("http://www.archive.org/cgi?foobar"); - assertEquals("(org,archive,www,)/cgi?foobar\t",tok.nextSearch()); - assertEquals("(org,archive,www,)/cgi?foobar",tok.nextSearch()); - assertEquals("(org,archive,www,)/cgi",tok.nextSearch()); - assertEquals("(org,archive,www,",tok.nextSearch()); - assertEquals("(org,archive,www",tok.nextSearch()); - assertEquals("(org,archive",tok.nextSearch()); - assertEquals("(org",tok.nextSearch()); - assertNull(tok.nextSearch()); - } - /** test */ - public void testPort() { - tok = toSurtT("http://www.archive.org:8080/cgi?foobar"); - assertEquals("(org,archive,www,:8080)/cgi?foobar\t",tok.nextSearch()); - assertEquals("(org,archive,www,:8080)/cgi?foobar",tok.nextSearch()); - assertEquals("(org,archive,www,:8080)/cgi",tok.nextSearch()); - assertEquals("(org,archive,www,:8080",tok.nextSearch()); - assertEquals("(org,archive,www",tok.nextSearch()); - assertEquals("(org,archive",tok.nextSearch()); - assertEquals("(org",tok.nextSearch()); - assertNull(tok.nextSearch()); - } - /** test */ - public void testLogin() { - tok = toSurtT("http://br...@ww.../cgi?foobar"); - assertEquals("(org,archive,www,@brad)/cgi?foobar\t",tok.nextSearch()); - assertEquals("(org,archive,www,@brad)/cgi?foobar",tok.nextSearch()); - assertEquals("(org,archive,www,@brad)/cgi",tok.nextSearch()); - assertEquals("(org,archive,www,@brad",tok.nextSearch()); - assertEquals("(org,archive,www",tok.nextSearch()); - assertEquals("(org,archive",tok.nextSearch()); - assertEquals("(org",tok.nextSearch()); - assertNull(tok.nextSearch()); - } - /** test */ - public void testLoginPass() { - tok = toSurtT("http://brad:pa...@ww.../cgi?foobar"); - assertEquals("(org,archive,www,@brad:pass)/cgi?foobar\t",tok.nextSearch()); - assertEquals("(org,archive,www,@brad:pass)/cgi?foobar",tok.nextSearch()); - assertEquals("(org,archive,www,@brad:pass)/cgi",tok.nextSearch()); - assertEquals("(org,archive,www,@brad:pass",tok.nextSearch()); - assertEquals("(org,archive,www",tok.nextSearch()); - assertEquals("(org,archive",tok.nextSearch()); - assertEquals("(org",tok.nextSearch()); - assertNull(tok.nextSearch()); - } -// /** test */ - // leave this guy out for now: was a bug in Heritrix thus archive-commons - // wait for new jar... -// public void testLoginPassPort() { -// tok = toSurtT("http://brad:pa...@ww...:8080/cgi?foobar"); -// assertEquals("(org,archive,www,:8080@brad:pass)/cgi?foobar\t",tok.nextSearch()); -// assertEquals("(org,archive,www,:8080@brad:pass)/cgi?foobar",tok.nextSearch()); -// assertEquals("(org,archive,www,:8080@brad:pass)/cgi",tok.nextSearch()); -// assertEquals("(org,archive,www,:8080@brad:pass",tok.nextSearch()); -// assertEquals("(org,archive,www,:8080",tok.nextSearch()); -// assertEquals("(org,archive,www",tok.nextSearch()); -// assertEquals("(org,archive",tok.nextSearch()); -// assertEquals("(org",tok.nextSearch()); -// assertNull(tok.nextSearch()); -// } -// - - private SURTTokenizer2 toSurtT(final String u) { - SURTTokenizer2 tok = null; - try { - tok = new SURTTokenizer2(u); - } catch (URIException e) { - e.printStackTrace(); - assertFalse("URL Exception " + e.getLocalizedMessage(),true); - } - return tok; - } - -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <al...@us...> - 2008-03-04 04:41:14
|
Revision: 2213 http://archive-access.svn.sourceforge.net/archive-access/?rev=2213&view=rev Author: alexoz Date: 2008-03-03 20:41:20 -0800 (Mon, 03 Mar 2008) Log Message: ----------- * HibernateRuleDao.java Changed to use new SURT tokenizer. *HibernateRuleDaoTest.java Minor cleanup of imports. Modified Paths: -------------- trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/model/HibernateRuleDao.java trunk/archive-access/projects/access-control/oracle/src/test/java/org/archive/accesscontrol/model/HibernateRuleDaoTest.java Modified: trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/model/HibernateRuleDao.java =================================================================== --- trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/model/HibernateRuleDao.java 2008-03-04 04:40:21 UTC (rev 2212) +++ trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/model/HibernateRuleDao.java 2008-03-04 04:41:20 UTC (rev 2213) @@ -3,9 +3,8 @@ import java.util.Collection; import java.util.List; -import org.apache.commons.httpclient.URIException; import org.archive.accesscontrol.RuleDao; -import org.archive.surt.SURTTokenizer2; +import org.archive.surt.NewSurtTokenizer; import org.hibernate.Session; import org.hibernate.Transaction; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; @@ -59,17 +58,13 @@ // add the root SURT rules.addAll(getRulesWithExactSurt("(")); - // now pull out all of the requested branch and a path to the root - SURTTokenizer2 tok = SURTTokenizer2.newFromSURT(surt); - while (true) { - String search = tok.nextSearch(); - if (search == null) break; - - if (!search.endsWith(SURTTokenizer2.EXACT_SUFFIX)) { - rules.addAll(getRulesWithExactSurt(search)); + boolean first = true; + for (String search: new NewSurtTokenizer(surt).getSearchList()) { + if (first) { + first = false; + rules.addAll(getRulesWithSurtPrefix(search)); } else { - rules.addAll(getRulesWithSurtPrefix(search.substring(0, search.length() - 1))); - tok.nextSearch(); // skip the duplicate exact-match + rules.addAll(getRulesWithExactSurt(search)); } } Modified: trunk/archive-access/projects/access-control/oracle/src/test/java/org/archive/accesscontrol/model/HibernateRuleDaoTest.java =================================================================== --- trunk/archive-access/projects/access-control/oracle/src/test/java/org/archive/accesscontrol/model/HibernateRuleDaoTest.java 2008-03-04 04:40:21 UTC (rev 2212) +++ trunk/archive-access/projects/access-control/oracle/src/test/java/org/archive/accesscontrol/model/HibernateRuleDaoTest.java 2008-03-04 04:41:20 UTC (rev 2213) @@ -1,9 +1,6 @@ package org.archive.accesscontrol.model; -import java.util.Iterator; import java.util.List; -import java.util.SortedSet; - import org.archive.accesscontrol.model.HibernateRuleDao; import org.archive.accesscontrol.model.Rule; import org.archive.accesscontrol.model.RuleChange; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <al...@us...> - 2008-03-04 04:41:04
|
Revision: 2212 http://archive-access.svn.sourceforge.net/archive-access/?rev=2212&view=rev Author: alexoz Date: 2008-03-03 20:40:21 -0800 (Mon, 03 Mar 2008) Log Message: ----------- * AdminController.java, list_rules.jsp Fixed the ability to add new rules. Added the ability to delete rules and cancel editing a rule. * admin.css Added style to right-align primary buttons and left-align secondary buttons. Modified Paths: -------------- trunk/archive-access/projects/access-control/oracle/.classpath trunk/archive-access/projects/access-control/oracle/.project trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/oracle/AutoFormatView.java trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/webui/AdminController.java trunk/archive-access/projects/access-control/oracle/src/main/webapp/WEB-INF/views/list_rules.jsp trunk/archive-access/projects/access-control/oracle/src/main/webapp/css/admin.css Modified: trunk/archive-access/projects/access-control/oracle/.classpath =================================================================== --- trunk/archive-access/projects/access-control/oracle/.classpath 2008-03-01 02:05:29 UTC (rev 2211) +++ trunk/archive-access/projects/access-control/oracle/.classpath 2008-03-04 04:40:21 UTC (rev 2212) @@ -4,62 +4,62 @@ <classpathentry kind="src" path="src/test/resources" output="target/test-classes" excluding="**/*.java"/> <classpathentry kind="output" path="target/classes"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> - <classpathentry kind="var" path="M2_REPO/ant/ant/1.5/ant-1.5.jar"/> - <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"/> - <classpathentry kind="var" path="M2_REPO/commons-cli/commons-cli/1.0/commons-cli-1.0.jar"/> - <classpathentry kind="var" path="M2_REPO/it/unimi/dsi/mg4j/1.0.1/mg4j-1.0.1.jar"/> - <classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.3.1/commons-io-1.3.1.jar"/> - <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/> + <classpathentry kind="var" path="M2_REPO/org/gnu/inet/libidn/0.6.5/libidn-0.6.5.jar"/> + <classpathentry kind="src" path="/access-control"/> + <classpathentry kind="var" path="M2_REPO/fastutil/fastutil/5.0.7/fastutil-5.0.7.jar"/> + <classpathentry kind="var" path="M2_REPO/org/springframework/spring-webmvc/2.5.1/spring-webmvc-2.5.1.jar"/> + <classpathentry kind="var" path="M2_REPO/asm/asm/1.5.3/asm-1.5.3.jar"/> + <classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.1/commons-lang-2.1.jar"/> + <classpathentry kind="var" path="M2_REPO/org/springframework/spring-core/2.5.1/spring-core-2.5.1.jar"/> <classpathentry kind="var" path="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar"/> + <classpathentry kind="var" path="M2_REPO/org/springframework/spring-context/2.5.1/spring-context-2.5.1.jar"/> + <classpathentry kind="var" path="M2_REPO/org/dnsjava/dnsjava/2.0.3/dnsjava-2.0.3.jar"/> + <classpathentry kind="var" path="M2_REPO/org/springframework/spring-orm/2.5.1/spring-orm-2.5.1.jar"/> + <classpathentry kind="var" path="M2_REPO/org/archive/overlays/archive-overlay-commons-httpclient/3.1/archive-overlay-commons-httpclient-3.1.jar"/> <classpathentry kind="var" path="M2_REPO/org/archive/overlays/archive-overlay-commons-pool/1.3/archive-overlay-commons-pool-1.3.jar"/> - <classpathentry kind="var" path="M2_REPO/commons-pool/commons-pool/1.3/commons-pool-1.3.jar"/> - <classpathentry kind="var" path="M2_REPO/com/lowagie/itext/1.3/itext-1.3.jar"/> - <classpathentry kind="var" path="M2_REPO/org/springframework/spring-webmvc/2.5.1/spring-webmvc-2.5.1.jar"/> <classpathentry kind="var" path="M2_REPO/asm/asm-attrs/1.5.3/asm-attrs-1.5.3.jar"/> - <classpathentry kind="var" path="M2_REPO/org/springframework/spring-web/2.5.1/spring-web-2.5.1.jar"/> - <classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.4/servlet-api-2.4.jar"/> - <classpathentry kind="var" path="M2_REPO/fastutil/fastutil/5.0.7/fastutil-5.0.7.jar"/> - <classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.1/commons-lang-2.1.jar"/> - <classpathentry kind="var" path="M2_REPO/poi/poi/2.5.1-final-20040804/poi-2.5.1-final-20040804.jar"/> - <classpathentry kind="var" path="M2_REPO/org/springframework/spring-context-support/2.5.1/spring-context-support-2.5.1.jar"/> - <classpathentry kind="var" path="M2_REPO/org/tuckey/urlrewritefilter/3.0.4/urlrewritefilter-3.0.4.jar"/> - <classpathentry kind="var" path="M2_REPO/com/anotherbigidea/javaswf/CVS-SNAPSHOT-1/javaswf-CVS-SNAPSHOT-1.jar"/> - <classpathentry kind="var" path="M2_REPO/org/springframework/spring-tx/2.5.1/spring-tx-2.5.1.jar"/> + <classpathentry kind="var" path="M2_REPO/mx4j/mx4j-tools/3.0.1/mx4j-tools-3.0.1.jar"/> + <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"/> + <classpathentry kind="var" path="M2_REPO/commons-codec/commons-codec/1.3/commons-codec-1.3.jar"/> <classpathentry kind="var" path="M2_REPO/oro/oro/2.0.8/oro-2.0.8.jar"/> - <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate/3.2.5.ga/hibernate-3.2.5.ga.jar"/> - <classpathentry kind="var" path="M2_REPO/commons-dbcp/commons-dbcp/1.2.2/commons-dbcp-1.2.2.jar"/> - <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.3.4.O/xpp3_min-1.1.3.4.O.jar"/> <classpathentry kind="var" path="M2_REPO/net/java/dev/jets3t/jets3t/0.5.0/jets3t-0.5.0.jar"/> - <classpathentry kind="var" path="M2_REPO/mx4j/mx4j-tools/3.0.1/mx4j-tools-3.0.1.jar"/> - <classpathentry kind="var" path="M2_REPO/org/archive/overlays/archive-overlay-commons-httpclient/3.1/archive-overlay-commons-httpclient-3.1.jar"/> - <classpathentry kind="var" path="M2_REPO/berkeleydb/je/3.2.44/je-3.2.44.jar"/> + <classpathentry kind="var" path="M2_REPO/com/anotherbigidea/javaswf/CVS-SNAPSHOT-1/javaswf-CVS-SNAPSHOT-1.jar"/> + <classpathentry kind="var" path="M2_REPO/net/htmlparser/jericho/jericho-html/2.3/jericho-html-2.3.jar"/> + <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/> + <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.2.2/xstream-1.2.2.jar"/> + <classpathentry kind="var" path="M2_REPO/org/springframework/spring-context-support/2.5.1/spring-context-support-2.5.1.jar"/> <classpathentry kind="var" path="M2_REPO/org/springframework/spring-beans/2.5.1/spring-beans-2.5.1.jar"/> - <classpathentry kind="var" path="M2_REPO/org/archive/heritrix/commons/2.0.1-SNAPSHOT/commons-2.0.1-SNAPSHOT.jar"/> - <classpathentry kind="var" path="M2_REPO/asm/asm/1.5.3/asm-1.5.3.jar"/> + <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.3.4.O/xpp3_min-1.1.3.4.O.jar"/> <classpathentry kind="var" path="M2_REPO/commons-net/commons-net/1.4.1/commons-net-1.4.1.jar"/> - <classpathentry kind="src" path="/access-control"/> - <classpathentry kind="var" path="M2_REPO/taglibs/standard/1.1.2/standard-1.1.2.jar"/> - <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.2.2/xstream-1.2.2.jar"/> <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar"/> - <classpathentry kind="var" path="M2_REPO/org/springframework/spring-orm/2.5.1/spring-orm-2.5.1.jar"/> + <classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.3.1/commons-io-1.3.1.jar"/> + <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate/3.2.5.ga/hibernate-3.2.5.ga.jar"/> <classpathentry kind="var" path="M2_REPO/junit/junit/4.4/junit-4.4.jar"/> - <classpathentry kind="var" path="M2_REPO/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar"/> + <classpathentry kind="var" path="M2_REPO/org/springframework/spring-jdbc/2.5.1/spring-jdbc-2.5.1.jar"/> + <classpathentry kind="var" path="M2_REPO/cglib/cglib/2.1_3/cglib-2.1_3.jar"/> <classpathentry kind="var" path="M2_REPO/javax/servlet/jstl/1.1.2/jstl-1.1.2.jar"/> + <classpathentry kind="var" path="M2_REPO/poi/poi-scratchpad/2.5.1-final-20040804/poi-scratchpad-2.5.1-final-20040804.jar"/> + <classpathentry kind="var" path="M2_REPO/org/tuckey/urlrewritefilter/3.0.4/urlrewritefilter-3.0.4.jar"/> <classpathentry kind="var" path="M2_REPO/org/apache/velocity/velocity/1.5/velocity-1.5.jar"/> - <classpathentry kind="var" path="M2_REPO/net/sf/ehcache/ehcache/1.2.3/ehcache-1.2.3.jar"/> - <classpathentry kind="var" path="M2_REPO/hsqldb/hsqldb/1.8.0.7/hsqldb-1.8.0.7.jar"/> - <classpathentry kind="var" path="M2_REPO/cglib/cglib/2.1_3/cglib-2.1_3.jar"/> + <classpathentry kind="var" path="M2_REPO/poi/poi/2.5.1-final-20040804/poi-2.5.1-final-20040804.jar"/> + <classpathentry kind="var" path="M2_REPO/org/codehaus/jettison/jettison/1.0-beta-1/jettison-1.0-beta-1.jar"/> + <classpathentry kind="var" path="M2_REPO/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar"/> <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"/> - <classpathentry kind="var" path="M2_REPO/org/springframework/spring-core/2.5.1/spring-core-2.5.1.jar"/> - <classpathentry kind="var" path="M2_REPO/poi/poi-scratchpad/2.5.1-final-20040804/poi-scratchpad-2.5.1-final-20040804.jar"/> - <classpathentry kind="var" path="M2_REPO/commons-codec/commons-codec/1.3/commons-codec-1.3.jar"/> - <classpathentry kind="var" path="M2_REPO/org/springframework/spring-jdbc/2.5.1/spring-jdbc-2.5.1.jar"/> - <classpathentry kind="var" path="M2_REPO/org/gnu/inet/libidn/0.6.5/libidn-0.6.5.jar"/> - <classpathentry kind="var" path="M2_REPO/net/htmlparser/jericho/jericho-html/2.3/jericho-html-2.3.jar"/> - <classpathentry kind="var" path="M2_REPO/org/springframework/spring-context/2.5.1/spring-context-2.5.1.jar"/> + <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.8/log4j-1.2.8.jar"/> + <classpathentry kind="var" path="M2_REPO/it/unimi/dsi/mg4j/1.0.1/mg4j-1.0.1.jar"/> + <classpathentry kind="var" path="M2_REPO/org/springframework/spring-tx/2.5.1/spring-tx-2.5.1.jar"/> <classpathentry kind="var" path="M2_REPO/postgresql/postgresql/8.2-504.jdbc3/postgresql-8.2-504.jdbc3.jar"/> - <classpathentry kind="var" path="M2_REPO/org/codehaus/jettison/jettison/1.0-beta-1/jettison-1.0-beta-1.jar"/> + <classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.4/servlet-api-2.4.jar"/> + <classpathentry kind="var" path="M2_REPO/org/springframework/spring-web/2.5.1/spring-web-2.5.1.jar"/> + <classpathentry kind="var" path="M2_REPO/berkeleydb/je/3.2.44/je-3.2.44.jar"/> + <classpathentry kind="var" path="M2_REPO/taglibs/standard/1.1.2/standard-1.1.2.jar"/> + <classpathentry kind="var" path="M2_REPO/org/archive/heritrix/commons/2.0.1-SNAPSHOT/commons-2.0.1-SNAPSHOT.jar"/> + <classpathentry kind="var" path="M2_REPO/commons-dbcp/commons-dbcp/1.2.2/commons-dbcp-1.2.2.jar"/> + <classpathentry kind="var" path="M2_REPO/ant/ant/1.5/ant-1.5.jar"/> + <classpathentry kind="var" path="M2_REPO/com/lowagie/itext/1.3/itext-1.3.jar"/> + <classpathentry kind="var" path="M2_REPO/hsqldb/hsqldb/1.8.0.7/hsqldb-1.8.0.7.jar"/> + <classpathentry kind="var" path="M2_REPO/commons-pool/commons-pool/1.3/commons-pool-1.3.jar"/> <classpathentry kind="var" path="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar"/> - <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.8/log4j-1.2.8.jar"/> - <classpathentry kind="var" path="M2_REPO/org/dnsjava/dnsjava/2.0.3/dnsjava-2.0.3.jar"/> + <classpathentry kind="var" path="M2_REPO/net/sf/ehcache/ehcache/1.2.3/ehcache-1.2.3.jar"/> + <classpathentry kind="var" path="M2_REPO/commons-cli/commons-cli/1.0/commons-cli-1.0.jar"/> </classpath> \ No newline at end of file Modified: trunk/archive-access/projects/access-control/oracle/.project =================================================================== --- trunk/archive-access/projects/access-control/oracle/.project 2008-03-01 02:05:29 UTC (rev 2211) +++ trunk/archive-access/projects/access-control/oracle/.project 2008-03-04 04:40:21 UTC (rev 2212) @@ -14,11 +14,15 @@ <buildCommand> <name>org.eclipse.wst.validation.validationbuilder</name> </buildCommand> + <buildCommand> + <name>org.maven.ide.eclipse.maven2Builder</name> + </buildCommand> </buildSpec> <natures> <nature>org.eclipse.wst.common.project.facet.core.nature</nature> <nature>org.eclipse.jdt.core.javanature</nature> <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature> <nature>org.eclipse.jem.workbench.JavaEMFNature</nature> + <nature>org.maven.ide.eclipse.maven2Nature</nature> </natures> </projectDescription> \ No newline at end of file Modified: trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/oracle/AutoFormatView.java =================================================================== --- trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/oracle/AutoFormatView.java 2008-03-01 02:05:29 UTC (rev 2211) +++ trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/oracle/AutoFormatView.java 2008-03-04 04:40:21 UTC (rev 2212) @@ -1,7 +1,6 @@ package org.archive.accesscontrol.oracle; import java.io.IOException; -import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; @@ -9,9 +8,6 @@ import org.springframework.web.servlet.View; -import com.thoughtworks.xstream.XStream; -import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver; - /** * AutoFormatView renders an object to XML or JSON, depending on whether a * "format" parameter or attribute was supplied. Modified: trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/webui/AdminController.java =================================================================== --- trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/webui/AdminController.java 2008-03-01 02:05:29 UTC (rev 2211) +++ trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/webui/AdminController.java 2008-03-04 04:40:21 UTC (rev 2212) @@ -1,5 +1,6 @@ package org.archive.accesscontrol.webui; +import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.text.DateFormat; import java.text.ParseException; @@ -8,22 +9,16 @@ import java.util.Collections; import java.util.Date; import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; import java.util.Map; -import java.util.Set; import java.util.TimeZone; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.apache.commons.httpclient.URIException; import org.archive.accesscontrol.model.HibernateRuleDao; import org.archive.accesscontrol.model.Rule; import org.archive.accesscontrol.model.RuleSet; import org.archive.surt.NewSurtTokenizer; -import org.archive.surt.SURTTokenizer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController; @@ -31,6 +26,7 @@ public class AdminController extends AbstractController { private HibernateRuleDao ruleDao; private static final DateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + private static final long NEW_RULE = -1L; static { dateFormatter.setTimeZone(TimeZone.getTimeZone("GMT")); } @@ -44,10 +40,15 @@ HttpServletResponse response) throws Exception { Long editingRuleId = null; if (request.getParameter("edit") != null) { - try { - editingRuleId = Long.decode(request.getParameter("edit")); - } catch (NumberFormatException e) { + if (request.getParameter("edit").equals("new")) { + editingRuleId = NEW_RULE; + } else { + try { + editingRuleId = Long.decode(request.getParameter("edit")); + } catch (NumberFormatException e) { + } } + } return ruleList(surt, editingRuleId, request, response); } @@ -79,6 +80,16 @@ } Collections.sort(ruleList); + if (editingRuleId != null && editingRuleId == NEW_RULE) { + Rule rule = new Rule(); + rule.setId(NEW_RULE); + rule.setSurt(surt); + + DisplayRule newRule = new DisplayRule(rule, false); + newRule.setEditing(true); + ruleList.add(newRule); + } + ArrayList<String> childSurtsList = new ArrayList<String>(childSurts); Collections.sort(childSurtsList); @@ -91,19 +102,33 @@ return new ModelAndView("list_rules", model); } + protected ModelAndView redirectToSurt(HttpServletRequest request, HttpServletResponse response, String surt) throws UnsupportedEncodingException { + response.setHeader("Location", request.getContextPath() + "/admin?surt=" + URLEncoder.encode(surt, "UTF-8")); + response.setStatus(302); + return null; + } + @Override protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { if (request.getParameter("saveRule") != null) { return saveRule(request, response); } + - String surt = (String) request.getAttribute("id"); if (surt == null) { surt = request.getParameter("surt"); } + if (request.getParameter("cancel") != null) { + return redirectToSurt(request, response, surt); + } + + if (request.getParameter("delete") != null) { + return deleteRule(request, response); + } + if (surt != null) { return ruleList(surt, request, response); } @@ -111,11 +136,24 @@ return new ModelAndView("index"); } + private ModelAndView deleteRule(HttpServletRequest request, + HttpServletResponse response) throws UnsupportedEncodingException { + Long ruleId = Long.decode(request.getParameter("edit")); + ruleDao.deleteRule(ruleId); + return redirectToSurt(request, response, request.getParameter("surt")); + } + private ModelAndView saveRule(HttpServletRequest request, HttpServletResponse response) throws Exception { String surt = request.getParameter("surt"); + + Rule rule; Long ruleId = Long.decode(request.getParameter("edit")); - Rule rule = ruleDao.getRule(ruleId); + if (ruleId == NEW_RULE) { + rule = new Rule(); + } else { + rule = ruleDao.getRule(ruleId); + } rule.setSurt(surt); rule.setPolicy(request.getParameter("policy")); rule.setWho(request.getParameter("who")); @@ -126,9 +164,7 @@ rule.setSecondsSinceCapture(parseInteger(request.getParameter("secondsSinceCapture"))); ruleDao.saveRule(rule); - response.setHeader("Location", request.getContextPath() + "/admin?surt=" + URLEncoder.encode(surt, "UTF-8")); - response.setStatus(302); - return null; + return redirectToSurt(request, response, surt); } private Date parseDate(String s) { Modified: trunk/archive-access/projects/access-control/oracle/src/main/webapp/WEB-INF/views/list_rules.jsp =================================================================== --- trunk/archive-access/projects/access-control/oracle/src/main/webapp/WEB-INF/views/list_rules.jsp 2008-03-01 02:05:29 UTC (rev 2211) +++ trunk/archive-access/projects/access-control/oracle/src/main/webapp/WEB-INF/views/list_rules.jsp 2008-03-04 04:40:21 UTC (rev 2212) @@ -68,7 +68,16 @@ <p><label for="policy">Policy:</label> <input name="policy" id="policy" value="<c:out value="${rule.rule.policy}"/>" /></p> - <input type="submit" value="Save" name="saveRule" /></fieldset> + + <div class="altButtons"> + <input type="submit" value="Delete Rule" name="delete" /> + </div> + + <div class="priButtons"> + <input type="submit" value="Save" name="saveRule" /> + <input type="submit" value="Cancel" name="cancel" /> + </div> + </fieldset> </form> <script type="text/javascript"> setupDateRangeCalendars("captureStart", "captureEnd"); Modified: trunk/archive-access/projects/access-control/oracle/src/main/webapp/css/admin.css =================================================================== --- trunk/archive-access/projects/access-control/oracle/src/main/webapp/css/admin.css 2008-03-01 02:05:29 UTC (rev 2211) +++ trunk/archive-access/projects/access-control/oracle/src/main/webapp/css/admin.css 2008-03-04 04:40:21 UTC (rev 2212) @@ -62,4 +62,12 @@ } table { clear: both; +} + +.altButtons { + float: left; +} + +.priButtons { + float: right; } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bra...@us...> - 2008-03-01 02:05:24
|
Revision: 2211 http://archive-access.svn.sourceforge.net/archive-access/?rev=2211&view=rev Author: bradtofel Date: 2008-02-29 18:05:29 -0800 (Fri, 29 Feb 2008) Log Message: ----------- INITIAL REV: Wayback Exclusion interface to use the access-control "Oracle" Added Paths: ----------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/accesscontrol/oracleclient/ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/accesscontrol/oracleclient/OracleExclusionFilter.java trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/accesscontrol/oracleclient/OracleExclusionFilterFactory.java Added: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/accesscontrol/oracleclient/OracleExclusionFilter.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/accesscontrol/oracleclient/OracleExclusionFilter.java (rev 0) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/accesscontrol/oracleclient/OracleExclusionFilter.java 2008-03-01 02:05:29 UTC (rev 2211) @@ -0,0 +1,71 @@ +package org.archive.wayback.accesscontrol.oracleclient; + +import java.util.Date; + +import org.archive.accesscontrol.AccessControlClient; +import org.archive.accesscontrol.RobotsUnavailableException; +import org.archive.accesscontrol.RuleOracleUnavailableException; +import org.archive.util.ArchiveUtils; +import org.archive.wayback.WaybackConstants; +import org.archive.wayback.core.SearchResult; +import org.archive.wayback.core.Timestamp; +import org.archive.wayback.util.ObjectFilter; + +public class OracleExclusionFilter implements ObjectFilter<SearchResult> { + ObjectFilter<SearchResult> robotFilter = null; + AccessControlClient client = null; + private String accessGroup = null; + + private final static String POLICY_ALLOW = "allow"; + private final static String POLICY_BLOCK = "block"; + private final static String POLICY_ROBOT = "robots"; + + + public OracleExclusionFilter(String oracleUrl, String accessGroup) { + client = new AccessControlClient(oracleUrl); + this.accessGroup = accessGroup; + } + + + public int filterObject(SearchResult o) { + String url = o.get(WaybackConstants.RESULT_URL); + Date captureDate = Timestamp.parseBefore( + o.get(WaybackConstants.RESULT_CAPTURE_DATE)).getDate(); + Date retrievalDate = new Date(); + + String policy; + try { + policy = client.getPolicy(ArchiveUtils.addImpliedHttpIfNecessary(url), captureDate, retrievalDate, + accessGroup); + if(policy != null) { + if(policy.equals(POLICY_ALLOW)) { + return FILTER_INCLUDE; + } else if(policy.equals(POLICY_BLOCK)) { + return FILTER_EXCLUDE; + } else if(policy.equals(POLICY_ROBOT)) { + return FILTER_INCLUDE; +// if(robotFilter != null) { +// return robotFilter.filterObject(o); +// } else { +// return FILTER_EXCLUDE; +// } + } + } + } catch (RobotsUnavailableException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (RuleOracleUnavailableException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return FILTER_EXCLUDE; + } + + public ObjectFilter<SearchResult> getRobotFilter() { + return robotFilter; + } + + public void setRobotFilter(ObjectFilter<SearchResult> robotFilter) { + this.robotFilter = robotFilter; + } +} Added: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/accesscontrol/oracleclient/OracleExclusionFilterFactory.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/accesscontrol/oracleclient/OracleExclusionFilterFactory.java (rev 0) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/accesscontrol/oracleclient/OracleExclusionFilterFactory.java 2008-03-01 02:05:29 UTC (rev 2211) @@ -0,0 +1,51 @@ +package org.archive.wayback.accesscontrol.oracleclient; + +import org.archive.wayback.accesscontrol.ExclusionFilterFactory; +import org.archive.wayback.accesscontrol.robotstxt.RobotExclusionFilterFactory; +import org.archive.wayback.core.SearchResult; +import org.archive.wayback.util.ObjectFilter; + +public class OracleExclusionFilterFactory implements ExclusionFilterFactory { + + private RobotExclusionFilterFactory robotFactory = null; + private String oracleUrl = null; + private String accessGroup = null; + + public ObjectFilter<SearchResult> get() { + OracleExclusionFilter filter = new OracleExclusionFilter(oracleUrl, + accessGroup); + if(robotFactory != null) { + filter.setRobotFilter(robotFactory.get()); + } + return filter; + } + + public void shutdown() { + // no-op... yet.. + } + + public RobotExclusionFilterFactory getRobotFactory() { + return robotFactory; + } + + public void setRobotFactory(RobotExclusionFilterFactory robotFactory) { + this.robotFactory = robotFactory; + } + + public String getOracleUrl() { + return oracleUrl; + } + + public void setOracleUrl(String oracleUrl) { + this.oracleUrl = oracleUrl; + } + + public String getAccessGroup() { + return accessGroup; + } + + public void setAccessGroup(String accessGroup) { + this.accessGroup = accessGroup; + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
Revision: 2210 http://archive-access.svn.sourceforge.net/archive-access/?rev=2210&view=rev Author: bradtofel Date: 2008-02-29 18:03:30 -0800 (Fri, 29 Feb 2008) Log Message: ----------- BUGFIX: (ACC-13) now includes .warc.gz and .warc files in sync FEATURE: now supports "stream" option, which give a lot more flexibility in integrating location-client with other processes, and is much more efficient than multiple one-shot invocations of location-client. Modified Paths: -------------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/http/FileLocationDBClient.java Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/http/FileLocationDBClient.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/http/FileLocationDBClient.java 2008-03-01 01:59:24 UTC (rev 2209) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/http/FileLocationDBClient.java 2008-03-01 02:03:30 UTC (rev 2210) @@ -24,9 +24,11 @@ */ package org.archive.wayback.resourcestore.http; +import java.io.BufferedReader; import java.io.File; import java.io.FileFilter; import java.io.IOException; +import java.io.InputStreamReader; import java.util.Arrays; import java.util.Iterator; import java.util.logging.Logger; @@ -51,6 +53,8 @@ private final static String ARC_SUFFIX = ".arc"; private final static String ARC_GZ_SUFFIX = ".arc.gz"; + private final static String WARC_SUFFIX = ".warc"; + private final static String WARC_GZ_SUFFIX = ".warc.gz"; private final static String OK_RESPONSE_PREFIX = "OK "; private HttpClient client = null; @@ -228,7 +232,14 @@ "\n" + "\t mark-range LOCATION-DB-URL START END\n" + "\t\temit to STDOUT one line with the name of all ARC files\n" + - "\t\tadded to the locationDB between marks START and END\n"); + "\t\tadded to the locationDB between marks START and END\n" + + "\n" + + "\t add-stream LOCATION-DB-URL\n" + + "\t\tread lines from STDIN formatted like:\n" + + "\t\t\tNAME<SPACE>URL\n" + + "\t\tand for each line, inform locationDB that file NAME is\n" + + "\t\tlocated at URL\n" + ); System.exit(2); } @@ -236,142 +247,170 @@ * @param args */ public static void main(String[] args) { - if(args.length < 3) { + if(args.length < 2) { USAGE(""); System.exit(1); } String operation = args[0]; String url = args[1]; - String arc = args[2]; if(!url.startsWith("http://")) { USAGE("URL argument 1 must begin with http://"); } - FileLocationDBClient locationClient = new FileLocationDBClient(url); - if(operation.equalsIgnoreCase("lookup")) { - if(args.length < 3) { - USAGE("lookup LOCATION-URL ARC"); - } + FileLocationDBClient locationClient = new FileLocationDBClient(url); + + if(operation.equalsIgnoreCase("add-stream")) { + BufferedReader r = new BufferedReader( + new InputStreamReader(System.in)); + String line; try { - String[] locations = locationClient.arcToUrls(arc); - if(locations == null) { - System.err.println("No locations for " + arc); - System.exit(1); + while((line = r.readLine()) != null) { + String parts[] = line.split(" "); + if(parts.length != 2) { + System.err.println("Bad input(" + line + ")"); + System.exit(2); + } + locationClient.addArcUrl(parts[0],parts[1]); + System.out.println("Added\t" + parts[0] + "\t" + parts[1]); } - for(int i=0; i <locations.length; i++) { - System.out.println(locations[i]); - } } catch (IOException e) { - System.err.println(e.getMessage()); + e.printStackTrace(); System.exit(1); } - } else if(operation.equalsIgnoreCase("get-mark")) { - if(args.length != 2) { - USAGE("get-mark LOCATION-URL"); - } - try { - long mark = locationClient.getCurrentMark(); - System.out.println(mark); - } catch (IOException e) { - System.err.println(e.getMessage()); + } else { + if(args.length < 3) { + USAGE(""); System.exit(1); } - - } else if(operation.equalsIgnoreCase("mark-range")) { - if(args.length != 4) { - USAGE("mark-range LOCATION-URL START END"); - } - long start = Long.parseLong(args[3]); - long end = Long.parseLong(args[4]); - try { - Iterator<String> it = - locationClient.getArcsBetweenMarks(start,end); - while(it.hasNext()) { - String next = (String) it.next(); - System.out.println(next); + String arc = args[2]; + if(operation.equalsIgnoreCase("lookup")) { + if(args.length < 3) { + USAGE("lookup LOCATION-URL ARC"); } - } catch (IOException e) { - System.err.println(e.getMessage()); - System.exit(1); - } - - - } else if(operation.equalsIgnoreCase("add")) { - if(args.length != 4) { - USAGE("add LOCATION-URL ARC ARC-URL"); - } - String arcUrl = args[3]; - if(!arcUrl.startsWith("http://")) { - USAGE("ARC-URL argument 4 must begin with http://"); - } - try { - locationClient.addArcUrl(arc,arcUrl); - System.out.println("OK"); - } catch (IOException e) { - System.err.println(e.getMessage()); - System.exit(1); - } - - } else if(operation.equalsIgnoreCase("remove")) { - - if(args.length != 4) { - USAGE("remove LOCATION-URL ARC ARC-URL"); - } - String arcUrl = args[3]; - if(!arcUrl.startsWith("http://")) { - USAGE("ARC-URL argument 4 must begin with http://"); - } - try { - locationClient.removeArcUrl(arc,arcUrl); - System.out.println("OK"); - } catch (IOException e) { - System.err.println(e.getMessage()); - System.exit(1); - } - - } else if(operation.equalsIgnoreCase("sync")) { - - if(args.length != 4) { - USAGE("sync LOCATION-URL DIR DIR-URL"); - } - File dir = new File(arc); - String dirUrl = args[3]; - if(!dirUrl.startsWith("http://")) { - USAGE("DIR-URL argument 4 must begin with http://"); - } - try { - if(!dir.isDirectory()) { - USAGE("DIR " + arc + " is not a directory"); + try { + String[] locations = locationClient.arcToUrls(arc); + if(locations == null) { + System.err.println("No locations for " + arc); + System.exit(1); + } + for(int i=0; i <locations.length; i++) { + System.out.println(locations[i]); + } + } catch (IOException e) { + System.err.println(e.getMessage()); + System.exit(1); } - FileFilter filter = new FileFilter() { - public boolean accept(File daFile) { - return daFile.isFile() && - (daFile.getName().endsWith(ARC_SUFFIX) || - daFile.getName().endsWith(ARC_GZ_SUFFIX)); + } else if(operation.equalsIgnoreCase("get-mark")) { + if(args.length != 2) { + USAGE("get-mark LOCATION-URL"); + } + try { + long mark = locationClient.getCurrentMark(); + System.out.println(mark); + } catch (IOException e) { + System.err.println(e.getMessage()); + System.exit(1); + } + + } else if(operation.equalsIgnoreCase("mark-range")) { + if(args.length != 4) { + USAGE("mark-range LOCATION-URL START END"); + } + long start = Long.parseLong(args[3]); + long end = Long.parseLong(args[4]); + try { + Iterator<String> it = + locationClient.getArcsBetweenMarks(start,end); + while(it.hasNext()) { + String next = (String) it.next(); + System.out.println(next); } - }; + } catch (IOException e) { + System.err.println(e.getMessage()); + System.exit(1); + } - File[] arcs = dir.listFiles(filter); - if(arcs == null) { - throw new IOException("Directory " + dir.getAbsolutePath() + - " is not a directory or had an IO error"); + + } else if(operation.equalsIgnoreCase("add")) { + if(args.length != 4) { + USAGE("add LOCATION-URL ARC ARC-URL"); } - for(int i = 0; i < arcs.length; i++) { - File arcFile = arcs[i]; - String arcName = arcFile.getName(); - String arcUrl = dirUrl + arcName; - LOGGER.info("Adding location " + arcUrl + " for arc " + arcName); - locationClient.addArcUrl(arcName,arcUrl); + String arcUrl = args[3]; + if(!arcUrl.startsWith("http://")) { + USAGE("ARC-URL argument 4 must begin with http://"); } - } catch (IOException e) { - System.err.println(e.getMessage()); - System.exit(1); + try { + locationClient.addArcUrl(arc,arcUrl); + System.out.println("OK"); + } catch (IOException e) { + System.err.println(e.getMessage()); + System.exit(1); + } + + } else if(operation.equalsIgnoreCase("remove")) { + + if(args.length != 4) { + USAGE("remove LOCATION-URL ARC ARC-URL"); + } + String arcUrl = args[3]; + if(!arcUrl.startsWith("http://")) { + USAGE("ARC-URL argument 4 must begin with http://"); + } + try { + locationClient.removeArcUrl(arc,arcUrl); + System.out.println("OK"); + } catch (IOException e) { + System.err.println(e.getMessage()); + System.exit(1); + } + + } else if(operation.equalsIgnoreCase("sync")) { + + if(args.length != 4) { + USAGE("sync LOCATION-URL DIR DIR-URL"); + } + File dir = new File(arc); + String dirUrl = args[3]; + if(!dirUrl.startsWith("http://")) { + USAGE("DIR-URL argument 4 must begin with http://"); + } + try { + if(!dir.isDirectory()) { + USAGE("DIR " + arc + " is not a directory"); + } + + FileFilter filter = new FileFilter() { + public boolean accept(File daFile) { + return daFile.isFile() && + (daFile.getName().endsWith(ARC_SUFFIX) || + daFile.getName().endsWith(ARC_GZ_SUFFIX) || + daFile.getName().endsWith(WARC_SUFFIX) || + daFile.getName().endsWith(WARC_GZ_SUFFIX)); + } + }; + + File[] files = dir.listFiles(filter); + if(files == null) { + throw new IOException("Directory " + dir.getAbsolutePath() + + " is not a directory or had an IO error"); + } + for(int i = 0; i < files.length; i++) { + File file = files[i]; + String name = file.getName(); + String fileUrl = dirUrl + name; + LOGGER.info("Adding location " + fileUrl + " for file " + name); + locationClient.addArcUrl(name,fileUrl); + } + } catch (IOException e) { + System.err.println(e.getMessage()); + System.exit(1); + } + + } else { + USAGE(" unknown operation " + operation); } - - } else { - USAGE(" unknown operation " + operation); } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bra...@us...> - 2008-03-01 01:59:20
|
Revision: 2209 http://archive-access.svn.sourceforge.net/archive-access/?rev=2209&view=rev Author: bradtofel Date: 2008-02-29 17:59:24 -0800 (Fri, 29 Feb 2008) Log Message: ----------- BUGFIX (ACC-12): LocalResourceStore now returns a CloseableIterator to AutoIndexThread, which now calls close after indexing. Modified Paths: -------------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/ArcIndexer.java trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/AutoIndexThread.java trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/LocalResourceStore.java trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/WarcIndexer.java Added Paths: ----------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/ArchiveReaderCloseableIterator.java Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/ArcIndexer.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/ArcIndexer.java 2008-02-27 11:28:06 UTC (rev 2208) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/ArcIndexer.java 2008-03-01 01:59:24 UTC (rev 2209) @@ -77,7 +77,8 @@ new ARCRecordToSearchResultAdapter(); adapter2.setCanonicalizer(canonicalizer); - Iterator<ArchiveRecord> itr1 = arcReader.iterator(); + ArchiveReaderCloseableIterator itr1 = + new ArchiveReaderCloseableIterator(arcReader,arcReader.iterator()); CloseableIterator<ARCRecord> itr2 = new AdaptedIterator<ArchiveRecord,ARCRecord>(itr1,adapter1); Added: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/ArchiveReaderCloseableIterator.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/ArchiveReaderCloseableIterator.java (rev 0) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/ArchiveReaderCloseableIterator.java 2008-03-01 01:59:24 UTC (rev 2209) @@ -0,0 +1,29 @@ +package org.archive.wayback.resourcestore; + +import java.io.IOException; +import java.util.Iterator; + +import org.archive.io.ArchiveReader; +import org.archive.io.ArchiveRecord; +import org.archive.wayback.util.CloseableIterator; + +public class ArchiveReaderCloseableIterator implements CloseableIterator<ArchiveRecord> { + private ArchiveReader reader = null; + private Iterator<ArchiveRecord> itr = null; + public ArchiveReaderCloseableIterator(ArchiveReader reader, Iterator<ArchiveRecord> itr) { + this.reader = reader; + this.itr = itr; + } + public boolean hasNext() { + return itr.hasNext(); + } + public ArchiveRecord next() { + return itr.next(); + } + public void remove() { + itr.remove(); + } + public void close() throws IOException { + reader.close(); + } +} Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/AutoIndexThread.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/AutoIndexThread.java 2008-02-27 11:28:06 UTC (rev 2208) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/AutoIndexThread.java 2008-03-01 01:59:24 UTC (rev 2209) @@ -9,6 +9,7 @@ import org.archive.wayback.core.SearchResult; import org.archive.wayback.resourceindex.indexer.IndexClient; +import org.archive.wayback.util.CloseableIterator; import org.archive.wayback.util.DirMaker; /** @@ -150,7 +151,7 @@ try { LOGGER.info("Indexing " + file.getAbsolutePath()); - Iterator<SearchResult> itr = store.indexFile(file); + CloseableIterator<SearchResult> itr = store.indexFile(file); if(indexClient.addSearchResults(cdxBase, itr)) { if (!workFlagFile.delete()) { @@ -158,6 +159,7 @@ + workFlagFile.getAbsolutePath()); } } + itr.close(); numIndexed++; } catch (IOException e) { LOGGER.severe("FAILED index: " + file.getAbsolutePath() Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/LocalResourceStore.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/LocalResourceStore.java 2008-02-27 11:28:06 UTC (rev 2208) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/LocalResourceStore.java 2008-03-01 01:59:24 UTC (rev 2209) @@ -13,6 +13,7 @@ import org.archive.wayback.core.SearchResult; import org.archive.wayback.exception.ConfigurationException; import org.archive.wayback.exception.ResourceNotAvailableException; +import org.archive.wayback.util.CloseableIterator; import org.archive.wayback.util.DirMaker; /** @@ -88,8 +89,8 @@ } } - public Iterator<SearchResult> indexFile(File dataFile) throws IOException { - Iterator<SearchResult> itr = null; + public CloseableIterator<SearchResult> indexFile(File dataFile) throws IOException { + CloseableIterator<SearchResult> itr = null; String name = dataFile.getName(); if(name.endsWith(ARC_EXTENSION)) { @@ -140,4 +141,7 @@ public void setIndexThread(AutoIndexThread indexThread) { this.indexThread = indexThread; } + public void shutdown() throws IOException { + // no-op. could shut down threads + } } Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/WarcIndexer.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/WarcIndexer.java 2008-02-27 11:28:06 UTC (rev 2208) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourcestore/WarcIndexer.java 2008-03-01 01:59:24 UTC (rev 2209) @@ -46,10 +46,11 @@ WARCReader reader = WARCReaderFactory.get(warc); - Iterator<ArchiveRecord> itr1 = reader.iterator(); + ArchiveReaderCloseableIterator itr1 = + new ArchiveReaderCloseableIterator(reader,reader.iterator()); - CloseableIterator<WARCRecord> itr2 = new AdaptedIterator<ArchiveRecord, WARCRecord>( - itr1, adapter1); + CloseableIterator<WARCRecord> itr2 = + new AdaptedIterator<ArchiveRecord, WARCRecord>(itr1, adapter1); return new AdaptedIterator<WARCRecord, SearchResult>(itr2, adapter2); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
Revision: 2208 http://archive-access.svn.sourceforge.net/archive-access/?rev=2208&view=rev Author: alexoz Date: 2008-02-27 03:28:06 -0800 (Wed, 27 Feb 2008) Log Message: ----------- * AdminController.java Include list of subnodes in page. Modified Paths: -------------- trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/webui/AdminController.java Modified: trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/webui/AdminController.java =================================================================== --- trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/webui/AdminController.java 2008-02-27 11:27:17 UTC (rev 2207) +++ trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/webui/AdminController.java 2008-02-27 11:28:06 UTC (rev 2208) @@ -8,9 +8,11 @@ import java.util.Collections; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.TimeZone; import javax.servlet.http.HttpServletRequest; @@ -20,6 +22,7 @@ import org.archive.accesscontrol.model.HibernateRuleDao; import org.archive.accesscontrol.model.Rule; import org.archive.accesscontrol.model.RuleSet; +import org.archive.surt.NewSurtTokenizer; import org.archive.surt.SURTTokenizer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.servlet.ModelAndView; @@ -51,9 +54,11 @@ protected ModelAndView ruleList(String surt, Long editingRuleId, HttpServletRequest request, HttpServletResponse response) throws Exception { + int surtSegments = new NewSurtTokenizer(surt).toList().size(); Map<String, Object> model = new HashMap<String, Object>(); RuleSet rules = ruleDao.getRuleTree(surt); ArrayList<DisplayRule> ruleList = new ArrayList<DisplayRule>(); + ArrayList<String> childSurts = new ArrayList<String>(); for (Rule rule: rules) { int comparison = rule.getSurt().compareTo(surt); @@ -62,13 +67,24 @@ displayRule.setEditing(rule.getId().equals(editingRuleId)); ruleList.add(displayRule); } else { - // lowerRules.add(rule); + try { + String segment = new NewSurtTokenizer(rule.getSurt()) + .toList().get(surtSegments); + if (!childSurts.contains(segment)) { + childSurts.add(segment); + } + } catch (IndexOutOfBoundsException e) { + } } } Collections.sort(ruleList); + ArrayList<String> childSurtsList = new ArrayList<String>(childSurts); + Collections.sort(childSurtsList); + model.put("rules", ruleList); model.put("surt", surt); + model.put("childSurts", childSurtsList); model.put("encodedSurt", URLEncoder.encode(surt, "utf-8")); model.put("breadcrumbs", SurtNode.nodesFromSurt(surt)); model.put("editingRuleId", request.getParameter("edit")); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <al...@us...> - 2008-02-27 11:27:13
|
Revision: 2207 http://archive-access.svn.sourceforge.net/archive-access/?rev=2207&view=rev Author: alexoz Date: 2008-02-27 03:27:17 -0800 (Wed, 27 Feb 2008) Log Message: ----------- Generated eclipse settings with mvn eclipse:eclipse. This seems to have fixed the deploy to tomcat from within eclipse issue. Added Paths: ----------- trunk/archive-access/projects/access-control/oracle/.classpath trunk/archive-access/projects/access-control/oracle/.project trunk/archive-access/projects/access-control/oracle/.settings/ trunk/archive-access/projects/access-control/oracle/.settings/org.eclipse.jdt.core.prefs trunk/archive-access/projects/access-control/oracle/.settings/org.eclipse.wst.common.component trunk/archive-access/projects/access-control/oracle/.settings/org.eclipse.wst.common.project.facet.core.xml trunk/archive-access/projects/access-control/oracle/src/main/webapp/images/ trunk/archive-access/projects/access-control/oracle/src/main/webapp/images/CREDITS trunk/archive-access/projects/access-control/oracle/src/main/webapp/images/greylock.gif Property Changed: ---------------- trunk/archive-access/projects/access-control/oracle/ Property changes on: trunk/archive-access/projects/access-control/oracle ___________________________________________________________________ Name: svn:ignore + target Added: trunk/archive-access/projects/access-control/oracle/.classpath =================================================================== --- trunk/archive-access/projects/access-control/oracle/.classpath (rev 0) +++ trunk/archive-access/projects/access-control/oracle/.classpath 2008-02-27 11:27:17 UTC (rev 2207) @@ -0,0 +1,65 @@ +<classpath> + <classpathentry kind="src" path="src/main/java"/> + <classpathentry kind="src" path="src/test/java" output="target/test-classes"/> + <classpathentry kind="src" path="src/test/resources" output="target/test-classes" excluding="**/*.java"/> + <classpathentry kind="output" path="target/classes"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> + <classpathentry kind="var" path="M2_REPO/ant/ant/1.5/ant-1.5.jar"/> + <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"/> + <classpathentry kind="var" path="M2_REPO/commons-cli/commons-cli/1.0/commons-cli-1.0.jar"/> + <classpathentry kind="var" path="M2_REPO/it/unimi/dsi/mg4j/1.0.1/mg4j-1.0.1.jar"/> + <classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.3.1/commons-io-1.3.1.jar"/> + <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/> + <classpathentry kind="var" path="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar"/> + <classpathentry kind="var" path="M2_REPO/org/archive/overlays/archive-overlay-commons-pool/1.3/archive-overlay-commons-pool-1.3.jar"/> + <classpathentry kind="var" path="M2_REPO/commons-pool/commons-pool/1.3/commons-pool-1.3.jar"/> + <classpathentry kind="var" path="M2_REPO/com/lowagie/itext/1.3/itext-1.3.jar"/> + <classpathentry kind="var" path="M2_REPO/org/springframework/spring-webmvc/2.5.1/spring-webmvc-2.5.1.jar"/> + <classpathentry kind="var" path="M2_REPO/asm/asm-attrs/1.5.3/asm-attrs-1.5.3.jar"/> + <classpathentry kind="var" path="M2_REPO/org/springframework/spring-web/2.5.1/spring-web-2.5.1.jar"/> + <classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.4/servlet-api-2.4.jar"/> + <classpathentry kind="var" path="M2_REPO/fastutil/fastutil/5.0.7/fastutil-5.0.7.jar"/> + <classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.1/commons-lang-2.1.jar"/> + <classpathentry kind="var" path="M2_REPO/poi/poi/2.5.1-final-20040804/poi-2.5.1-final-20040804.jar"/> + <classpathentry kind="var" path="M2_REPO/org/springframework/spring-context-support/2.5.1/spring-context-support-2.5.1.jar"/> + <classpathentry kind="var" path="M2_REPO/org/tuckey/urlrewritefilter/3.0.4/urlrewritefilter-3.0.4.jar"/> + <classpathentry kind="var" path="M2_REPO/com/anotherbigidea/javaswf/CVS-SNAPSHOT-1/javaswf-CVS-SNAPSHOT-1.jar"/> + <classpathentry kind="var" path="M2_REPO/org/springframework/spring-tx/2.5.1/spring-tx-2.5.1.jar"/> + <classpathentry kind="var" path="M2_REPO/oro/oro/2.0.8/oro-2.0.8.jar"/> + <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate/3.2.5.ga/hibernate-3.2.5.ga.jar"/> + <classpathentry kind="var" path="M2_REPO/commons-dbcp/commons-dbcp/1.2.2/commons-dbcp-1.2.2.jar"/> + <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.3.4.O/xpp3_min-1.1.3.4.O.jar"/> + <classpathentry kind="var" path="M2_REPO/net/java/dev/jets3t/jets3t/0.5.0/jets3t-0.5.0.jar"/> + <classpathentry kind="var" path="M2_REPO/mx4j/mx4j-tools/3.0.1/mx4j-tools-3.0.1.jar"/> + <classpathentry kind="var" path="M2_REPO/org/archive/overlays/archive-overlay-commons-httpclient/3.1/archive-overlay-commons-httpclient-3.1.jar"/> + <classpathentry kind="var" path="M2_REPO/berkeleydb/je/3.2.44/je-3.2.44.jar"/> + <classpathentry kind="var" path="M2_REPO/org/springframework/spring-beans/2.5.1/spring-beans-2.5.1.jar"/> + <classpathentry kind="var" path="M2_REPO/org/archive/heritrix/commons/2.0.1-SNAPSHOT/commons-2.0.1-SNAPSHOT.jar"/> + <classpathentry kind="var" path="M2_REPO/asm/asm/1.5.3/asm-1.5.3.jar"/> + <classpathentry kind="var" path="M2_REPO/commons-net/commons-net/1.4.1/commons-net-1.4.1.jar"/> + <classpathentry kind="src" path="/access-control"/> + <classpathentry kind="var" path="M2_REPO/taglibs/standard/1.1.2/standard-1.1.2.jar"/> + <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.2.2/xstream-1.2.2.jar"/> + <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar"/> + <classpathentry kind="var" path="M2_REPO/org/springframework/spring-orm/2.5.1/spring-orm-2.5.1.jar"/> + <classpathentry kind="var" path="M2_REPO/junit/junit/4.4/junit-4.4.jar"/> + <classpathentry kind="var" path="M2_REPO/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar"/> + <classpathentry kind="var" path="M2_REPO/javax/servlet/jstl/1.1.2/jstl-1.1.2.jar"/> + <classpathentry kind="var" path="M2_REPO/org/apache/velocity/velocity/1.5/velocity-1.5.jar"/> + <classpathentry kind="var" path="M2_REPO/net/sf/ehcache/ehcache/1.2.3/ehcache-1.2.3.jar"/> + <classpathentry kind="var" path="M2_REPO/hsqldb/hsqldb/1.8.0.7/hsqldb-1.8.0.7.jar"/> + <classpathentry kind="var" path="M2_REPO/cglib/cglib/2.1_3/cglib-2.1_3.jar"/> + <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"/> + <classpathentry kind="var" path="M2_REPO/org/springframework/spring-core/2.5.1/spring-core-2.5.1.jar"/> + <classpathentry kind="var" path="M2_REPO/poi/poi-scratchpad/2.5.1-final-20040804/poi-scratchpad-2.5.1-final-20040804.jar"/> + <classpathentry kind="var" path="M2_REPO/commons-codec/commons-codec/1.3/commons-codec-1.3.jar"/> + <classpathentry kind="var" path="M2_REPO/org/springframework/spring-jdbc/2.5.1/spring-jdbc-2.5.1.jar"/> + <classpathentry kind="var" path="M2_REPO/org/gnu/inet/libidn/0.6.5/libidn-0.6.5.jar"/> + <classpathentry kind="var" path="M2_REPO/net/htmlparser/jericho/jericho-html/2.3/jericho-html-2.3.jar"/> + <classpathentry kind="var" path="M2_REPO/org/springframework/spring-context/2.5.1/spring-context-2.5.1.jar"/> + <classpathentry kind="var" path="M2_REPO/postgresql/postgresql/8.2-504.jdbc3/postgresql-8.2-504.jdbc3.jar"/> + <classpathentry kind="var" path="M2_REPO/org/codehaus/jettison/jettison/1.0-beta-1/jettison-1.0-beta-1.jar"/> + <classpathentry kind="var" path="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar"/> + <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.8/log4j-1.2.8.jar"/> + <classpathentry kind="var" path="M2_REPO/org/dnsjava/dnsjava/2.0.3/dnsjava-2.0.3.jar"/> +</classpath> \ No newline at end of file Added: trunk/archive-access/projects/access-control/oracle/.project =================================================================== --- trunk/archive-access/projects/access-control/oracle/.project (rev 0) +++ trunk/archive-access/projects/access-control/oracle/.project 2008-02-27 11:27:17 UTC (rev 2207) @@ -0,0 +1,24 @@ +<projectDescription> + <name>oracle</name> + <comment></comment> + <projects> + <project>access-control</project> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + </buildCommand> + <buildCommand> + <name>org.eclipse.wst.common.project.facet.core.builder</name> + </buildCommand> + <buildCommand> + <name>org.eclipse.wst.validation.validationbuilder</name> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.wst.common.project.facet.core.nature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature> + <nature>org.eclipse.jem.workbench.JavaEMFNature</nature> + </natures> +</projectDescription> \ No newline at end of file Added: trunk/archive-access/projects/access-control/oracle/.settings/org.eclipse.jdt.core.prefs =================================================================== --- trunk/archive-access/projects/access-control/oracle/.settings/org.eclipse.jdt.core.prefs (rev 0) +++ trunk/archive-access/projects/access-control/oracle/.settings/org.eclipse.jdt.core.prefs 2008-02-27 11:27:17 UTC (rev 2207) @@ -0,0 +1,5 @@ +#Wed Feb 27 20:55:58 EST 2008 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.source=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 Added: trunk/archive-access/projects/access-control/oracle/.settings/org.eclipse.wst.common.component =================================================================== --- trunk/archive-access/projects/access-control/oracle/.settings/org.eclipse.wst.common.component (rev 0) +++ trunk/archive-access/projects/access-control/oracle/.settings/org.eclipse.wst.common.component 2008-02-27 11:27:17 UTC (rev 2207) @@ -0,0 +1,182 @@ +<project-modules id="moduleCoreId" project-version="1.5.0"> + <wb-module deploy-name="oracle"> + <property name="context-root" value="oracle"/> + <wb-resource deploy-path="/" source-path="src/main/webapp"/> + <property name="java-output-path" value="/target/classes"/> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/ant/ant/1.5/ant-1.5.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/commons-cli/commons-cli/1.0/commons-cli-1.0.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/it/unimi/dsi/mg4j/1.0.1/mg4j-1.0.1.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/commons-io/commons-io/1.3.1/commons-io-1.3.1.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/org/archive/overlays/archive-overlay-commons-pool/1.3/archive-overlay-commons-pool-1.3.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/commons-pool/commons-pool/1.3/commons-pool-1.3.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/com/lowagie/itext/1.3/itext-1.3.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/org/springframework/spring-webmvc/2.5.1/spring-webmvc-2.5.1.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/asm/asm-attrs/1.5.3/asm-attrs-1.5.3.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/org/springframework/spring-web/2.5.1/spring-web-2.5.1.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/javax/servlet/servlet-api/2.4/servlet-api-2.4.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/fastutil/fastutil/5.0.7/fastutil-5.0.7.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/commons-lang/commons-lang/2.1/commons-lang-2.1.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/poi/poi/2.5.1-final-20040804/poi-2.5.1-final-20040804.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/org/springframework/spring-context-support/2.5.1/spring-context-support-2.5.1.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/org/tuckey/urlrewritefilter/3.0.4/urlrewritefilter-3.0.4.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/com/anotherbigidea/javaswf/CVS-SNAPSHOT-1/javaswf-CVS-SNAPSHOT-1.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/org/springframework/spring-tx/2.5.1/spring-tx-2.5.1.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/oro/oro/2.0.8/oro-2.0.8.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/org/hibernate/hibernate/3.2.5.ga/hibernate-3.2.5.ga.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/commons-dbcp/commons-dbcp/1.2.2/commons-dbcp-1.2.2.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/xpp3/xpp3_min/1.1.3.4.O/xpp3_min-1.1.3.4.O.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/net/java/dev/jets3t/jets3t/0.5.0/jets3t-0.5.0.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/mx4j/mx4j-tools/3.0.1/mx4j-tools-3.0.1.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/org/archive/overlays/archive-overlay-commons-httpclient/3.1/archive-overlay-commons-httpclient-3.1.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/berkeleydb/je/3.2.44/je-3.2.44.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/org/springframework/spring-beans/2.5.1/spring-beans-2.5.1.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/org/archive/heritrix/commons/2.0.1-SNAPSHOT/commons-2.0.1-SNAPSHOT.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/asm/asm/1.5.3/asm-1.5.3.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/commons-net/commons-net/1.4.1/commons-net-1.4.1.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/resource/access-control/access-control"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/taglibs/standard/1.1.2/standard-1.1.2.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/com/thoughtworks/xstream/xstream/1.2.2/xstream-1.2.2.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/org/springframework/spring-orm/2.5.1/spring-orm-2.5.1.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/junit/junit/4.4/junit-4.4.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/javax/servlet/jstl/1.1.2/jstl-1.1.2.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/org/apache/velocity/velocity/1.5/velocity-1.5.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/net/sf/ehcache/ehcache/1.2.3/ehcache-1.2.3.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/hsqldb/hsqldb/1.8.0.7/hsqldb-1.8.0.7.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/cglib/cglib/2.1_3/cglib-2.1_3.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/org/springframework/spring-core/2.5.1/spring-core-2.5.1.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/poi/poi-scratchpad/2.5.1-final-20040804/poi-scratchpad-2.5.1-final-20040804.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/commons-codec/commons-codec/1.3/commons-codec-1.3.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/org/springframework/spring-jdbc/2.5.1/spring-jdbc-2.5.1.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/org/gnu/inet/libidn/0.6.5/libidn-0.6.5.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/net/htmlparser/jericho/jericho-html/2.3/jericho-html-2.3.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/org/springframework/spring-context/2.5.1/spring-context-2.5.1.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/postgresql/postgresql/8.2-504.jdbc3/postgresql-8.2-504.jdbc3.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/org/codehaus/jettison/jettison/1.0-beta-1/jettison-1.0-beta-1.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/log4j/log4j/1.2.8/log4j-1.2.8.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/org/dnsjava/dnsjava/2.0.3/dnsjava-2.0.3.jar"> + <dependency-type>uses</dependency-type> + </dependent-module> + <wb-resource deploy-path="/WEB-INF/classes" source-path="src/main/java"/> + </wb-module> +</project-modules> \ No newline at end of file Added: trunk/archive-access/projects/access-control/oracle/.settings/org.eclipse.wst.common.project.facet.core.xml =================================================================== --- trunk/archive-access/projects/access-control/oracle/.settings/org.eclipse.wst.common.project.facet.core.xml (rev 0) +++ trunk/archive-access/projects/access-control/oracle/.settings/org.eclipse.wst.common.project.facet.core.xml 2008-02-27 11:27:17 UTC (rev 2207) @@ -0,0 +1,6 @@ +<faceted-project> + <fixed facet="jst.java"/> + <fixed facet="jst.web"/> + <installed facet="jst.web" version="2.4"/> + <installed facet="jst.java" version="5.0"/> +</faceted-project> \ No newline at end of file Added: trunk/archive-access/projects/access-control/oracle/src/main/webapp/images/CREDITS =================================================================== --- trunk/archive-access/projects/access-control/oracle/src/main/webapp/images/CREDITS (rev 0) +++ trunk/archive-access/projects/access-control/oracle/src/main/webapp/images/CREDITS 2008-02-27 11:27:17 UTC (rev 2207) @@ -0,0 +1,4 @@ +greylock.gif +Ian Main +http://e-lusion.com/design/greyscale/ +Creative Commons Attribution 2.0 Australia Added: trunk/archive-access/projects/access-control/oracle/src/main/webapp/images/greylock.gif =================================================================== (Binary files differ) Property changes on: trunk/archive-access/projects/access-control/oracle/src/main/webapp/images/greylock.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <al...@us...> - 2008-02-27 11:12:03
|
Revision: 2206 http://archive-access.svn.sourceforge.net/archive-access/?rev=2206&view=rev Author: alexoz Date: 2008-02-27 03:12:04 -0800 (Wed, 27 Feb 2008) Log Message: ----------- Added new and improved SURT tokenizer which leaves on trailing commas. Modified Paths: -------------- trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/accesscontrol/model/Rule.java trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/surt/NewSurtTokenizer.java trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/surt/NewSurtTokenizerTest.java trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/surt/SURTTokenizer2Test.java Modified: trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/accesscontrol/model/Rule.java =================================================================== --- trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/accesscontrol/model/Rule.java 2008-02-27 11:10:51 UTC (rev 2205) +++ trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/accesscontrol/model/Rule.java 2008-02-27 11:12:04 UTC (rev 2206) @@ -33,6 +33,7 @@ private String privateComment; private String publicComment; private Boolean enabled; + private boolean exactMatch; public Rule() { @@ -86,6 +87,7 @@ setSurt(rule.getSurt()); setWho(rule.getWho()); setEnabled(rule.getEnabled()); + setExactMatch(rule.isExactMatch()); } /** @@ -259,18 +261,37 @@ /* * Rules are sorted in descending order of "specificity". - * So we order first by SURT, then group, then policy. + * So we order first by SURT, exact-match, + * then group, then policy. */ public int compareTo(Rule o) { int i = getSurt().compareTo(o.getSurt()); if (i == 0) { - if (getWho() != null && o.getWho() == null) { + // exact matches come before non-exact + if (isExactMatch() && !o.isExactMatch()) { i = -1; + } else if (!isExactMatch() && o.isExactMatch()) { + i = 1; + + // non-null groups come before null groups + } else if (getWho() != null && o.getWho() == null) { + i = -1; } else if (getWho() == null && o.getWho() != null) { i = 1; } else { i = getPolicyId().compareTo(o.getPolicyId()); } + + + // if we're still equal try capture date start + if (i == 0 && getCaptureStart() != null) { + i = getCaptureStart().compareTo(o.getCaptureStart()); + } + + // and retrieval date + if (i == 0 && getRetrievalStart() != null) { + i = getRetrievalStart().compareTo(o.getRetrievalStart()); + } } return i; } @@ -329,4 +350,12 @@ public boolean matches(String surt, Date captureDate, Date retrievalDate, String who2) { return (who == null || who == who2) && matches(surt, captureDate, retrievalDate); } + + public boolean isExactMatch() { + return exactMatch; + } + + public void setExactMatch(boolean exactMatch) { + this.exactMatch = exactMatch; + } } Modified: trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/surt/NewSurtTokenizer.java =================================================================== --- trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/surt/NewSurtTokenizer.java 2008-02-27 11:10:51 UTC (rev 2205) +++ trunk/archive-access/projects/access-control/access-control/src/main/java/org/archive/surt/NewSurtTokenizer.java 2008-02-27 11:12:04 UTC (rev 2206) @@ -28,11 +28,19 @@ private int endOfAuthority; private int endOfPath; private int surtLength; + private int preTabLength; public NewSurtTokenizer(String surt) { super(); this.surt = surt; surtLength = surt.length(); + + if (surt.charAt(surtLength - 1) == '\t') { + preTabLength = surtLength - 1; + } else { + preTabLength = surtLength; + } + endOfAuthority = surt.indexOf(')'); if (endOfAuthority == -1) { endOfAuthority = surtLength; @@ -61,6 +69,13 @@ } private int nextPieceEnd() { + // Special case: If the SURT ends with a tab, we treat that as an extra token. + // A trailing tab is sometimes used (for better or worse) to make a distinction between + // and exact match and prefix match. + if (pos >= preTabLength && pos < surtLength) { + return surtLength; + } + // ROOT: "(..." if (pos == 0) { return 1; // "(" @@ -69,7 +84,7 @@ if (pos < endOfAuthority || endOfAuthority == -1) { int endOfHostComponent = surt.indexOf(',', pos); if (endOfHostComponent == -1) { - return surtLength; + return preTabLength; } else { return endOfHostComponent + 1; } @@ -88,7 +103,7 @@ } else if (endOfPath != -1) { // file: "hello.html" return endOfPath; } else { - return surtLength; + return preTabLength; } } @@ -98,12 +113,12 @@ if (endOfQuery != -1) { return endOfQuery; } else { - return surtLength; + return preTabLength; } } // Anchor "#boo" - return surtLength; + return preTabLength; } public String next() { Modified: trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/surt/NewSurtTokenizerTest.java =================================================================== --- trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/surt/NewSurtTokenizerTest.java 2008-02-27 11:10:51 UTC (rev 2205) +++ trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/surt/NewSurtTokenizerTest.java 2008-02-27 11:12:04 UTC (rev 2206) @@ -161,5 +161,28 @@ } + public void testListDiffing() { + NewSurtTokenizer tok = new NewSurtTokenizer("(org,archive,www,)/fishes/"); + NewSurtTokenizer tok2 = new NewSurtTokenizer("(org,archive,www,)/fishes/pinky.html"); + assertEquals("pinky.html", tok2.toList().get(tok.toList().size())); + } + + public void testTrailingTab() { + NewSurtTokenizer tok = new NewSurtTokenizer("(org,archive,www,)/fishes/pinky.html?moo=yes&bar=12#423\t"); + Iterator<String> it = tok.iterator(); + + assertEquals("(", it.next()); + assertEquals("org,", it.next()); + assertEquals("archive,", it.next()); + assertEquals("www,", it.next()); + assertEquals(")/", it.next()); + assertEquals("fishes/", it.next()); + assertEquals("pinky.html", it.next()); + assertEquals("?moo=yes&bar=12", it.next()); + assertEquals("#423", it.next()); + assertEquals("\t", it.next()); + assertFalse(it.hasNext()); + + } } Modified: trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/surt/SURTTokenizer2Test.java =================================================================== --- trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/surt/SURTTokenizer2Test.java 2008-02-27 11:10:51 UTC (rev 2205) +++ trunk/archive-access/projects/access-control/access-control/src/test/java/org/archive/surt/SURTTokenizer2Test.java 2008-02-27 11:12:04 UTC (rev 2206) @@ -102,7 +102,7 @@ /** test */ public void testLongPathMore() { tok = toSurtT("http://brad.www.archive.org/one/two"); - assertEquals("(org,archive,www,brad,)/one/two\t",tok.nextSearch()); + assertEquals("( org, archive, www, brad, )/ one/ two\t",tok.nextSearch()); assertEquals("(org,archive,www,brad,)/one/two",tok.nextSearch()); assertEquals("(org,archive,www,brad,)/one",tok.nextSearch()); assertEquals("(org,archive,www,brad,",tok.nextSearch()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |