Class CacheValidityPolicy
- java.lang.Object
-
- org.apache.hc.client5.http.impl.cache.CacheValidityPolicy
-
class CacheValidityPolicy extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description private floatheuristicCoefficientprivate org.apache.hc.core5.util.TimeValueheuristicDefaultLifetimeprivate static org.slf4j.LoggerLOGprivate booleansharedprivate booleanuseHeuristicCaching
-
Constructor Summary
Constructors Constructor Description CacheValidityPolicy()Default constructor for CacheValidityPolicy.CacheValidityPolicy(CacheConfig config)Constructs a CacheValidityPolicy with the provided CacheConfig.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) longgetAgeValue(HttpCacheEntry entry)Extracts and processes the Age value from an HttpCacheEntry by tokenizing the Age header value.(package private) org.apache.hc.core5.util.TimeValuegetApparentAge(HttpCacheEntry entry)(package private) org.apache.hc.core5.util.TimeValuegetCorrectedAgeValue(HttpCacheEntry entry)(package private) org.apache.hc.core5.util.TimeValuegetCorrectedInitialAge(HttpCacheEntry entry)org.apache.hc.core5.util.TimeValuegetCurrentAge(HttpCacheEntry entry, java.time.Instant now)org.apache.hc.core5.util.TimeValuegetFreshnessLifetime(ResponseCacheControl responseCacheControl, HttpCacheEntry entry)Calculate the freshness lifetime of a response based on the provided cache control and cache entry.(package private) org.apache.hc.core5.util.TimeValuegetHeuristicFreshnessLifetime(HttpCacheEntry entry)(package private) org.apache.hc.core5.util.TimeValuegetResidentTime(HttpCacheEntry entry, java.time.Instant now)(package private) org.apache.hc.core5.util.TimeValuegetResponseDelay(HttpCacheEntry entry)
-
-
-
Field Detail
-
LOG
private static final org.slf4j.Logger LOG
-
shared
private final boolean shared
-
useHeuristicCaching
private final boolean useHeuristicCaching
-
heuristicCoefficient
private final float heuristicCoefficient
-
heuristicDefaultLifetime
private final org.apache.hc.core5.util.TimeValue heuristicDefaultLifetime
-
-
Constructor Detail
-
CacheValidityPolicy
CacheValidityPolicy(CacheConfig config)
Constructs a CacheValidityPolicy with the provided CacheConfig. If the config is null, it will use default heuristic coefficient and default heuristic lifetime from CacheConfig.DEFAULT.- Parameters:
config- The CacheConfig to use for this CacheValidityPolicy. If null, default values are used.
-
CacheValidityPolicy
CacheValidityPolicy()
Default constructor for CacheValidityPolicy. Initializes the policy with default values.
-
-
Method Detail
-
getCurrentAge
public org.apache.hc.core5.util.TimeValue getCurrentAge(HttpCacheEntry entry, java.time.Instant now)
-
getFreshnessLifetime
public org.apache.hc.core5.util.TimeValue getFreshnessLifetime(ResponseCacheControl responseCacheControl, HttpCacheEntry entry)
Calculate the freshness lifetime of a response based on the provided cache control and cache entry.- If the cache is shared and the s-maxage response directive is present, use its value.
- If the max-age response directive is present, use its value.
- If the Expires response header field is present, use its value minus the value of the Date response header field.
- Otherwise, a heuristic freshness lifetime might be applicable.
- Parameters:
responseCacheControl- the cache control directives associated with the response.entry- the cache entry associated with the response.- Returns:
- the calculated freshness lifetime as a
TimeValue.
-
getHeuristicFreshnessLifetime
org.apache.hc.core5.util.TimeValue getHeuristicFreshnessLifetime(HttpCacheEntry entry)
-
getApparentAge
org.apache.hc.core5.util.TimeValue getApparentAge(HttpCacheEntry entry)
-
getAgeValue
long getAgeValue(HttpCacheEntry entry)
Extracts and processes the Age value from an HttpCacheEntry by tokenizing the Age header value. The Age header value is interpreted as a sequence of tokens, and the first token is parsed into a number representing the age in delta-seconds. If the first token cannot be parsed into a number, the Age value is considered as invalid and this method returns 0. If the first token represents a negative number or a number that exceeds Integer.MAX_VALUE, the Age value is set to MAX_AGE (in seconds). This method uses CacheSupport.parseTokens to robustly handle the Age header value.Note: If the HttpCacheEntry contains multiple Age headers, only the first one is considered.
- Parameters:
entry- The HttpCacheEntry from which to extract the Age value.- Returns:
- The Age value in delta-seconds, or MAX_AGE in seconds if the Age value exceeds Integer.MAX_VALUE or is negative. If the Age value is invalid (cannot be parsed into a number or contains non-numeric characters), this method returns 0.
-
getCorrectedAgeValue
org.apache.hc.core5.util.TimeValue getCorrectedAgeValue(HttpCacheEntry entry)
-
getResponseDelay
org.apache.hc.core5.util.TimeValue getResponseDelay(HttpCacheEntry entry)
-
getCorrectedInitialAge
org.apache.hc.core5.util.TimeValue getCorrectedInitialAge(HttpCacheEntry entry)
-
getResidentTime
org.apache.hc.core5.util.TimeValue getResidentTime(HttpCacheEntry entry, java.time.Instant now)
-
-