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);