AFK, but 2147483648L looks like Integer.MAX_VALUE? Gary
On Sun, Dec 15, 2019, 11:06 <[email protected]> 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 > > > The following commit(s) were added to refs/heads/HTTPCLIENT-2036 by this > push: > new 0a02e41 More work > 0a02e41 is described below > > commit 0a02e410505ecf347911ce00dbbc225417eea5e9 > Author: Michael Osipov <[email protected]> > AuthorDate: Sun Dec 15 16:52:53 2019 +0100 > > More work > --- > .../http/impl/cache/CacheValidityPolicy.java | 16 ++-- > .../impl/cache/CachedHttpResponseGenerator.java | 11 +-- > .../cache/CachedResponseSuitabilityChecker.java | 18 ++-- > .../client5/http/impl/cache/CachingExecBase.java | 10 ++- > .../http/impl/cache/TestCacheValidityPolicy.java | 98 > +++++++++++----------- > .../cache/TestCachedHttpResponseGenerator.java | 13 +-- > .../http/impl/cache/TestCachingExecChain.java | 9 +- > 7 files changed, 94 insertions(+), 81 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 5bd00d1..fdb0f7e 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 > @@ -43,14 +43,14 @@ import org.apache.hc.core5.util.TimeValue; > > class CacheValidityPolicy { > > - public static final long MAX_AGE = 2147483648L; > + public static final TimeValue MAX_AGE = > TimeValue.ofSeconds(2147483648L); > > CacheValidityPolicy() { > super(); > } > > public TimeValue getCurrentAge(final HttpCacheEntry entry, final Date > now) { > - return > TimeValue.ofMilliseconds(getCorrectedInitialAge(entry).toMillis() + > getResidentTime(entry, now).toMillis()); > + return > TimeValue.ofSeconds(getCorrectedInitialAge(entry).toSeconds() + > getResidentTime(entry, now).toSeconds()); > } > > public TimeValue getFreshnessLifetime(final HttpCacheEntry entry) { > @@ -73,7 +73,7 @@ class CacheValidityPolicy { > } > > public boolean isResponseFresh(final HttpCacheEntry entry, final Date > now) { > - return (getCurrentAge(entry, > now).compareTo(getFreshnessLifetime(entry)) == -1); > + return getCurrentAge(entry, > now).compareTo(getFreshnessLifetime(entry)) == -1; > } > > /** > @@ -92,7 +92,7 @@ class CacheValidityPolicy { > */ > public boolean isResponseHeuristicallyFresh(final HttpCacheEntry > entry, > final Date now, final float coefficient, final TimeValue > defaultLifetime) { > - return (getCurrentAge(entry, > now).compareTo(getHeuristicFreshnessLifetime(entry, coefficient, > defaultLifetime)) == -1); > + return getCurrentAge(entry, > now).compareTo(getHeuristicFreshnessLifetime(entry, coefficient, > defaultLifetime)) == -1; > } > > public TimeValue getHeuristicFreshnessLifetime(final HttpCacheEntry > entry, > @@ -199,7 +199,7 @@ class CacheValidityPolicy { > protected TimeValue getApparentAge(final HttpCacheEntry entry) { > final Date dateValue = entry.getDate(); > if (dateValue == null) { > - return TimeValue.ofSeconds(MAX_AGE); > + return MAX_AGE; > } > final long diff = entry.getResponseDate().getTime() - > dateValue.getTime(); > if (diff < 0L) { > @@ -216,10 +216,10 @@ class CacheValidityPolicy { > try { > hdrAge = Long.parseLong(hdr.getValue()); > if (hdrAge < 0) { > - hdrAge = MAX_AGE; > + hdrAge = MAX_AGE.toSeconds(); > } > } catch (final NumberFormatException nfe) { > - hdrAge = MAX_AGE; > + hdrAge = MAX_AGE.toSeconds(); > } > ageValue = (hdrAge > ageValue) ? hdrAge : ageValue; > } > @@ -284,7 +284,7 @@ class CacheValidityPolicy { > if (age.compareTo(freshness) <= 0) { > return TimeValue.ZERO_MILLISECONDS; > } > - return TimeValue.ofMilliseconds(age.toMillis() - > freshness.toMillis()); > + return TimeValue.ofSeconds(age.toSeconds() - > freshness.toSeconds()); > } > > > 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 1f8bd42..614ed0e 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 > @@ -42,6 +42,7 @@ import org.apache.hc.core5.http.HttpResponse; > import org.apache.hc.core5.http.HttpStatus; > import org.apache.hc.core5.http.HttpVersion; > import org.apache.hc.core5.http.message.BasicHeader; > +import org.apache.hc.core5.util.TimeValue; > > /** > * Rebuilds an {@link HttpResponse} from a {@link HttpCacheEntry} > @@ -78,12 +79,12 @@ class CachedHttpResponseGenerator { > response.setBodyBytes(content, contentType); > } > > - final long age = this.validityStrategy.getCurrentAge(entry, now); > - if (age > 0) { > - if (age >= Integer.MAX_VALUE) { > - response.setHeader(HeaderConstants.AGE, "2147483648"); > + final TimeValue age = this.validityStrategy.getCurrentAge(entry, > now); > + if (TimeValue.isPositive(age)) { > + if (age.compareTo(CacheValidityPolicy.MAX_AGE) >= 0) { > + response.setHeader(HeaderConstants.AGE, "" + > CacheValidityPolicy.MAX_AGE.toSeconds()); > } else { > - response.setHeader(HeaderConstants.AGE, "" + ((int) age)); > + response.setHeader(HeaderConstants.AGE, "" + > age.toSeconds()); > } > } > > 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 9f2a33c..f680b5a 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 > @@ -75,7 +75,7 @@ class CachedResponseSuitabilityChecker { > return true; > } > if (useHeuristicCaching && > - validityStrategy.isResponseHeuristicallyFresh(entry, now, > heuristicCoefficient, heuristicDefaultLifetime.toSeconds())) { > + validityStrategy.isResponseHeuristicallyFresh(entry, now, > heuristicCoefficient, heuristicDefaultLifetime)) { > return true; > } > if (originInsistsOnFreshness(entry)) { > @@ -85,7 +85,7 @@ class CachedResponseSuitabilityChecker { > if (maxStale == -1) { > return false; > } > - return (maxStale > validityStrategy.getStaleness(entry, now)); > + return (maxStale > validityStrategy.getStaleness(entry, > now).toSeconds()); > } > > private boolean originInsistsOnFreshness(final HttpCacheEntry entry) { > @@ -100,6 +100,7 @@ class CachedResponseSuitabilityChecker { > } > > private long getMaxStale(final HttpRequest request) { > + // This is a header value, we leave as-is > long maxStale = -1; > final Iterator<HeaderElement> it = > MessageSupport.iterate(request, HeaderConstants.CACHE_CONTROL); > while (it.hasNext()) { > @@ -186,8 +187,9 @@ class CachedResponseSuitabilityChecker { > > if > (HeaderConstants.CACHE_CONTROL_MAX_AGE.equals(elt.getName())) { > try { > + // in seconds > final int maxAge = Integer.parseInt(elt.getValue()); > - if (validityStrategy.getCurrentAge(entry, now) > > maxAge) { > + if (validityStrategy.getCurrentAge(entry, > now).toSeconds() > maxAge) { > log.debug("Response from cache was not suitable > due to max age"); > return false; > } > @@ -200,8 +202,9 @@ class CachedResponseSuitabilityChecker { > > if > (HeaderConstants.CACHE_CONTROL_MAX_STALE.equals(elt.getName())) { > try { > + // in seconds > final int maxStale = Integer.parseInt(elt.getValue()); > - if (validityStrategy.getFreshnessLifetime(entry) > > maxStale) { > + if > (validityStrategy.getFreshnessLifetime(entry).toSeconds() > maxStale) { > log.debug("Response from cache was not suitable > due to max stale freshness"); > return false; > } > @@ -214,13 +217,14 @@ class CachedResponseSuitabilityChecker { > > if > (HeaderConstants.CACHE_CONTROL_MIN_FRESH.equals(elt.getName())) { > try { > + // in seconds > final long minFresh = Long.parseLong(elt.getValue()); > if (minFresh < 0L) { > return false; > } > - final long age = > validityStrategy.getCurrentAge(entry, now); > - final long freshness = > validityStrategy.getFreshnessLifetime(entry); > - if (freshness - age < minFresh) { > + final TimeValue age = > validityStrategy.getCurrentAge(entry, now); > + final TimeValue freshness = > validityStrategy.getFreshnessLifetime(entry); > + if (freshness.toSeconds() - age.toSeconds() < > minFresh) { > log.debug("Response from cache was not suitable > due to min fresh " + > "freshness requirement"); > return false; > 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 2b7991d..e2ee72d 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 > @@ -54,6 +54,7 @@ import org.apache.hc.core5.http.ProtocolVersion; > import org.apache.hc.core5.http.URIScheme; > import org.apache.hc.core5.http.message.MessageSupport; > import org.apache.hc.core5.http.protocol.HttpContext; > +import org.apache.hc.core5.util.TimeValue; > import org.apache.hc.core5.util.VersionInfo; > import org.slf4j.Logger; > import org.slf4j.LoggerFactory; > @@ -189,7 +190,7 @@ public class CachingExecBase { > cachedResponse = responseGenerator.generateResponse(request, > entry); > } > setResponseStatus(context, CacheResponseStatus.CACHE_HIT); > - if (validityPolicy.getStaleness(entry, now) > 0L) { > + if (TimeValue.isPositive(validityPolicy.getStaleness(entry, > now))) { > cachedResponse.addHeader(HeaderConstants.WARNING,"110 > localhost \"Response is stale\""); > } > return cachedResponse; > @@ -247,10 +248,11 @@ public class CachingExecBase { > final HeaderElement elt = it.next(); > if > (HeaderConstants.CACHE_CONTROL_MAX_STALE.equals(elt.getName())) { > try { > + // in seconds > final int maxStale = Integer.parseInt(elt.getValue()); > - final long age = validityPolicy.getCurrentAge(entry, > now); > - final long lifetime = > validityPolicy.getFreshnessLifetime(entry); > - if (age - lifetime > maxStale) { > + final TimeValue age = > validityPolicy.getCurrentAge(entry, now); > + final TimeValue lifetime = > validityPolicy.getFreshnessLifetime(entry); > + if (age.toSeconds() - lifetime.toSeconds() > > maxStale) { > return true; > } > } catch (final NumberFormatException nfe) { > 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 93922bb..2389644 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 > @@ -40,6 +40,7 @@ import org.apache.hc.core5.http.HttpHeaders; > import org.apache.hc.core5.http.HttpRequest; > import org.apache.hc.core5.http.message.BasicHeader; > import org.apache.hc.core5.http.message.BasicHttpRequest; > +import org.apache.hc.core5.util.TimeValue; > import org.junit.Before; > import org.junit.Test; > > @@ -68,7 +69,7 @@ public class TestCacheValidityPolicy { > new BasicHeader("Server", "MockServer/1.0") > }; > final HttpCacheEntry entry = > HttpTestUtils.makeCacheEntry(headers); > - assertEquals(2147483648L, impl.getApparentAge(entry)); > + assertEquals(CacheValidityPolicy.MAX_AGE, > impl.getApparentAge(entry)); > } > > @Test > @@ -77,15 +78,15 @@ public class TestCacheValidityPolicy { > .formatDate(tenSecondsAgo)) }; > > final HttpCacheEntry entry = HttpTestUtils.makeCacheEntry(now, > sixSecondsAgo, headers); > - assertEquals(4, impl.getApparentAge(entry)); > + assertEquals(TimeValue.ofSeconds(4), impl.getApparentAge(entry)); > } > > @Test > public void testNegativeApparentAgeIsBroughtUpToZero() { > final Header[] headers = new Header[] { new BasicHeader("Date", > DateUtils > .formatDate(sixSecondsAgo)) }; > - final HttpCacheEntry entry = > HttpTestUtils.makeCacheEntry(now,tenSecondsAgo,headers); > - assertEquals(0, impl.getApparentAge(entry)); > + final HttpCacheEntry entry = HttpTestUtils.makeCacheEntry(now, > tenSecondsAgo, headers); > + assertEquals(TimeValue.ofSeconds(0), impl.getApparentAge(entry)); > } > > @Test > @@ -94,11 +95,11 @@ public class TestCacheValidityPolicy { > final HttpCacheEntry entry = > HttpTestUtils.makeCacheEntry(headers); > impl = new CacheValidityPolicy() { > @Override > - protected long getApparentAge(final HttpCacheEntry ent) { > - return 6; > + protected TimeValue getApparentAge(final HttpCacheEntry ent) { > + return TimeValue.ofSeconds(6); > } > }; > - assertEquals(10, impl.getCorrectedReceivedAge(entry)); > + assertEquals(TimeValue.ofSeconds(10), > impl.getCorrectedReceivedAge(entry)); > } > > @Test > @@ -107,17 +108,17 @@ public class TestCacheValidityPolicy { > final HttpCacheEntry entry = > HttpTestUtils.makeCacheEntry(headers); > impl = new CacheValidityPolicy() { > @Override > - protected long getApparentAge(final HttpCacheEntry ent) { > - return 10; > + protected TimeValue getApparentAge(final HttpCacheEntry ent) { > + return TimeValue.ofSeconds(10); > } > }; > - assertEquals(10, impl.getCorrectedReceivedAge(entry)); > + assertEquals(TimeValue.ofSeconds(10), > impl.getCorrectedReceivedAge(entry)); > } > > @Test > public void > testResponseDelayIsDifferenceBetweenResponseAndRequestTimes() { > final HttpCacheEntry entry = > HttpTestUtils.makeCacheEntry(tenSecondsAgo, sixSecondsAgo); > - assertEquals(4, impl.getResponseDelay(entry)); > + assertEquals(TimeValue.ofSeconds(4), > impl.getResponseDelay(entry)); > } > > @Test > @@ -125,22 +126,22 @@ public class TestCacheValidityPolicy { > final HttpCacheEntry entry = HttpTestUtils.makeCacheEntry(); > impl = new CacheValidityPolicy() { > @Override > - protected long getCorrectedReceivedAge(final HttpCacheEntry > ent) { > - return 7; > + protected TimeValue getCorrectedReceivedAge(final > HttpCacheEntry ent) { > + return TimeValue.ofSeconds(7); > } > > @Override > - protected long getResponseDelay(final HttpCacheEntry ent) { > - return 13; > + protected TimeValue getResponseDelay(final HttpCacheEntry > ent) { > + return TimeValue.ofSeconds(13); > } > }; > - assertEquals(20, impl.getCorrectedInitialAge(entry)); > + assertEquals(TimeValue.ofSeconds(20), > impl.getCorrectedInitialAge(entry)); > } > > @Test > public void testResidentTimeSecondsIsTimeSinceResponseTime() { > final HttpCacheEntry entry = HttpTestUtils.makeCacheEntry(now, > sixSecondsAgo); > - assertEquals(6, impl.getResidentTime(entry, now)); > + assertEquals(TimeValue.ofSeconds(6), impl.getResidentTime(entry, > now)); > } > > @Test > @@ -148,29 +149,29 @@ public class TestCacheValidityPolicy { > final HttpCacheEntry entry = HttpTestUtils.makeCacheEntry(); > impl = new CacheValidityPolicy() { > @Override > - protected long getCorrectedInitialAge(final HttpCacheEntry > ent) { > - return 11; > + protected TimeValue getCorrectedInitialAge(final > HttpCacheEntry ent) { > + return TimeValue.ofSeconds(11); > } > @Override > - protected long getResidentTime(final HttpCacheEntry ent, > final Date d) { > - return 17; > + protected TimeValue getResidentTime(final HttpCacheEntry ent, > final Date d) { > + return TimeValue.ofSeconds(17); > } > }; > - assertEquals(28, impl.getCurrentAge(entry, new Date())); > + assertEquals(TimeValue.ofSeconds(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.getFreshnessLifetime(entry)); > + assertEquals(TimeValue.ofSeconds(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.getFreshnessLifetime(entry)); > + assertEquals(TimeValue.ofSeconds(10), > impl.getFreshnessLifetime(entry)); > } > > @Test > @@ -178,12 +179,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.getFreshnessLifetime(entry)); > + assertEquals(TimeValue.ofSeconds(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.getFreshnessLifetime(entry)); > + assertEquals(TimeValue.ofSeconds(10), > impl.getFreshnessLifetime(entry)); > } > > @Test > @@ -193,7 +194,7 @@ public class TestCacheValidityPolicy { > new BasicHeader("Expires", > DateUtils.formatDate(sixSecondsAgo)) }; > > final HttpCacheEntry entry = > HttpTestUtils.makeCacheEntry(headers); > - assertEquals(10, impl.getFreshnessLifetime(entry)); > + assertEquals(TimeValue.ofSeconds(10), > impl.getFreshnessLifetime(entry)); > } > > @Test > @@ -203,7 +204,7 @@ public class TestCacheValidityPolicy { > new BasicHeader("Expires", > DateUtils.formatDate(sixSecondsAgo)) }; > > final HttpCacheEntry entry = > HttpTestUtils.makeCacheEntry(headers); > - assertEquals(10, impl.getFreshnessLifetime(entry)); > + assertEquals(TimeValue.ofSeconds(10), > impl.getFreshnessLifetime(entry)); > } > > @Test > @@ -213,7 +214,7 @@ public class TestCacheValidityPolicy { > new BasicHeader("Expires", > DateUtils.formatDate(sixSecondsAgo)) }; > > final HttpCacheEntry entry = > HttpTestUtils.makeCacheEntry(headers); > - assertEquals(4, impl.getFreshnessLifetime(entry)); > + assertEquals(TimeValue.ofSeconds(4), > impl.getFreshnessLifetime(entry)); > } > > @Test > @@ -223,12 +224,12 @@ public class TestCacheValidityPolicy { > new BasicHeader("Last-Modified", > DateUtils.formatDate(elevenSecondsAgo)) > }; > final HttpCacheEntry entry = > HttpTestUtils.makeCacheEntry(headers); > - assertEquals(1, impl.getHeuristicFreshnessLifetime(entry, 0.1f, > 0)); > + assertEquals(TimeValue.ofSeconds(1), > impl.getHeuristicFreshnessLifetime(entry, 0.1f, > TimeValue.ZERO_MILLISECONDS)); > } > > @Test > public void testHeuristicFreshnessLifetimeDefaultsProperly() { > - final long defaultFreshness = 10; > + final TimeValue defaultFreshness = TimeValue.ofSeconds(10); > final HttpCacheEntry entry = HttpTestUtils.makeCacheEntry(); > assertEquals(defaultFreshness, > impl.getHeuristicFreshnessLifetime(entry, 0.1f, defaultFreshness)); > } > @@ -241,7 +242,7 @@ public class TestCacheValidityPolicy { > }; > > final HttpCacheEntry entry = > HttpTestUtils.makeCacheEntry(headers); > - assertTrue(impl.getHeuristicFreshnessLifetime(entry, 0.1f, 10) >= > 0); > + > assertTrue(TimeValue.isNonNegative(impl.getHeuristicFreshnessLifetime(entry, > 0.1f, TimeValue.ofSeconds(10)))); > } > > @Test > @@ -249,15 +250,15 @@ public class TestCacheValidityPolicy { > final HttpCacheEntry entry = HttpTestUtils.makeCacheEntry(); > impl = new CacheValidityPolicy() { > @Override > - public long getCurrentAge(final HttpCacheEntry e, final Date > d) { > + public TimeValue getCurrentAge(final HttpCacheEntry e, final > Date d) { > assertSame(entry, e); > assertEquals(now, d); > - return 6; > + return TimeValue.ofSeconds(6); > } > @Override > - public long getFreshnessLifetime(final HttpCacheEntry e) { > + public TimeValue getFreshnessLifetime(final HttpCacheEntry e) > { > assertSame(entry, e); > - return 10; > + return TimeValue.ofSeconds(10); > } > }; > assertTrue(impl.isResponseFresh(entry, now)); > @@ -268,15 +269,15 @@ public class TestCacheValidityPolicy { > final HttpCacheEntry entry = HttpTestUtils.makeCacheEntry(); > impl = new CacheValidityPolicy() { > @Override > - public long getCurrentAge(final HttpCacheEntry e, final Date > d) { > + public TimeValue getCurrentAge(final HttpCacheEntry e, final > Date d) { > assertEquals(now, d); > assertSame(entry, e); > - return 6; > + return TimeValue.ofSeconds(6); > } > @Override > - public long getFreshnessLifetime(final HttpCacheEntry e) { > + public TimeValue getFreshnessLifetime(final HttpCacheEntry e) > { > assertSame(entry, e); > - return 6; > + return TimeValue.ofSeconds(6); > } > }; > assertFalse(impl.isResponseFresh(entry, now)); > @@ -287,15 +288,15 @@ public class TestCacheValidityPolicy { > final HttpCacheEntry entry = HttpTestUtils.makeCacheEntry(); > impl = new CacheValidityPolicy() { > @Override > - public long getCurrentAge(final HttpCacheEntry e, final Date > d) { > + public TimeValue getCurrentAge(final HttpCacheEntry e, final > Date d) { > assertEquals(now, d); > assertSame(entry, e); > - return 10; > + return TimeValue.ofSeconds(10); > } > @Override > - public long getFreshnessLifetime(final HttpCacheEntry e) { > + public TimeValue getFreshnessLifetime(final HttpCacheEntry e) > { > assertSame(entry, e); > - return 6; > + return TimeValue.ofSeconds(6); > } > }; > assertFalse(impl.isResponseFresh(entry, now)); > @@ -364,21 +365,24 @@ public class TestCacheValidityPolicy { > public void testNegativeAgeHeaderValueReturnsMaxAge() { > final Header[] headers = new Header[] { new BasicHeader("Age", > "-100") }; > final HttpCacheEntry entry = > HttpTestUtils.makeCacheEntry(headers); > - assertEquals(CacheValidityPolicy.MAX_AGE, > impl.getAgeValue(entry)); > + // in seconds > + assertEquals(CacheValidityPolicy.MAX_AGE.toSeconds(), > impl.getAgeValue(entry)); > } > > @Test > public void testMalformedAgeHeaderValueReturnsMaxAge() { > final Header[] headers = new Header[] { new BasicHeader("Age", > "asdf") }; > final HttpCacheEntry entry = > HttpTestUtils.makeCacheEntry(headers); > - assertEquals(CacheValidityPolicy.MAX_AGE, > impl.getAgeValue(entry)); > + // in seconds > + assertEquals(CacheValidityPolicy.MAX_AGE.toSeconds(), > impl.getAgeValue(entry)); > } > > @Test > public void testMalformedCacheControlMaxAgeHeaderReturnsZero() { > final Header[] headers = new Header[] { new > BasicHeader("Cache-Control", "max-age=asdf") }; > final HttpCacheEntry entry = > HttpTestUtils.makeCacheEntry(headers); > - assertEquals(0, impl.getMaxAge(entry)); > + // in seconds > + assertEquals(0L, impl.getMaxAge(entry)); > } > > @Test > 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 42d7ce9..ace354b 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 > @@ -40,6 +40,7 @@ import org.apache.hc.client5.http.cache.HttpCacheEntry; > import org.apache.hc.core5.http.ClassicHttpRequest; > import org.apache.hc.core5.http.Header; > import org.apache.hc.core5.http.message.BasicHeader; > +import org.apache.hc.core5.util.TimeValue; > import org.junit.Assert; > import org.junit.Before; > import org.junit.Test; > @@ -108,7 +109,7 @@ public class TestCachedHttpResponseGenerator { > > @Test > public void > testAgeHeaderIsPopulatedWithCurrentAgeOfCacheEntryIfNonZero() throws > Exception { > - currentAge(10L); > + currentAge(TimeValue.ofSeconds(10L)); > > final SimpleHttpResponse response = > impl.generateResponse(request, entry); > > @@ -121,7 +122,7 @@ public class TestCachedHttpResponseGenerator { > > @Test > public void > testAgeHeaderIsNotPopulatedIfCurrentAgeOfCacheEntryIsZero() throws > Exception { > - currentAge(0L); > + currentAge(TimeValue.ofSeconds(0L)); > > final SimpleHttpResponse response = > impl.generateResponse(request, entry); > > @@ -133,7 +134,7 @@ public class TestCachedHttpResponseGenerator { > > @Test > public void testAgeHeaderIsPopulatedWithMaxAgeIfCurrentAgeTooBig() > throws Exception { > - currentAge(CacheValidityPolicy.MAX_AGE + 1L); > + > currentAge(TimeValue.ofSeconds(CacheValidityPolicy.MAX_AGE.toSeconds() + > 1L)); > > final SimpleHttpResponse response = > impl.generateResponse(request, entry); > > @@ -141,13 +142,13 @@ public class TestCachedHttpResponseGenerator { > > final Header ageHdr = response.getFirstHeader("Age"); > Assert.assertNotNull(ageHdr); > - Assert.assertEquals(CacheValidityPolicy.MAX_AGE, > Long.parseLong(ageHdr.getValue())); > + Assert.assertEquals(CacheValidityPolicy.MAX_AGE.toSeconds(), > Long.parseLong(ageHdr.getValue())); > } > > - private void currentAge(final long sec) { > + private void currentAge(final TimeValue age) { > when( > mockValidityPolicy.getCurrentAge(same(entry), > - isA(Date.class))).thenReturn(sec); > + isA(Date.class))).thenReturn(age); > } > > @Test > 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 2faa5ed..2ddfbf7 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 > @@ -78,6 +78,7 @@ import > org.apache.hc.core5.http.message.BasicClassicHttpResponse; > import org.apache.hc.core5.http.message.BasicHeader; > import org.apache.hc.core5.net.URIAuthority; > import org.apache.hc.core5.util.ByteArrayBuffer; > +import org.apache.hc.core5.util.TimeValue; > import org.easymock.Capture; > import org.easymock.EasyMock; > import org.easymock.IExpectationSetters; > @@ -315,7 +316,7 @@ public abstract class TestCachingExecChain { > cacheEntrySuitable(true); > > responseIsGeneratedFromCache(SimpleHttpResponse.create(HttpStatus.SC_OK)); > requestIsFatallyNonCompliant(null); > - entryHasStaleness(0L); > + entryHasStaleness(TimeValue.ZERO_MILLISECONDS); > > replayMocks(); > final ClassicHttpResponse result = execute(request); > @@ -352,7 +353,7 @@ public abstract class TestCachingExecChain { > cacheEntrySuitable(true); > getCacheEntryReturns(mockCacheEntry); > > responseIsGeneratedFromCache(SimpleHttpResponse.create(HttpStatus.SC_OK)); > - entryHasStaleness(0L); > + entryHasStaleness(TimeValue.ZERO_MILLISECONDS); > > replayMocks(); > execute(request); > @@ -1347,7 +1348,7 @@ public abstract class TestCachingExecChain { > getCacheEntryReturns(entry); > cacheEntrySuitable(true); > > responseIsGeneratedFromCache(SimpleHttpResponse.create(HttpStatus.SC_OK)); > - entryHasStaleness(0); > + entryHasStaleness(TimeValue.ZERO_MILLISECONDS); > > replayMocks(); > final ClassicHttpResponse resp = execute(request); > @@ -1674,7 +1675,7 @@ public abstract class TestCachingExecChain { > .andReturn(suitable); > } > > - private void entryHasStaleness(final long staleness) { > + private void entryHasStaleness(final TimeValue staleness) { > expect( > mockValidityPolicy.getStaleness((HttpCacheEntry) anyObject(), > (Date) anyObject())) > .andReturn(staleness); > >
