/** * Cache the HttpResponse object before being returned to caller. * The default implementation also invalidate the response object by marking it as valid so the * next request can detect if it has been invalidated. * Override this if you need to add additional processing to cache the response. * * @param request * @param fetchedResponse * @return HttpResponse object that has been updated with some metadata tags. */ protected HttpResponse cacheFetchedResponse(HttpRequest request, HttpResponse fetchedResponse) { if (!request.getIgnoreCache()) { // Mark the response with invalidation information prior to caching if (fetchedResponse.getCacheTtl() > 0) { fetchedResponse = invalidationService.markResponse(request, fetchedResponse); } HttpResponse cached = httpCache.addResponse(request, fetchedResponse); if (cached != null) { fetchedResponse = cached; // possibly modified response. } } return fetchedResponse; }
/** * Check the HttpRequest object has already allow caching and if do try to get it from cache. * Override this if you want to add additional logic to get response for the request from cache. * * @param request * @return HttpResponse object which either the cached response or null */ protected HttpResponse checkCachedResponse(HttpRequest request) { HttpResponse cachedResponse; if (!request.getIgnoreCache()) { cachedResponse = httpCache.getResponse(request); } else { cachedResponse = null; } return cachedResponse; }
public void invalidateApplicationResources(Set<Uri> uris, SecurityToken token) { // TODO Add checks on content for (Uri uri : uris) { httpCache.removeResponse(new HttpRequest(uri)); } }
HttpResponse cachedResponse = httpCache.getResponse(request); fetchedResponse = invalidationService.markResponse(request, fetchedResponse); httpCache.addResponse(request, fetchedResponse);
HttpResponse cachedResponse = httpCache.getResponse(request); fetchedResponse = invalidationService.markResponse(request, fetchedResponse); httpCache.addResponse(request, fetchedResponse);
setUserAgent(request, context); HttpResponse response = httpCache.getResponse(request); httpCache.addResponse(request, response);
@Test public void testFetchWithInvalidationEnabled() throws Exception { cache.addResponse(new HttpRequest(URI), CACHEABLE); assertEquals(CACHEABLE, requestPipeline.execute(new HttpRequest(URI))); }
public void invalidateApplicationResources(Set<Uri> uris, SecurityToken token) { // TODO Add checks on content for (Uri uri : uris) { httpCache.removeResponse(new HttpRequest(uri)); } }
@Override public VisitStatus visit(Gadget gadget, Node node) throws RewritingException { if (super.visit(gadget, node).equals(VisitStatus.RESERVE_NODE)) { Element element = (Element) node; String nodeName = node.getNodeName().toLowerCase(); String uriStr = element.getAttribute(resourceTags.get(nodeName)).trim(); HttpRequest request = createNewHttpRequest(gadget, uriStr); HttpResponse response = cache.getResponse(request); if (response == null) { return handleResponseNotInCache(request); } else { return handleResponseInCache(request, response); } } return VisitStatus.BYPASS; }
setUserAgent(request, context); HttpResponse response = httpCache.getResponse(request); httpCache.addResponse(request, response);
@Test public void testFetchWithInvalidationEnabled() throws Exception { cache.addResponse(new HttpRequest(URI), CACHEABLE); assertEquals(CACHEABLE, requestPipeline.execute(new HttpRequest(URI))); }
public void invalidateApplicationResources(Set<Uri> uris, SecurityToken token) { // TODO Add checks on content for (Uri uri : uris) { httpCache.removeResponse(new HttpRequest(uri)); } }
setUserAgent(request, context); HttpResponse response = httpCache.getResponse(request); httpCache.addResponse(request, response);
@Test public void testFetchWithInvalidationEnabled() throws Exception { cache.addResponse(new HttpRequest(URI), CACHEABLE); assertEquals(CACHEABLE, requestPipeline.execute(new HttpRequest(URI))); }
&& fetchedResponse.getExpiresTime() == -1) { return httpCache.removeResponse(request);
@Test public void testInvalidateUrl() throws Exception { cache.addResponse(new HttpRequest(URI), CACHEABLE); assertEquals(1, cacheProvider.createCache(DefaultHttpCache.CACHE_NAME).getSize()); service.invalidateApplicationResources( ImmutableSet.of(URI), appxToken); assertEquals(0, cacheProvider.createCache(DefaultHttpCache.CACHE_NAME).getSize()); }
@Test public void testInvalidateUrl() throws Exception { cache.addResponse(new HttpRequest(URI), CACHEABLE); assertEquals(1, cacheProvider.createCache(DefaultHttpCache.CACHE_NAME).getSize()); service.invalidateApplicationResources( ImmutableSet.of(URI), appxToken); assertEquals(0, cacheProvider.createCache(DefaultHttpCache.CACHE_NAME).getSize()); }
@Test public void testFetchInvalidatedContent() throws Exception { // Prime the cache cache.addResponse(new HttpRequest(URI), CACHEABLE); // Invalidate the entry service.invalidateApplicationResources( ImmutableSet.of(URI), appxToken); fetcher.response = new HttpResponseBuilder(CACHEABLE).setResponseString("NEWCONTENT1"). create(); assertEquals(requestPipeline.execute(new HttpRequest(URI)), fetcher.response); }
@Test public void testFetchInvalidatedContent() throws Exception { // Prime the cache cache.addResponse(new HttpRequest(URI), CACHEABLE); // Invalidate the entry service.invalidateApplicationResources( ImmutableSet.of(URI), appxToken); fetcher.response = new HttpResponseBuilder(CACHEABLE).setResponseString("NEWCONTENT1"). create(); assertEquals(requestPipeline.execute(new HttpRequest(URI)), fetcher.response); }
@Test public void testInvalidateUrl() throws Exception { cache.addResponse(new HttpRequest(URI), CACHEABLE); assertEquals(1, cacheProvider.createCache(DefaultHttpCache.CACHE_NAME).getSize()); service.invalidateApplicationResources( ImmutableSet.of(URI), appxToken); assertEquals(0, cacheProvider.createCache(DefaultHttpCache.CACHE_NAME).getSize()); }