Class ConditionalRequestBuilder


  • @Contract(threading=IMMUTABLE)
    class ConditionalRequestBuilder
    extends java.lang.Object
    Since:
    4.1
    • Constructor Detail

      • ConditionalRequestBuilder

        ConditionalRequestBuilder()
    • Method Detail

      • buildConditionalRequest

        public HttpRequestWrapper buildConditionalRequest​(HttpRequestWrapper request,
                                                          HttpCacheEntry cacheEntry)
                                                   throws org.apache.http.ProtocolException
        When a HttpCacheEntry is stale but 'might' be used as a response to an HttpRequest we will attempt to revalidate the entry with the origin. Build the origin HttpRequest here and return it.
        Parameters:
        request - the original request from the caller
        cacheEntry - the entry that needs to be re-validated
        Returns:
        the wrapped request
        Throws:
        org.apache.http.ProtocolException - when I am unable to build a new origin request.
      • buildConditionalRequestFromVariants

        public HttpRequestWrapper buildConditionalRequestFromVariants​(HttpRequestWrapper request,
                                                                      java.util.Map<java.lang.String,​Variant> variants)
        When a HttpCacheEntry does not exist for a specific HttpRequest we attempt to see if an existing HttpCacheEntry is appropriate by building a conditional HttpRequest using the variants' ETag values. If no such values exist, the request is unmodified
        Parameters:
        request - the original request from the caller
        variants -
        Returns:
        the wrapped request
      • buildUnconditionalRequest

        public HttpRequestWrapper buildUnconditionalRequest​(HttpRequestWrapper request,
                                                            HttpCacheEntry entry)
        Returns a request to unconditionally validate a cache entry with the origin. In certain cases (due to multiple intervening caches) our cache may actually receive a response to a normal conditional validation where the Date header is actually older than that of our current cache entry. In this case, the protocol recommendation is to retry the validation and force syncup with the origin.
        Parameters:
        request - client request we are trying to satisfy
        entry - existing cache entry we are trying to validate
        Returns:
        an unconditional validation request