private String getCustomHandler(WaybackException exception, WaybackRequest wbRequest) { if((exception instanceof ResourceNotInArchiveException) && wbRequest.isReplayRequest()) { String url = wbRequest.getRequestUrl(); String host = UrlOperations.urlToHost(url); if(hosts.containsKey(host)) { return jspHandler; } } return null; }
private String getCustomHandler(WaybackException exception, WaybackRequest wbRequest) { if((exception instanceof ResourceNotInArchiveException) && wbRequest.isReplayRequest()) { String url = wbRequest.getRequestUrl(); String host = UrlOperations.urlToHost(url); if(hosts.containsKey(host)) { return jspHandler; } } return null; }
protected String getRequestUrl(WaybackRequest wbRequest) throws BadQueryException { WaybackRequest tmp = wbRequest.clone(); if(tmp.isReplayRequest()) { tmp.setCaptureQueryRequest(); } return this.searchUrlBase + "?" + tmp.getQueryArguments(); }
protected String getRequestUrl(WaybackRequest wbRequest) throws BadQueryException { WaybackRequest tmp = wbRequest.clone(); if(tmp.isReplayRequest()) { tmp.setCaptureQueryRequest(); } return this.searchUrlBase + "?" + tmp.getQueryArguments(); }
public ClosestTrackingCaptureFilterGroup(WaybackRequest request, UrlCanonicalizer canonicalizer) { chain = new ObjectFilterChain<CaptureSearchResult>(); if(request.isCaptureQueryRequest() || request.isReplayRequest()) { closestTracker = new ClosestResultTrackingFilter(request.getReplayDate().getTime()); chain.addFilter(closestTracker); } }
public ClosestTrackingCaptureFilterGroup(WaybackRequest request, UrlCanonicalizer canonicalizer) { chain = new ObjectFilterChain<CaptureSearchResult>(); if(request.isCaptureQueryRequest() || request.isReplayRequest()) { closestTracker = new ClosestResultTrackingFilter(request.getReplayDate().getTime()); chain.addFilter(closestTracker); } }
private String getCustomHandler(WaybackException e, WaybackRequest wbRequest) { String jspPath = null; if((e instanceof ResourceNotInArchiveException) && wbRequest.isReplayRequest()) { String url = wbRequest.getRequestUrl(); Date captureDate = wbRequest.getReplayDate(); try { Rule rule = client.getRule(url,captureDate,new Date(),who); jspPath = ruleToJspPath(rule); } catch (RuleOracleUnavailableException e1) { e1.printStackTrace(); } } return jspPath; }
private String getCustomHandler(WaybackException e, WaybackRequest wbRequest) { String jspPath = null; if((e instanceof ResourceNotInArchiveException) && wbRequest.isReplayRequest()) { String url = wbRequest.getRequestUrl(); Date captureDate = wbRequest.getReplayDate(); try { Rule rule = client.getRule(url,captureDate,new Date(),who); jspPath = ruleToJspPath(rule); } catch (RuleOracleUnavailableException e1) { e1.printStackTrace(); } } return jspPath; }
/** * * @return A string representation of this object. */ @Override public String toString() { if(wbRequest.isReplayRequest()) { return toReplayString(wbRequest.getRequestUrl()); } else if(wbRequest.isCaptureQueryRequest()) { return toQueryString(wbRequest.getRequestUrl()); } return toPrefixQueryString(wbRequest.getRequestUrl()); }
/** * * @return A string representation of this object. */ @Override public String toString() { if(wbRequest.isReplayRequest()) { return toReplayString(wbRequest.getRequestUrl()); } else if(wbRequest.isCaptureQueryRequest()) { return toQueryString(wbRequest.getRequestUrl()); } return toPrefixQueryString(wbRequest.getRequestUrl()); }
protected ObjectFilter<CaptureSearchResult> getSearchResultFilters( WaybackRequest wbRequest, ClosestTrackingCaptureFilterGroup closestGroup) { ObjectFilterChain<CaptureSearchResult> filters = null; if (wbRequest.isReplayRequest()) { filters = new ObjectFilterChain<CaptureSearchResult>(); SelfRedirectFilter selfRedirectFilter = new SelfRedirectFilter(); selfRedirectFilter.setCanonicalizer(canonicalizer); filters.addFilter(selfRedirectFilter); filters.addFilter(new WARCRevisitAnnotationFilter()); filters.addFilter(new ConditionalGetAnnotationFilter()); filters.addFilter(closestGroup.getFilter()); } else { // no filters for now filters = null; } return filters; }
protected ObjectFilter<CaptureSearchResult> getSearchResultFilters( WaybackRequest wbRequest, ClosestTrackingCaptureFilterGroup closestGroup) { ObjectFilterChain<CaptureSearchResult> filters = null; if (wbRequest.isReplayRequest()) { filters = new ObjectFilterChain<CaptureSearchResult>(); SelfRedirectFilter selfRedirectFilter = new SelfRedirectFilter(); selfRedirectFilter.setCanonicalizer(canonicalizer); filters.addFilter(selfRedirectFilter); filters.addFilter(new WARCRevisitAnnotationFilter()); filters.addFilter(new ConditionalGetAnnotationFilter()); filters.addFilter(closestGroup.getFilter()); } else { // no filters for now filters = null; } return filters; }
public void testProtocolRelative() throws Exception { acceptDatetime = "Mon, 27 Oct 2014 20:36:02 GMT"; accessPoint.setEnableMemento(true); setupRequest("//example.com/"); EasyMock.replay(request); try { WaybackRequest wbr = cut.parse(request, accessPoint); assertNotNull(wbr); assertTrue(wbr.isReplayRequest()); assertTrue(wbr.isMementoTimegate()); assertEquals("http://example.com/", wbr.getRequestUrl()); assertEquals("20141027203602", wbr.getReplayTimestamp()); } catch (NullPointerException ex) { // it fails with NullPointerException currently. System.err.println("needs fix"); ex.printStackTrace(); } }
public void testReplayRequest() throws Exception { WaybackRequest wbr = parse("/web/20100101000000/http://www.yahoo.com/"); assertNotNull(wbr); assertTrue(wbr.isReplayRequest()); assertEquals("20100101000000", wbr.getReplayTimestamp()); assertEquals("http://www.yahoo.com/", wbr.getRequestUrl()); }
public void testAcceptDatetime() throws Exception { acceptDatetime = "Mon, 27 Oct 2014 20:36:02 GMT"; accessPoint.setEnableMemento(true); setupRequest("http://example.com/"); EasyMock.replay(request); WaybackRequest wbr = cut.parse(request, accessPoint); assertNotNull(wbr); assertTrue(wbr.isReplayRequest()); assertTrue(wbr.isMementoTimegate()); assertEquals("http://example.com/", wbr.getRequestUrl()); assertEquals("20141027203602", wbr.getReplayTimestamp()); }
/** * timestamp without "*", path ending with "*". * <p>this is interpreted as replay request for the URL including trailing "*". * That sounds inconsistent with other cases. (BTW, resultant time-redirect URL * has no trailing "*" - there's a special handling happening somewhere.) * Should this be interpreted as URL-query for the specific date?</p> * @throws Exception */ public void testDatePathPrefix() throws Exception { WaybackRequest wbr = parse("/web/20100101000000/http://www.yahoo.com/*"); assertNotNull(wbr); assertTrue(wbr.isReplayRequest()); assertEquals("20100101000000", wbr.getReplayTimestamp()); // ReplayRequestParser does not strip trailing "*" off. assertEquals("http://www.yahoo.com/*", wbr.getRequestUrl()); }
/** * Accept-Datetime is ignored unless {@code enabledMemento} is {@code true}. * @throws Exception */ public void testMementoDisabled() throws Exception { acceptDatetime = "Mon, 27 Oct 2014 20:36:02 GMT"; accessPoint.setEnableMemento(false); setupRequest("http://example.com/"); EasyMock.replay(request); WaybackRequest wbr = cut.parse(request, accessPoint); assertNotNull(wbr); assertTrue(wbr.isReplayRequest()); assertFalse(wbr.isMementoTimegate()); assertEquals("http://example.com/", wbr.getRequestUrl()); assertNotNull(wbr.getReplayTimestamp()); assertFalse("20141027203602".equals(wbr.getReplayTimestamp())); }
/** * Alternate header {@code Accept-Timestamp} is in DT14 format. * @throws Exception */ public void testAcceptTimestamp() throws Exception { acceptTimestamp = "20141027203602"; accessPoint.setEnableMemento(true); setupRequest("http://example.com/"); EasyMock.replay(request); WaybackRequest wbr = cut.parse(request, accessPoint); assertNotNull(wbr); assertTrue(wbr.isReplayRequest()); assertTrue(wbr.isMementoTimegate()); assertEquals("http://example.com/", wbr.getRequestUrl()); assertEquals("20141027203602", wbr.getReplayTimestamp()); }
/** * invalid Accept-Timestamp is simply ignored * @throws Exception */ public void testAcceptTimestamp_invalid() throws Exception { // Valid HTTP Date, but invalid for Accept-Timestamp acceptTimestamp = "Mon, 27 Oct 2014 20:36:02 GMT"; accessPoint.setEnableMemento(true); setupRequest("http://example.com/"); EasyMock.replay(request); WaybackRequest wbr = cut.parse(request, accessPoint); assertNotNull(wbr); assertTrue(wbr.isReplayRequest()); assertTrue(wbr.isMementoTimegate()); assertEquals("http://example.com/", wbr.getRequestUrl()); assertNotNull(wbr.getReplayTimestamp()); }
protected void checkPathDateless(WaybackRequest wbr, String requestUrl) { assertNotNull(wbr); assertTrue(wbr.isReplayRequest()); assertTrue(wbr.isBestLatestReplayRequest()); assertEquals(EXPECTED_START_TIMESTAMP, wbr.getStartTimestamp()); assertEquals(EXPECTED_END_TIMESTAMP, wbr.getEndTimestamp()); assertEquals(requestUrl, wbr.getRequestUrl()); assertNotNull(wbr.getReplayDate()); assertNotNull(wbr.getAnchorDate()); }