public CaptureSearchResult getClosest(WaybackRequest wbRequest, CaptureSearchResults results) { return results.getClosest(); }
public CaptureSearchResult getClosest(WaybackRequest wbRequest, CaptureSearchResults results) { CaptureSearchResult closest = results.getClosest(); return closest; } }
public CaptureSearchResult getClosest(WaybackRequest wbRequest, CaptureSearchResults results) { CaptureSearchResult closest = results.getClosest(); return closest; } }
public CaptureSearchResult getClosest(WaybackRequest wbRequest, CaptureSearchResults results) { return results.getClosest(); }
/** * Add {@code Memento-Datetime} header, and full {@code Link} header if * {@code wbr} is not a Memento Timegate request. * @param response * @param results * @param result * @param wbr * @deprecated 1.8.1 2014-09-12 use * {@link #addMementoDatetimeHeader(HttpServletResponse, CaptureSearchResult)} * and * {@link #addLinkHeader(HttpServletResponse, CaptureSearchResults, WaybackRequest, boolean, boolean)} */ public static void addMementoHeaders(HttpServletResponse response, CaptureSearchResults results, CaptureSearchResult result, WaybackRequest wbr) { response.setHeader(MEMENTO_DATETIME, formatLinkDate(results.getClosest().getCaptureDate())); if (!wbr.isMementoTimegate()) { response.setHeader(LINK, generateMementoLinkHeaders(results, wbr, true, true)); } }
/** * Add {@code Memento-Datetime} header, and full {@code Link} header if * {@code wbr} is not a Memento Timegate request. * @param response * @param results * @param result * @param wbr * @deprecated 1.8.1 2014-09-12 use * {@link #addMementoDatetimeHeader(HttpServletResponse, CaptureSearchResult)} * and * {@link #addLinkHeader(HttpServletResponse, CaptureSearchResults, WaybackRequest, boolean, boolean)} */ public static void addMementoHeaders(HttpServletResponse response, CaptureSearchResults results, CaptureSearchResult result, WaybackRequest wbr) { response.setHeader(MEMENTO_DATETIME, formatLinkDate(results.getClosest().getCaptureDate())); if (!wbr.isMementoTimegate()) { response.setHeader(LINK, generateMementoLinkHeaders(results, wbr, true, true)); } }
@Override public void addTimegateHeaders( HttpServletResponse response, CaptureSearchResults results, WaybackRequest wbRequest, boolean includeOriginal) { MementoUtils.addTimegateHeaders(response, results, wbRequest, includeOriginal); // Add custom JSON header CaptureSearchResult result = results.getClosest(); JSONObject obj = new JSONObject(); JSONObject closestSnapshot = new JSONObject(); try { obj.put("wb_url", MementoUtils.getMementoPrefix(wbRequest.getAccessPoint()) + wbRequest.getAccessPoint().getUriConverter().makeReplayURI(result.getCaptureTimestamp(), wbRequest.getRequestUrl())); obj.put("timestamp", result.getCaptureTimestamp()); obj.put("status", result.getHttpCode()); closestSnapshot.put("closest", obj); } catch (JSONException je) { } String json = closestSnapshot.toString(); json = json.replace("\\/", "/"); response.setHeader("X-Link-JSON", json); }
@Override public void addTimegateHeaders( HttpServletResponse response, CaptureSearchResults results, WaybackRequest wbRequest, boolean includeOriginal) { MementoUtils.addTimegateHeaders(response, results, wbRequest, includeOriginal); // Add custom JSON header CaptureSearchResult result = results.getClosest(); JSONObject obj = new JSONObject(); JSONObject closestSnapshot = new JSONObject(); try { obj.put("wb_url", MementoUtils.getMementoPrefix(wbRequest.getAccessPoint()) + wbRequest.getAccessPoint().getUriConverter().makeReplayURI(result.getCaptureTimestamp(), wbRequest.getRequestUrl())); obj.put("timestamp", result.getCaptureTimestamp()); obj.put("status", result.getHttpCode()); closestSnapshot.put("closest", obj); } catch (JSONException je) { } String json = closestSnapshot.toString(); json = json.replace("\\/", "/"); response.setHeader("X-Link-JSON", json); }
/** * setup mocks with {@code resources}. * <ul> * <li>Call {@link #setupCaptures(ResourceIndex, ResourceStore, int, Resource...)}</li> * <li>Set up {@code replay} so as to return closest from {@code getClosest}.</li> * <li>Set up {@code resourceIndex} so as to return results from {@code query(wbRequest)}</li> * </ul> * <p> * Note: {@link #wbRequest} must be set up before calling this method, or * {@code ResourceIndex} will not return expected search result set. * </p> * @param closestIndex zero-based index into {@code resources} * @param resources resources * @return CaptureSearchResults populated with CaptureSearchResult objects. * @throws Exception */ protected CaptureSearchResults setupCaptures(int closestIndex, Resource... resources) throws Exception { CaptureSearchResults results = setupCaptures(resourceIndex, resourceStore, closestIndex, resources); CaptureSearchResult closest = results.getClosest(); if (closest != null) { EasyMock.expect(replay.getClosest(wbRequest, results)).andReturn(closest); } EasyMock.expect(resourceIndex.query(wbRequest)).andReturn(results); return results; }
private static NotableResultExtractor getNotableResults( CaptureSearchResults r) { // eventually, the NotableResultExtractor will be part of the standard // ResourceIndex.query() but for now, we'll just do an extra traversal // of the whole set of results: Iterator<CaptureSearchResult> itr = r.iterator(); Date want = r.getClosest().getCaptureDate(); NotableResultExtractor nre = new NotableResultExtractor(want); ObjectFilterIterator<CaptureSearchResult> ofi = new ObjectFilterIterator<CaptureSearchResult>( itr, nre); while (ofi.hasNext()) { ofi.next(); } return nre; } }
private static NotableResultExtractor getNotableResults( CaptureSearchResults r) { // eventually, the NotableResultExtractor will be part of the standard // ResourceIndex.query() but for now, we'll just do an extra traversal // of the whole set of results: Iterator<CaptureSearchResult> itr = r.iterator(); Date want = r.getClosest().getCaptureDate(); NotableResultExtractor nre = new NotableResultExtractor(want); ObjectFilterIterator<CaptureSearchResult> ofi = new ObjectFilterIterator<CaptureSearchResult>( itr, nre); while (ofi.hasNext()) { ofi.next(); } return nre; } }
/** * basic replay test part 2. there's a capture whose capture date matches * the request. * @throws Exception */ public void testHandleRequest_Replay_2() throws Exception { // make sure wbRequesat.requestUrl, replayTimestamp are set up. setReplayRequest("http://test.example.com/", "20100601000000"); // there's capture with timestamp exactly requested for. Resource payloadResource = createTestHtmlResource("20100601000000", "hogheogehoge\n".getBytes("UTF-8")); CaptureSearchResults results = setupCaptures(0, payloadResource); CaptureSearchResult closest = results.getClosest(); expectRendering(closest, payloadResource, payloadResource, results); EasyMock.replay(httpRequest, httpResponse, resourceIndex, resourceStore, replay); cut.init(); boolean r = cut.handleRequest(httpRequest, httpResponse); EasyMock.verify(resourceIndex, resourceStore, replay); assertTrue("handleRequest return value", r); }
results.getClosest());
"hogehogehogehoge\n".getBytes("UTF-8")); CaptureSearchResults results = setupCaptures(0, payloadResource); CaptureSearchResult closest = results.getClosest();
/** * Test of soft-block feature (URL-agnostic revisit payload lookup). * In revisit payload lookup mode, capture with "X" is returned. * @throws Exception */ public void testSoftBlock_revisitPayloadLookup() throws Exception { WaybackRequest wbr = WaybackRequest.createReplayRequest( "http://example.com/", "20101124000000", null, null); wbr.put(EmbeddedCDXServerIndex.REQUEST_REVISIT_LOOKUP, "true"); setCdxLines( "com,example)/ 20101124000000 http://example.com/ text/html 200" + " XXXX - X 2000 0 /a/a.warc.gz", "com,example)/ 20101125000000 http://example.com/ warc/revisit 200" + " XXXX - - 2000 0 /a/b.warc.gz", "com,example)/ 20101126000000 http://example.com/ text/html 200" + " XXXX - - 2000 0 /a/c.warc.gz" ); CaptureSearchResults results = (CaptureSearchResults)cut.query(wbr); CaptureSearchResult capture1 = results.getResults().get(0); assertEquals("20101124000000", capture1.getCaptureTimestamp()); assertSame(capture1, results.getClosest()); }
CaptureSearchResult closest = results.getClosest(); assertTrue(closest.isDuplicateDigest()); assertTrue(closest.getDuplicatePayloadFile() != null);
"20100501000000", "hogheogehoge\n".getBytes("UTF-8")), createTest502Resource()); CaptureSearchResult closest = results.getClosest(); assertTrue(closest.isHttpError());
CaptureSearchResult closest = cResults.getClosest(); if (closest != null) { closest.setClosest(true);
CaptureSearchResult closest = cResults.getClosest(); if (closest != null) { closest.setClosest(true);