@Override public void flushCacheEntriesInvalidatedByRequest(final HttpHost host, final HttpRequest request) { if (log.isDebugEnabled()) { log.debug("Flush cache entries invalidated by request: " + host + "; " + new RequestLine(request)); } cacheInvalidator.flushCacheEntriesInvalidatedByRequest(host, request, cacheKeyGenerator, storage); }
@Override public Cancellable flushCacheEntriesInvalidatedByRequest( final HttpHost host, final HttpRequest request, final FutureCallback<Boolean> callback) { if (log.isDebugEnabled()) { log.debug("Flush cache entries invalidated by request: " + host + "; " + new RequestLine(request)); } return cacheInvalidator.flushCacheEntriesInvalidatedByRequest(host, request, cacheKeyGenerator, storage, callback); }
@Override public void flushCacheEntriesFor(final HttpHost host, final HttpRequest request) { if (log.isDebugEnabled()) { log.debug("Flush cache entries: " + host + "; " + new RequestLine(request)); } if (!StandardMethods.isSafe(request.getMethod())) { final String cacheKey = cacheKeyGenerator.generateKey(host, request); try { storage.removeEntry(cacheKey); } catch (final ResourceIOException ex) { if (log.isWarnEnabled()) { log.warn("I/O error removing cache entry with key " + cacheKey); } } } }
@Override public void flushCacheEntriesInvalidatedByExchange(final HttpHost host, final HttpRequest request, final HttpResponse response) { if (log.isDebugEnabled()) { log.debug("Flush cache entries invalidated by exchange: " + host + "; " + new RequestLine(request) + " -> " + new StatusLine(response)); } if (!StandardMethods.isSafe(request.getMethod())) { cacheInvalidator.flushCacheEntriesInvalidatedByExchange(host, request, response, cacheKeyGenerator, storage); } }
@Override public void reuseVariantEntryFor( final HttpHost host, final HttpRequest request, final Variant variant) { if (log.isDebugEnabled()) { log.debug("Re-use variant entry: " + host + "; " + new RequestLine(request) + " / " + variant); } final String cacheKey = cacheKeyGenerator.generateKey(host, request); final HttpCacheEntry entry = variant.getEntry(); final String variantKey = cacheKeyGenerator.generateVariantKey(request, entry); final String variantCacheKey = variant.getCacheKey(); try { storage.updateEntry(cacheKey, new HttpCacheCASOperation() { @Override public HttpCacheEntry execute(final HttpCacheEntry existing) throws ResourceIOException { return cacheUpdateHandler.updateParentCacheEntry(request.getRequestUri(), existing, entry, variantKey, variantCacheKey); } }); } catch (final HttpCacheUpdateException ex) { if (log.isWarnEnabled()) { log.warn("Cannot update cache entry with key " + cacheKey); } } catch (final ResourceIOException ex) { if (log.isWarnEnabled()) { log.warn("I/O error updating cache entry with key " + cacheKey); } } }
@Override public HttpCacheEntry updateCacheEntry( final HttpHost host, final HttpRequest request, final HttpCacheEntry stale, final HttpResponse originResponse, final Date requestSent, final Date responseReceived) { if (log.isDebugEnabled()) { log.debug("Update cache entry: " + host + "; " + new RequestLine(request)); } final String cacheKey = cacheKeyGenerator.generateKey(host, request); try { final HttpCacheEntry updatedEntry = cacheUpdateHandler.updateCacheEntry( request.getRequestUri(), stale, requestSent, responseReceived, originResponse); storeInCache(cacheKey, host, request, updatedEntry); return updatedEntry; } catch (final ResourceIOException ex) { if (log.isWarnEnabled()) { log.warn("I/O error updating cache entry with key " + cacheKey); } return stale; } }
@Override public Cancellable flushCacheEntriesInvalidatedByExchange( final HttpHost host, final HttpRequest request, final HttpResponse response, final FutureCallback<Boolean> callback) { if (log.isDebugEnabled()) { log.debug("Flush cache entries invalidated by exchange: " + host + "; " + new RequestLine(request) + " -> " + new StatusLine(response)); } if (!StandardMethods.isSafe(request.getMethod())) { return cacheInvalidator.flushCacheEntriesInvalidatedByExchange(host, request, response, cacheKeyGenerator, storage, callback); } callback.completed(Boolean.TRUE); return Operations.nonCancellable(); }
@Override public HttpCacheEntry updateVariantCacheEntry( final HttpHost host, final HttpRequest request, final HttpResponse originResponse, final Variant variant, final Date requestSent, final Date responseReceived) { if (log.isDebugEnabled()) { log.debug("Update variant cache entry: " + host + "; " + new RequestLine(request) + " / " + variant); } final HttpCacheEntry entry = variant.getEntry(); final String cacheKey = variant.getCacheKey(); try { final HttpCacheEntry updatedEntry = cacheUpdateHandler.updateCacheEntry( request.getRequestUri(), entry, requestSent, responseReceived, originResponse); storeEntry(cacheKey, updatedEntry); return updatedEntry; } catch (final ResourceIOException ex) { if (log.isWarnEnabled()) { log.warn("I/O error updating cache entry with key " + cacheKey); } return entry; } }
@Override public HttpCacheEntry getCacheEntry(final HttpHost host, final HttpRequest request) { if (log.isDebugEnabled()) { log.debug("Get cache entry: " + host + "; " + new RequestLine(request));
@Override public Map<String, Variant> getVariantCacheEntriesWithEtags(final HttpHost host, final HttpRequest request) { if (log.isDebugEnabled()) { log.debug("Get variant cache entries: " + host + "; " + new RequestLine(request));
final HttpHost host, final HttpRequest request, final FutureCallback<Map<String, Variant>> callback) { if (log.isDebugEnabled()) { log.debug("Get variant cache entries: " + host + "; " + new RequestLine(request));
final FutureCallback<HttpCacheEntry> callback) { if (log.isDebugEnabled()) { log.debug("Update cache entry: " + host + "; " + new RequestLine(request));
@Override public Cancellable getCacheEntry(final HttpHost host, final HttpRequest request, final FutureCallback<HttpCacheEntry> callback) { if (log.isDebugEnabled()) { log.debug("Get cache entry: " + host + "; " + new RequestLine(request));
@Override public HttpCacheEntry createCacheEntry( final HttpHost host, final HttpRequest request, final HttpResponse originResponse, final ByteArrayBuffer content, final Date requestSent, final Date responseReceived) { if (log.isDebugEnabled()) { log.debug("Create cache entry: " + host + "; " + new RequestLine(request)); } final String cacheKey = cacheKeyGenerator.generateKey(host, request); try { final HttpCacheEntry entry = cacheUpdateHandler.createtCacheEntry(request, originResponse, content, requestSent, responseReceived); storeInCache(cacheKey, host, request, entry); return entry; } catch (final ResourceIOException ex) { if (log.isWarnEnabled()) { log.warn("I/O error creating cache entry with key " + cacheKey); } return new HttpCacheEntry( requestSent, responseReceived, originResponse.getCode(), originResponse.getHeaders(), content != null ? HeapResourceFactory.INSTANCE.generate(null, content.array(), 0, content.length()) : null); } }
final HttpHost host, final HttpRequest request, final Variant variant, final FutureCallback<Boolean> callback) { if (log.isDebugEnabled()) { log.debug("Re-use variant entry: " + host + "; " + new RequestLine(request) + " / " + variant);
final FutureCallback<HttpCacheEntry> callback) { if (log.isDebugEnabled()) { log.debug("Update variant cache entry: " + host + "; " + new RequestLine(request) + " / " + variant);
final HttpHost host, final HttpRequest request, final FutureCallback<Boolean> callback) { if (log.isDebugEnabled()) { log.debug("Flush cache entries: " + host + "; " + new RequestLine(request));
final FutureCallback<HttpCacheEntry> callback) { if (log.isDebugEnabled()) { log.debug("Create cache entry: " + host + "; " + new RequestLine(request));
@Override public void sendRequest( final HttpRequest request, final EntityDetails entityDetails, final HttpContext context) throws HttpException, IOException { if (log.isDebugEnabled()) { log.debug(exchangeId + ": send request " + new RequestLine(request) + ", " + (entityDetails != null ? "entity len " + entityDetails.getContentLength() : "null entity")); } channel.sendRequest(request, entityDetails, context); }
@Override protected void writeHeadLine( final ClassicHttpRequest message, final CharArrayBuffer lineBuf) throws IOException { final ProtocolVersion transportVersion = message.getVersion(); getLineFormatter().formatRequestLine(lineBuf, new RequestLine( message.getMethod(), message.getRequestUri(), transportVersion != null ? transportVersion : HttpVersion.HTTP_1_1)); }