You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by Gary Gregory <ga...@gmail.com> on 2019/12/15 14:22:41 UTC

Re: [httpcomponents-client] 01/01: Intermediate work

Michael:

public boolean isResponseFresh(final HttpCacheEntry entry, final Date now) {
-        return (getCurrentAgeSecs(entry, now) <
getFreshnessLifetimeSecs(entry));
+        return (getCurrentAge(entry,
now).compareTo(getFreshnessLifetime(entry)) == -1);
     }

Can you drop the extra ()'s in 'return (expr);' so we have the normal
'return expr;' ?

TY,
Gary

On Sun, Dec 15, 2019 at 7:33 AM <mi...@apache.org> wrote:

> This is an automated email from the ASF dual-hosted git repository.
>
> michaelo pushed a commit to branch HTTPCLIENT-2036
> in repository
> https://gitbox.apache.org/repos/asf/httpcomponents-client.git
>
> commit 85b9cd06c7bf1988f43b312ad6fa154e26aab9a3
> Author: Michael Osipov <mi...@apache.org>
> AuthorDate: Sun Dec 15 13:33:11 2019 +0100
>
>     Intermediate work
> ---
>  .../http/impl/cache/CacheValidityPolicy.java       | 88
> ++++++++++++----------
>  .../impl/cache/CachedHttpResponseGenerator.java    |  2 +-
>  .../cache/CachedResponseSuitabilityChecker.java    | 10 +--
>  .../client5/http/impl/cache/CachingExecBase.java   |  6 +-
>  .../http/impl/cache/TestCacheValidityPolicy.java   | 62 +++++++--------
>  .../cache/TestCachedHttpResponseGenerator.java     |  8 +-
>  .../http/impl/cache/TestCachingExecChain.java      |  2 +-
>  7 files changed, 92 insertions(+), 86 deletions(-)
>
> diff --git
> a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheValidityPolicy.java
> b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheValidityPolicy.java
> index 7f7a674..5bd00d1 100644
> ---
> a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheValidityPolicy.java
> +++
> b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheValidityPolicy.java
> @@ -39,6 +39,7 @@ import org.apache.hc.core5.http.HttpHeaders;
>  import org.apache.hc.core5.http.HttpRequest;
>  import org.apache.hc.core5.http.MessageHeaders;
>  import org.apache.hc.core5.http.message.MessageSupport;
> +import org.apache.hc.core5.util.TimeValue;
>
>  class CacheValidityPolicy {
>
> @@ -48,37 +49,38 @@ class CacheValidityPolicy {
>          super();
>      }
>
> -    public long getCurrentAgeSecs(final HttpCacheEntry entry, final Date
> now) {
> -        return getCorrectedInitialAgeSecs(entry) +
> getResidentTimeSecs(entry, now);
> +    public TimeValue getCurrentAge(final HttpCacheEntry entry, final Date
> now) {
> +        return
> TimeValue.ofMilliseconds(getCorrectedInitialAge(entry).toMillis() +
> getResidentTime(entry, now).toMillis());
>      }
>
> -    public long getFreshnessLifetimeSecs(final HttpCacheEntry entry) {
> +    public TimeValue getFreshnessLifetime(final HttpCacheEntry entry) {
>          final long maxAge = getMaxAge(entry);
>          if (maxAge > -1) {
> -            return maxAge;
> +            return TimeValue.ofSeconds(maxAge);
>          }
>
>          final Date dateValue = entry.getDate();
>          if (dateValue == null) {
> -            return 0L;
> +            return TimeValue.ZERO_MILLISECONDS;
>          }
>
>          final Date expiry = DateUtils.parseDate(entry,
> HeaderConstants.EXPIRES);
>          if (expiry == null) {
> -            return 0;
> +            return TimeValue.ZERO_MILLISECONDS;
>          }
>          final long diff = expiry.getTime() - dateValue.getTime();
> -        return (diff / 1000);
> +        return TimeValue.ofMilliseconds(diff);
>      }
>
>      public boolean isResponseFresh(final HttpCacheEntry entry, final Date
> now) {
> -        return (getCurrentAgeSecs(entry, now) <
> getFreshnessLifetimeSecs(entry));
> +        return (getCurrentAge(entry,
> now).compareTo(getFreshnessLifetime(entry)) == -1);
>      }
>
>      /**
>       * Decides if this response is fresh enough based Last-Modified and
> Date, if available.
> -     * This entry is meant to be used when isResponseFresh returns
> false.  The algorithm is as follows:
> +     * This entry is meant to be used when isResponseFresh returns false.
>       *
> +     * The algorithm is as follows:
>       * if last-modified and date are defined, freshness lifetime is
> coefficient*(date-lastModified),
>       * else freshness lifetime is defaultLifetime
>       *
> @@ -89,21 +91,21 @@ class CacheValidityPolicy {
>       * @return {@code true} if the response is fresh
>       */
>      public boolean isResponseHeuristicallyFresh(final HttpCacheEntry
> entry,
> -            final Date now, final float coefficient, final long
> defaultLifetime) {
> -        return (getCurrentAgeSecs(entry, now) <
> getHeuristicFreshnessLifetimeSecs(entry, coefficient, defaultLifetime));
> +            final Date now, final float coefficient, final TimeValue
> defaultLifetime) {
> +        return (getCurrentAge(entry,
> now).compareTo(getHeuristicFreshnessLifetime(entry, coefficient,
> defaultLifetime)) == -1);
>      }
>
> -    public long getHeuristicFreshnessLifetimeSecs(final HttpCacheEntry
> entry,
> -            final float coefficient, final long defaultLifetime) {
> +    public TimeValue getHeuristicFreshnessLifetime(final HttpCacheEntry
> entry,
> +            final float coefficient, final TimeValue defaultLifetime) {
>          final Date dateValue = entry.getDate();
>          final Date lastModifiedValue = DateUtils.parseDate(entry,
> HeaderConstants.LAST_MODIFIED);
>
>          if (dateValue != null && lastModifiedValue != null) {
>              final long diff = dateValue.getTime() -
> lastModifiedValue.getTime();
>              if (diff < 0) {
> -                return 0;
> +                return TimeValue.ZERO_MILLISECONDS;
>              }
> -            return (long)(coefficient * (diff / 1000));
> +            return TimeValue.ofMilliseconds((long) (coefficient * diff));
>          }
>
>          return defaultLifetime;
> @@ -128,8 +130,9 @@ class CacheValidityPolicy {
>              final HeaderElement elt = it.next();
>              if
> (HeaderConstants.STALE_WHILE_REVALIDATE.equalsIgnoreCase(elt.getName())) {
>                  try {
> +                    // in seconds
>                      final int allowedStalenessLifetime =
> Integer.parseInt(elt.getValue());
> -                    if (getStalenessSecs(entry, now) <=
> allowedStalenessLifetime) {
> +                    if (getStaleness(entry,
> now).compareTo(TimeValue.ofSeconds(allowedStalenessLifetime)) <= 0) {
>                          return true;
>                      }
>                  } catch (final NumberFormatException nfe) {
> @@ -142,20 +145,21 @@ class CacheValidityPolicy {
>      }
>
>      public boolean mayReturnStaleIfError(final HttpRequest request, final
> HttpCacheEntry entry, final Date now) {
> -        final long stalenessSecs = getStalenessSecs(entry, now);
> -        return mayReturnStaleIfError(request,
> HeaderConstants.CACHE_CONTROL, stalenessSecs)
> -                || mayReturnStaleIfError(entry,
> HeaderConstants.CACHE_CONTROL, stalenessSecs);
> +        final TimeValue staleness = getStaleness(entry, now);
> +        return mayReturnStaleIfError(request,
> HeaderConstants.CACHE_CONTROL, staleness)
> +                || mayReturnStaleIfError(entry,
> HeaderConstants.CACHE_CONTROL, staleness);
>      }
>
> -    private boolean mayReturnStaleIfError(final MessageHeaders headers,
> final String name, final long stalenessSecs) {
> +    private boolean mayReturnStaleIfError(final MessageHeaders headers,
> final String name, final TimeValue staleness) {
>          boolean result = false;
>          final Iterator<HeaderElement> it =
> MessageSupport.iterate(headers, name);
>          while (it.hasNext()) {
>              final HeaderElement elt = it.next();
>              if (HeaderConstants.STALE_IF_ERROR.equals(elt.getName())) {
>                  try {
> -                    final int staleIfErrorSecs =
> Integer.parseInt(elt.getValue());
> -                    if (stalenessSecs <= staleIfErrorSecs) {
> +                    // in seconds
> +                    final int staleIfError =
> Integer.parseInt(elt.getValue());
> +                    if
> (staleness.compareTo(TimeValue.ofSeconds(staleIfError)) <= 0) {
>                          result = true;
>                          break;
>                      }
> @@ -192,19 +196,20 @@ class CacheValidityPolicy {
>          return true;
>      }
>
> -    protected long getApparentAgeSecs(final HttpCacheEntry entry) {
> +    protected TimeValue getApparentAge(final HttpCacheEntry entry) {
>          final Date dateValue = entry.getDate();
>          if (dateValue == null) {
> -            return MAX_AGE;
> +            return TimeValue.ofSeconds(MAX_AGE);
>          }
>          final long diff = entry.getResponseDate().getTime() -
> dateValue.getTime();
>          if (diff < 0L) {
> -            return 0;
> +            return TimeValue.ZERO_MILLISECONDS;
>          }
> -        return (diff / 1000);
> +        return TimeValue.ofMilliseconds(diff);
>      }
>
>      protected long getAgeValue(final HttpCacheEntry entry) {
> +        // This is a header value, we leave as-is
>          long ageValue = 0;
>          for (final Header hdr : entry.getHeaders(HeaderConstants.AGE)) {
>              long hdrAge;
> @@ -221,27 +226,28 @@ class CacheValidityPolicy {
>          return ageValue;
>      }
>
> -    protected long getCorrectedReceivedAgeSecs(final HttpCacheEntry
> entry) {
> -        final long apparentAge = getApparentAgeSecs(entry);
> +    protected TimeValue getCorrectedReceivedAge(final HttpCacheEntry
> entry) {
> +        final TimeValue apparentAge = getApparentAge(entry);
>          final long ageValue = getAgeValue(entry);
> -        return (apparentAge > ageValue) ? apparentAge : ageValue;
> +        return (apparentAge.toSeconds() > ageValue) ? apparentAge :
> TimeValue.ofSeconds(ageValue);
>      }
>
> -    protected long getResponseDelaySecs(final HttpCacheEntry entry) {
> +    protected TimeValue getResponseDelay(final HttpCacheEntry entry) {
>          final long diff = entry.getResponseDate().getTime() -
> entry.getRequestDate().getTime();
> -        return (diff / 1000L);
> +        return TimeValue.ofMilliseconds(diff);
>      }
>
> -    protected long getCorrectedInitialAgeSecs(final HttpCacheEntry entry)
> {
> -        return getCorrectedReceivedAgeSecs(entry) +
> getResponseDelaySecs(entry);
> +    protected TimeValue getCorrectedInitialAge(final HttpCacheEntry
> entry) {
> +        return
> TimeValue.ofMilliseconds(getCorrectedReceivedAge(entry).toMillis() +
> getResponseDelay(entry).toMillis());
>      }
>
> -    protected long getResidentTimeSecs(final HttpCacheEntry entry, final
> Date now) {
> +    protected TimeValue getResidentTime(final HttpCacheEntry entry, final
> Date now) {
>          final long diff = now.getTime() -
> entry.getResponseDate().getTime();
> -        return (diff / 1000L);
> +        return TimeValue.ofMilliseconds(diff);
>      }
>
>      protected long getMaxAge(final HttpCacheEntry entry) {
> +        // This is a header value, we leave as-is
>          long maxAge = -1;
>          final Iterator<HeaderElement> it = MessageSupport.iterate(entry,
> HeaderConstants.CACHE_CONTROL);
>          while (it.hasNext()) {
> @@ -272,13 +278,13 @@ class CacheValidityPolicy {
>          return false;
>      }
>
> -    public long getStalenessSecs(final HttpCacheEntry entry, final Date
> now) {
> -        final long age = getCurrentAgeSecs(entry, now);
> -        final long freshness = getFreshnessLifetimeSecs(entry);
> -        if (age <= freshness) {
> -            return 0L;
> +    public TimeValue getStaleness(final HttpCacheEntry entry, final Date
> now) {
> +        final TimeValue age = getCurrentAge(entry, now);
> +        final TimeValue freshness = getFreshnessLifetime(entry);
> +        if (age.compareTo(freshness) <= 0) {
> +            return TimeValue.ZERO_MILLISECONDS;
>          }
> -        return (age - freshness);
> +        return TimeValue.ofMilliseconds(age.toMillis() -
> freshness.toMillis());
>      }
>
>
> diff --git
> a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachedHttpResponseGenerator.java
> b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachedHttpResponseGenerator.java
> index e291f6e..1f8bd42 100644
> ---
> a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachedHttpResponseGenerator.java
> +++
> b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachedHttpResponseGenerator.java
> @@ -78,7 +78,7 @@ class CachedHttpResponseGenerator {
>              response.setBodyBytes(content, contentType);
>          }
>
> -        final long age = this.validityStrategy.getCurrentAgeSecs(entry,
> now);
> +        final long age = this.validityStrategy.getCurrentAge(entry, now);
>          if (age > 0) {
>              if (age >= Integer.MAX_VALUE) {
>                  response.setHeader(HeaderConstants.AGE, "2147483648");
> diff --git
> a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachedResponseSuitabilityChecker.java
> b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachedResponseSuitabilityChecker.java
> index eb5210e..9f2a33c 100644
> ---
> a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachedResponseSuitabilityChecker.java
> +++
> b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachedResponseSuitabilityChecker.java
> @@ -85,7 +85,7 @@ class CachedResponseSuitabilityChecker {
>          if (maxStale == -1) {
>              return false;
>          }
> -        return (maxStale > validityStrategy.getStalenessSecs(entry, now));
> +        return (maxStale > validityStrategy.getStaleness(entry, now));
>      }
>
>      private boolean originInsistsOnFreshness(final HttpCacheEntry entry) {
> @@ -187,7 +187,7 @@ class CachedResponseSuitabilityChecker {
>              if
> (HeaderConstants.CACHE_CONTROL_MAX_AGE.equals(elt.getName())) {
>                  try {
>                      final int maxAge = Integer.parseInt(elt.getValue());
> -                    if (validityStrategy.getCurrentAgeSecs(entry, now) >
> maxAge) {
> +                    if (validityStrategy.getCurrentAge(entry, now) >
> maxAge) {
>                          log.debug("Response from cache was not suitable
> due to max age");
>                          return false;
>                      }
> @@ -201,7 +201,7 @@ class CachedResponseSuitabilityChecker {
>              if
> (HeaderConstants.CACHE_CONTROL_MAX_STALE.equals(elt.getName())) {
>                  try {
>                      final int maxStale = Integer.parseInt(elt.getValue());
> -                    if (validityStrategy.getFreshnessLifetimeSecs(entry)
> > maxStale) {
> +                    if (validityStrategy.getFreshnessLifetime(entry) >
> maxStale) {
>                          log.debug("Response from cache was not suitable
> due to max stale freshness");
>                          return false;
>                      }
> @@ -218,8 +218,8 @@ class CachedResponseSuitabilityChecker {
>                      if (minFresh < 0L) {
>                          return false;
>                      }
> -                    final long age =
> validityStrategy.getCurrentAgeSecs(entry, now);
> -                    final long freshness =
> validityStrategy.getFreshnessLifetimeSecs(entry);
> +                    final long age =
> validityStrategy.getCurrentAge(entry, now);
> +                    final long freshness =
> validityStrategy.getFreshnessLifetime(entry);
>                      if (freshness - age < minFresh) {
>                          log.debug("Response from cache was not suitable
> due to min fresh " +
>                                  "freshness requirement");
> diff --git
> a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachingExecBase.java
> b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachingExecBase.java
> index cb7a421..2b7991d 100644
> ---
> a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachingExecBase.java
> +++
> b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachingExecBase.java
> @@ -189,7 +189,7 @@ public class CachingExecBase {
>              cachedResponse = responseGenerator.generateResponse(request,
> entry);
>          }
>          setResponseStatus(context, CacheResponseStatus.CACHE_HIT);
> -        if (validityPolicy.getStalenessSecs(entry, now) > 0L) {
> +        if (validityPolicy.getStaleness(entry, now) > 0L) {
>              cachedResponse.addHeader(HeaderConstants.WARNING,"110
> localhost \"Response is stale\"");
>          }
>          return cachedResponse;
> @@ -248,8 +248,8 @@ public class CachingExecBase {
>              if
> (HeaderConstants.CACHE_CONTROL_MAX_STALE.equals(elt.getName())) {
>                  try {
>                      final int maxStale = Integer.parseInt(elt.getValue());
> -                    final long age =
> validityPolicy.getCurrentAgeSecs(entry, now);
> -                    final long lifetime =
> validityPolicy.getFreshnessLifetimeSecs(entry);
> +                    final long age = validityPolicy.getCurrentAge(entry,
> now);
> +                    final long lifetime =
> validityPolicy.getFreshnessLifetime(entry);
>                      if (age - lifetime > maxStale) {
>                          return true;
>                      }
> diff --git
> a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCacheValidityPolicy.java
> b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCacheValidityPolicy.java
> index 4da26f7..93922bb 100644
> ---
> a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCacheValidityPolicy.java
> +++
> b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCacheValidityPolicy.java
> @@ -68,7 +68,7 @@ public class TestCacheValidityPolicy {
>                  new BasicHeader("Server", "MockServer/1.0")
>          };
>          final HttpCacheEntry entry =
> HttpTestUtils.makeCacheEntry(headers);
> -        assertEquals(2147483648L, impl.getApparentAgeSecs(entry));
> +        assertEquals(2147483648L, impl.getApparentAge(entry));
>      }
>
>      @Test
> @@ -77,7 +77,7 @@ public class TestCacheValidityPolicy {
>                  .formatDate(tenSecondsAgo)) };
>
>          final HttpCacheEntry entry = HttpTestUtils.makeCacheEntry(now,
> sixSecondsAgo, headers);
> -        assertEquals(4, impl.getApparentAgeSecs(entry));
> +        assertEquals(4, impl.getApparentAge(entry));
>      }
>
>      @Test
> @@ -85,7 +85,7 @@ public class TestCacheValidityPolicy {
>          final Header[] headers = new Header[] { new BasicHeader("Date",
> DateUtils
>                  .formatDate(sixSecondsAgo)) };
>          final HttpCacheEntry entry  =
> HttpTestUtils.makeCacheEntry(now,tenSecondsAgo,headers);
> -        assertEquals(0, impl.getApparentAgeSecs(entry));
> +        assertEquals(0, impl.getApparentAge(entry));
>      }
>
>      @Test
> @@ -94,11 +94,11 @@ public class TestCacheValidityPolicy {
>          final HttpCacheEntry entry =
> HttpTestUtils.makeCacheEntry(headers);
>          impl = new CacheValidityPolicy() {
>              @Override
> -            protected long getApparentAgeSecs(final HttpCacheEntry ent) {
> +            protected long getApparentAge(final HttpCacheEntry ent) {
>                  return 6;
>              }
>          };
> -        assertEquals(10, impl.getCorrectedReceivedAgeSecs(entry));
> +        assertEquals(10, impl.getCorrectedReceivedAge(entry));
>      }
>
>      @Test
> @@ -107,17 +107,17 @@ public class TestCacheValidityPolicy {
>          final HttpCacheEntry entry =
> HttpTestUtils.makeCacheEntry(headers);
>          impl = new CacheValidityPolicy() {
>              @Override
> -            protected long getApparentAgeSecs(final HttpCacheEntry ent) {
> +            protected long getApparentAge(final HttpCacheEntry ent) {
>                  return 10;
>              }
>          };
> -        assertEquals(10, impl.getCorrectedReceivedAgeSecs(entry));
> +        assertEquals(10, impl.getCorrectedReceivedAge(entry));
>      }
>
>      @Test
>      public void
> testResponseDelayIsDifferenceBetweenResponseAndRequestTimes() {
>          final HttpCacheEntry entry =
> HttpTestUtils.makeCacheEntry(tenSecondsAgo, sixSecondsAgo);
> -        assertEquals(4, impl.getResponseDelaySecs(entry));
> +        assertEquals(4, impl.getResponseDelay(entry));
>      }
>
>      @Test
> @@ -125,22 +125,22 @@ public class TestCacheValidityPolicy {
>          final HttpCacheEntry entry = HttpTestUtils.makeCacheEntry();
>          impl = new CacheValidityPolicy() {
>              @Override
> -            protected long getCorrectedReceivedAgeSecs(final
> HttpCacheEntry ent) {
> +            protected long getCorrectedReceivedAge(final HttpCacheEntry
> ent) {
>                  return 7;
>              }
>
>              @Override
> -            protected long getResponseDelaySecs(final HttpCacheEntry ent)
> {
> +            protected long getResponseDelay(final HttpCacheEntry ent) {
>                  return 13;
>              }
>          };
> -        assertEquals(20, impl.getCorrectedInitialAgeSecs(entry));
> +        assertEquals(20, impl.getCorrectedInitialAge(entry));
>      }
>
>      @Test
>      public void testResidentTimeSecondsIsTimeSinceResponseTime() {
>          final HttpCacheEntry entry = HttpTestUtils.makeCacheEntry(now,
> sixSecondsAgo);
> -        assertEquals(6, impl.getResidentTimeSecs(entry, now));
> +        assertEquals(6, impl.getResidentTime(entry, now));
>      }
>
>      @Test
> @@ -148,29 +148,29 @@ public class TestCacheValidityPolicy {
>          final HttpCacheEntry entry = HttpTestUtils.makeCacheEntry();
>          impl = new CacheValidityPolicy() {
>              @Override
> -            protected long getCorrectedInitialAgeSecs(final
> HttpCacheEntry ent) {
> +            protected long getCorrectedInitialAge(final HttpCacheEntry
> ent) {
>                  return 11;
>              }
>              @Override
> -            protected long getResidentTimeSecs(final HttpCacheEntry ent,
> final Date d) {
> +            protected long getResidentTime(final HttpCacheEntry ent,
> final Date d) {
>                  return 17;
>              }
>          };
> -        assertEquals(28, impl.getCurrentAgeSecs(entry, new Date()));
> +        assertEquals(28, impl.getCurrentAge(entry, new Date()));
>      }
>
>      @Test
>      public void testFreshnessLifetimeIsSMaxAgeIfPresent() {
>          final Header[] headers = new Header[] { new
> BasicHeader("Cache-Control", "s-maxage=10") };
>          final HttpCacheEntry entry =
> HttpTestUtils.makeCacheEntry(headers);
> -        assertEquals(10, impl.getFreshnessLifetimeSecs(entry));
> +        assertEquals(10, impl.getFreshnessLifetime(entry));
>      }
>
>      @Test
>      public void testFreshnessLifetimeIsMaxAgeIfPresent() {
>          final Header[] headers = new Header[] { new
> BasicHeader("Cache-Control", "max-age=10") };
>          final HttpCacheEntry entry =
> HttpTestUtils.makeCacheEntry(headers);
> -        assertEquals(10, impl.getFreshnessLifetimeSecs(entry));
> +        assertEquals(10, impl.getFreshnessLifetime(entry));
>      }
>
>      @Test
> @@ -178,12 +178,12 @@ public class TestCacheValidityPolicy {
>          Header[] headers = new Header[] { new
> BasicHeader("Cache-Control", "max-age=10"),
>                  new BasicHeader("Cache-Control", "s-maxage=20") };
>          HttpCacheEntry entry = HttpTestUtils.makeCacheEntry(headers);
> -        assertEquals(10, impl.getFreshnessLifetimeSecs(entry));
> +        assertEquals(10, impl.getFreshnessLifetime(entry));
>
>          headers = new Header[] { new BasicHeader("Cache-Control",
> "max-age=20"),
>                  new BasicHeader("Cache-Control", "s-maxage=10") };
>          entry = HttpTestUtils.makeCacheEntry(headers);
> -        assertEquals(10, impl.getFreshnessLifetimeSecs(entry));
> +        assertEquals(10, impl.getFreshnessLifetime(entry));
>      }
>
>      @Test
> @@ -193,7 +193,7 @@ public class TestCacheValidityPolicy {
>                  new BasicHeader("Expires",
> DateUtils.formatDate(sixSecondsAgo)) };
>
>          final HttpCacheEntry entry =
> HttpTestUtils.makeCacheEntry(headers);
> -        assertEquals(10, impl.getFreshnessLifetimeSecs(entry));
> +        assertEquals(10, impl.getFreshnessLifetime(entry));
>      }
>
>      @Test
> @@ -203,7 +203,7 @@ public class TestCacheValidityPolicy {
>                  new BasicHeader("Expires",
> DateUtils.formatDate(sixSecondsAgo)) };
>
>          final HttpCacheEntry entry =
> HttpTestUtils.makeCacheEntry(headers);
> -        assertEquals(10, impl.getFreshnessLifetimeSecs(entry));
> +        assertEquals(10, impl.getFreshnessLifetime(entry));
>      }
>
>      @Test
> @@ -213,7 +213,7 @@ public class TestCacheValidityPolicy {
>                  new BasicHeader("Expires",
> DateUtils.formatDate(sixSecondsAgo)) };
>
>          final HttpCacheEntry entry =
> HttpTestUtils.makeCacheEntry(headers);
> -        assertEquals(4, impl.getFreshnessLifetimeSecs(entry));
> +        assertEquals(4, impl.getFreshnessLifetime(entry));
>      }
>
>      @Test
> @@ -223,14 +223,14 @@ public class TestCacheValidityPolicy {
>                  new BasicHeader("Last-Modified",
> DateUtils.formatDate(elevenSecondsAgo))
>          };
>          final HttpCacheEntry entry =
> HttpTestUtils.makeCacheEntry(headers);
> -        assertEquals(1, impl.getHeuristicFreshnessLifetimeSecs(entry,
> 0.1f, 0));
> +        assertEquals(1, impl.getHeuristicFreshnessLifetime(entry, 0.1f,
> 0));
>      }
>
>      @Test
>      public void testHeuristicFreshnessLifetimeDefaultsProperly() {
>          final long defaultFreshness = 10;
>          final HttpCacheEntry entry = HttpTestUtils.makeCacheEntry();
> -        assertEquals(defaultFreshness,
> impl.getHeuristicFreshnessLifetimeSecs(entry, 0.1f, defaultFreshness));
> +        assertEquals(defaultFreshness,
> impl.getHeuristicFreshnessLifetime(entry, 0.1f, defaultFreshness));
>      }
>
>      @Test
> @@ -241,7 +241,7 @@ public class TestCacheValidityPolicy {
>          };
>
>          final HttpCacheEntry entry =
> HttpTestUtils.makeCacheEntry(headers);
> -        assertTrue(impl.getHeuristicFreshnessLifetimeSecs(entry, 0.1f,
> 10) >= 0);
> +        assertTrue(impl.getHeuristicFreshnessLifetime(entry, 0.1f, 10) >=
> 0);
>      }
>
>      @Test
> @@ -249,13 +249,13 @@ public class TestCacheValidityPolicy {
>          final HttpCacheEntry entry = HttpTestUtils.makeCacheEntry();
>          impl = new CacheValidityPolicy() {
>              @Override
> -            public long getCurrentAgeSecs(final HttpCacheEntry e, final
> Date d) {
> +            public long getCurrentAge(final HttpCacheEntry e, final Date
> d) {
>                  assertSame(entry, e);
>                  assertEquals(now, d);
>                  return 6;
>              }
>              @Override
> -            public long getFreshnessLifetimeSecs(final HttpCacheEntry e) {
> +            public long getFreshnessLifetime(final HttpCacheEntry e) {
>                  assertSame(entry, e);
>                  return 10;
>              }
> @@ -268,13 +268,13 @@ public class TestCacheValidityPolicy {
>          final HttpCacheEntry entry = HttpTestUtils.makeCacheEntry();
>          impl = new CacheValidityPolicy() {
>              @Override
> -            public long getCurrentAgeSecs(final HttpCacheEntry e, final
> Date d) {
> +            public long getCurrentAge(final HttpCacheEntry e, final Date
> d) {
>                  assertEquals(now, d);
>                  assertSame(entry, e);
>                  return 6;
>              }
>              @Override
> -            public long getFreshnessLifetimeSecs(final HttpCacheEntry e) {
> +            public long getFreshnessLifetime(final HttpCacheEntry e) {
>                  assertSame(entry, e);
>                  return 6;
>              }
> @@ -287,13 +287,13 @@ public class TestCacheValidityPolicy {
>          final HttpCacheEntry entry = HttpTestUtils.makeCacheEntry();
>          impl = new CacheValidityPolicy() {
>              @Override
> -            public long getCurrentAgeSecs(final HttpCacheEntry e, final
> Date d) {
> +            public long getCurrentAge(final HttpCacheEntry e, final Date
> d) {
>                  assertEquals(now, d);
>                  assertSame(entry, e);
>                  return 10;
>              }
>              @Override
> -            public long getFreshnessLifetimeSecs(final HttpCacheEntry e) {
> +            public long getFreshnessLifetime(final HttpCacheEntry e) {
>                  assertSame(entry, e);
>                  return 6;
>              }
> diff --git
> a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachedHttpResponseGenerator.java
> b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachedHttpResponseGenerator.java
> index 4e2d0eb..42d7ce9 100644
> ---
> a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachedHttpResponseGenerator.java
> +++
> b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachedHttpResponseGenerator.java
> @@ -112,7 +112,7 @@ public class TestCachedHttpResponseGenerator {
>
>          final SimpleHttpResponse response =
> impl.generateResponse(request, entry);
>
> -        verify(mockValidityPolicy).getCurrentAgeSecs(same(entry),
> isA(Date.class));
> +        verify(mockValidityPolicy).getCurrentAge(same(entry),
> isA(Date.class));
>
>          final Header ageHdr = response.getFirstHeader("Age");
>          Assert.assertNotNull(ageHdr);
> @@ -125,7 +125,7 @@ public class TestCachedHttpResponseGenerator {
>
>          final SimpleHttpResponse response =
> impl.generateResponse(request, entry);
>
> -        verify(mockValidityPolicy).getCurrentAgeSecs(same(entry),
> isA(Date.class));
> +        verify(mockValidityPolicy).getCurrentAge(same(entry),
> isA(Date.class));
>
>          final Header ageHdr = response.getFirstHeader("Age");
>          Assert.assertNull(ageHdr);
> @@ -137,7 +137,7 @@ public class TestCachedHttpResponseGenerator {
>
>          final SimpleHttpResponse response =
> impl.generateResponse(request, entry);
>
> -        verify(mockValidityPolicy).getCurrentAgeSecs(same(entry),
> isA(Date.class));
> +        verify(mockValidityPolicy).getCurrentAge(same(entry),
> isA(Date.class));
>
>          final Header ageHdr = response.getFirstHeader("Age");
>          Assert.assertNotNull(ageHdr);
> @@ -146,7 +146,7 @@ public class TestCachedHttpResponseGenerator {
>
>      private void currentAge(final long sec) {
>          when(
> -                mockValidityPolicy.getCurrentAgeSecs(same(entry),
> +                mockValidityPolicy.getCurrentAge(same(entry),
>                          isA(Date.class))).thenReturn(sec);
>      }
>
> diff --git
> a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachingExecChain.java
> b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachingExecChain.java
> index c0dfed8..2faa5ed 100644
> ---
> a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachingExecChain.java
> +++
> b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachingExecChain.java
> @@ -1676,7 +1676,7 @@ public abstract class TestCachingExecChain {
>
>      private void entryHasStaleness(final long staleness) {
>          expect(
> -            mockValidityPolicy.getStalenessSecs((HttpCacheEntry)
> anyObject(), (Date) anyObject()))
> +            mockValidityPolicy.getStaleness((HttpCacheEntry) anyObject(),
> (Date) anyObject()))
>              .andReturn(staleness);
>      }
>
>
>