Jonathan Moore
2d017dcc0e
HTTPCLIENT-1100: Missing Content-Length header makes cached entry invalid.
...
Applying patch provided by Bart Robeyns <bart dot robeyns at gmail dot com>
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1133907 13f79535-47bb-0310-9956-ffa450edef68
2011-06-09 15:01:42 +00:00
Jonathan Moore
8dbbed80cc
Reverting changeset r1133877 (duplicate addition of spymemcached repository).
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1133902 13f79535-47bb-0310-9956-ffa450edef68
2011-06-09 14:52:41 +00:00
Jonathan Moore
ae7c42fc95
+ Noticed that the memcached dependency needed for the caching module
...
is not provided by Maven Central, so we couldn't build the project
if the memcached jar wasn't already in the local repository. I added
a <repository> for the pom for httpclient-cache, since that's the
only module that needs it, but if we'd prefer to put that in the
parent pom I can certainly move it there too (not sure what the
prevailing opinion is on this).
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1133877 13f79535-47bb-0310-9956-ffa450edef68
2011-06-09 14:01:41 +00:00
Oleg Kalnichevski
f3e7802196
Updated dependency declarations; upgraded HttpCore to 4.1.1; upgraded Memcached to version 2.6
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1124274 13f79535-47bb-0310-9956-ffa450edef68
2011-05-18 14:08:24 +00:00
Jonathan Moore
e0105ac181
Reduced severity of several logging statements in the caching module so
...
as to reduce verbosity when the recommended DEBUG-level wire logging
settings are on.
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1087358 13f79535-47bb-0310-9956-ffa450edef68
2011-03-31 16:16:35 +00:00
Jonathan Moore
2ae703aa85
HTTPCLIENT-1073: In the event a 100 (Continue) response makes its way up
...
to the caching module, but the original request did not expect one, it's
acceptable for the caching module to throw an exception but it had better
consume the body of the 100 (Continue) response before doing so to ensure
proper release of resources. Encountering this would require the underlying
(non-caching) HttpClient to not handle the expect-continue handshake properly
*AND* for the origin server to send a 100-Continue response out of turn
*WITH* a response body. Highly unlikely, but at least this codepath is
covered properly now.
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1084655 13f79535-47bb-0310-9956-ffa450edef68
2011-03-23 18:00:12 +00:00
Jonathan Moore
2d1711bb83
HTTPCLIENT-1073: receiving a 206 (Partial Content) response to a
...
request that did not request partial content is problematic from
a cache perspective, so throwing a ClientProtocolException is ok.
However, we should properly consume the body of the 206 response
before throwing the exception to ensure that resources are properly
released.
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1084649 13f79535-47bb-0310-9956-ffa450edef68
2011-03-23 17:25:53 +00:00
Jonathan Moore
962ddfa55a
HTTPCLIENT-1073: caching module should not reject origin
...
401 (Unauthorized) response just because it is missing
a WWW-Authenticate challenge header; the caching module
doesn't care about this and should mind its own business.
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1084611 13f79535-47bb-0310-9956-ffa450edef68
2011-03-23 15:02:28 +00:00
Jonathan Moore
32221a1a48
HTTPCLIENT-1073: caching module should not reject an origin 405
...
(Method Not Allowed) response just because it is missing an Allow
header, even though this is required by RFC2616; this has no
effect on the caching module itself.
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1084610 13f79535-47bb-0310-9956-ffa450edef68
2011-03-23 14:59:25 +00:00
Jonathan Moore
e9864b06ff
HTTPCLIENT-1073: if caching module strips off a body for an origin response
...
that should not contain one, it should consume the body off the connection
as well to ensure resources are released.
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1084607 13f79535-47bb-0310-9956-ffa450edef68
2011-03-23 14:48:24 +00:00
Jonathan Moore
08bbd7bc75
HTTPCLIENT-1073: caching module need not be a stickler about receiving
...
a 407 (Proxy Authentication Required) response without a Proxy-Authenticate
header and should pass it through to local client.
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1084590 13f79535-47bb-0310-9956-ffa450edef68
2011-03-23 13:54:11 +00:00
Jonathan Moore
8f73a72a1f
Fix duplicate Warning 110 (stale response) header generated by
...
stale-while-revalidate.
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1080575 13f79535-47bb-0310-9956-ffa450edef68
2011-03-11 14:18:28 +00:00
Jonathan Moore
55742a46e1
Minor enhancement to stale-while-revalidate (RFC5861) handling; now we can also
...
serve stale 304s (Not Modified) while asynchronously revalidating. Prior to this,
we were always returning a stale 200 response regardless of whether the incoming
request was conditional or not. The old behavior was not incorrect, but this is
better.
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1080422 13f79535-47bb-0310-9956-ffa450edef68
2011-03-11 01:45:13 +00:00
Jonathan Moore
23bc2c7f78
+ Fix minor typos in private function names.
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1080419 13f79535-47bb-0310-9956-ffa450edef68
2011-03-11 01:32:46 +00:00
Oleg Kalnichevski
0bd45f2b39
Changed project version to 4.2-alpha1-SNAPSHOT
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1079543 13f79535-47bb-0310-9956-ffa450edef68
2011-03-08 21:06:55 +00:00
Sebastian Bazley
a54611e8d6
@import is relative to the current css file
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1070647 13f79535-47bb-0310-9956-ffa450edef68
2011-02-14 20:31:08 +00:00
Sebastian Bazley
0991eb0f07
Remove menu items which are now in the common parent section
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1070169 13f79535-47bb-0310-9956-ffa450edef68
2011-02-13 01:20:10 +00:00
Sebastian Bazley
639891773c
Use relative URLs so works anywhere
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1070168 13f79535-47bb-0310-9956-ffa450edef68
2011-02-13 01:19:35 +00:00
Sebastian Bazley
04d14e5e95
Absolute references are converted incorrectly.
...
Better fix: if banners are inherited from parent POM, then references are calculated OK
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1070077 13f79535-47bb-0310-9956-ffa450edef68
2011-02-12 13:17:47 +00:00
Sebastian Bazley
d5444aad70
Absolute references are converted incorrectly for the HC sub-sub sites
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1070011 13f79535-47bb-0310-9956-ffa450edef68
2011-02-12 02:14:00 +00:00
Sebastian Bazley
35face477b
Ensure the correct clover version is used for reports
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1069061 13f79535-47bb-0310-9956-ffa450edef68
2011-02-09 19:50:53 +00:00
Sebastian Bazley
cae0917efd
Javadoc is very noisy - quieten it
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1067841 13f79535-47bb-0310-9956-ffa450edef68
2011-02-07 02:00:12 +00:00
Oleg Kalnichevski
630ee5faad
Upgraded project version to 4.1.1-SNAPSHOT
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1061714 13f79535-47bb-0310-9956-ffa450edef68
2011-01-21 10:03:26 +00:00
Jonathan Moore
8e914ae112
Add missing Apache License header.
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1059097 13f79535-47bb-0310-9956-ffa450edef68
2011-01-14 18:25:06 +00:00
Oleg Kalnichevski
7fc0e265ef
Changed project version to 4.1-SNAPSHOT
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1058974 13f79535-47bb-0310-9956-ffa450edef68
2011-01-14 12:03:47 +00:00
Oleg Kalnichevski
3a0f3c34c4
Updated for HttpClient 4.1 release
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1058964 13f79535-47bb-0310-9956-ffa450edef68
2011-01-14 11:50:12 +00:00
Jonathan Moore
17aa988f41
Fix for protocol recommendation:
...
"304 Not Modified ... If the conditional GET used a strong cache
validator (see section 13.3.3), the response SHOULD NOT include
other entity-headers."
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.5
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1058762 13f79535-47bb-0310-9956-ffa450edef68
2011-01-13 22:07:50 +00:00
Jonathan Moore
bdf4174033
Capture acceptance tests for only-if-cached (implementation
...
already passes these).
"To do this, the client may include the only-if-cached directive
in a request. If it receives this directive, a cache SHOULD
either respond using a cached entry that is consistent with the
other constraints of the request, or respond with a 504 (Gateway
Timeout) status."
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.4
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1058661 13f79535-47bb-0310-9956-ffa450edef68
2011-01-13 17:00:30 +00:00
Jonathan Moore
b4d6dee028
Support the following protocol recommendation:
...
"If a request includes the no-cache directive, it SHOULD NOT
include min-fresh, max-stale, or max-age."
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.4
We address this by looking for no-cache and then filtering the
above directives out if present.
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1058280 13f79535-47bb-0310-9956-ffa450edef68
2011-01-12 19:14:37 +00:00
Jonathan Moore
7b6ffc39b3
Implementation fix and acceptance tests for protocol recommendation:
...
"Many HTTP/1.0 cache implementations will treat an Expires value that
is less than or equal to the response Date value as being equivalent
to the Cache-Control response directive "no-cache". If an HTTP/1.1
cache receives such a response, and the response does not include a
Cache-Control header field, it SHOULD consider the response to be non-
cacheable in order to retain compatibility with HTTP/1.0 servers."
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.3
Also had to update a few other test cases that incidentally ran afoul
of this recommendation.
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1058247 13f79535-47bb-0310-9956-ffa450edef68
2011-01-12 17:35:29 +00:00
Jonathan Moore
7b141fd52d
Document acceptance test (implementation already passes):
...
"If a new cacheable...response is received from a resource while any
existing responses for the same resource are cached, the cache SHOULD
use the new response to reply to the current request."
http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.12
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1058232 13f79535-47bb-0310-9956-ffa450edef68
2011-01-12 16:57:14 +00:00
Jonathan Moore
759fe0a755
Added unit tests to document protocol recommendation:
...
"A cache that passes through requests for methods it does not understand
SHOULD invalidate any entities referred to by the Request-URI."
http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.10
(Current implementation already does this, but always good to have that
captured in an automated acceptance test).
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1058224 13f79535-47bb-0310-9956-ffa450edef68
2011-01-12 16:38:28 +00:00
Jonathan Moore
bac69b368f
Removed deprecated HttpCacheEntry#getVariantURIs and associated
...
constructors and fields. Also removed code in surrounding classes
that was providing backwards compatibility for the deprecated
Set-based variant data structure. Made a note in the ChangeLog
about the change to the public API between 4.1-beta and 4.1.
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1058153 13f79535-47bb-0310-9956-ffa450edef68
2011-01-12 14:21:32 +00:00
Jonathan Moore
3c0bc58a30
On the off chance someone wrote a custom serializer for use with the
...
4.1-beta version of HttpCacheEntry, we want to make sure things still
work properly. The current implementation of HttpCacheEntry already
throws an UnsupportedOperationException if you try to get at the variant
map but the old set-based data structure is there; now we handle this
exception, log a warning, and then use the old structure. This is a bit
less efficient but still demonstrably works (I added a unit test to the
Ehcache suite, where you can submit a custom serializer, that shows that
the implementation still conforms to all the MUST/MUST NOTs).
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1057745 13f79535-47bb-0310-9956-ffa450edef68
2011-01-11 17:28:20 +00:00
Jonathan Moore
e95a80b7a2
Responses from HTTP/1.0 origins to requests containing query parameters
...
SHOULD NOT be taken from a cache.
http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.9
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1057715 13f79535-47bb-0310-9956-ffa450edef68
2011-01-11 16:31:06 +00:00
Jonathan Moore
6e1d7a0ad3
Javadoc for Ehcache and memcached cache storage backends. I think we're in
...
good shape for Javadocs on the caching module now.
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1057287 13f79535-47bb-0310-9956-ffa450edef68
2011-01-10 17:09:56 +00:00
Jonathan Moore
4b29dae09d
Javadocs for CachingHttpClient itself.
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1057265 13f79535-47bb-0310-9956-ffa450edef68
2011-01-10 16:33:51 +00:00
Jonathan Moore
6b723dd61e
Added more Javadocs, including, most significantly so far, detailed
...
docs for CacheConfig talking about all the available configuration
options for the caching module.
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1057242 13f79535-47bb-0310-9956-ffa450edef68
2011-01-10 15:35:37 +00:00
Sebastian Bazley
7ee591f0f4
Merge jar manifest entries into httpclient parent pom
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1056561 13f79535-47bb-0310-9956-ffa450edef68
2011-01-07 23:43:27 +00:00
Jonathan Moore
ca41afb97e
Provided lots of missing Javadoc.
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1056530 13f79535-47bb-0310-9956-ffa450edef68
2011-01-07 22:01:54 +00:00
Jonathan Moore
f9c0e8cac9
Added Javadoc package.html for org.apache.http.client.cache.
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1056504 13f79535-47bb-0310-9956-ffa450edef68
2011-01-07 21:01:16 +00:00
Sebastian Bazley
4fd34899f0
Unnecessary casts
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1055732 13f79535-47bb-0310-9956-ffa450edef68
2011-01-06 03:24:49 +00:00
Sebastian Bazley
868e46fd5b
Unthrown Exceptions and @Overrides
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1055731 13f79535-47bb-0310-9956-ffa450edef68
2011-01-06 03:23:34 +00:00
Sebastian Bazley
4b2dccf239
Exception not thrown
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1055730 13f79535-47bb-0310-9956-ffa450edef68
2011-01-06 03:13:13 +00:00
Sebastian Bazley
32e1cc24bb
Exception not thrown
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1055729 13f79535-47bb-0310-9956-ffa450edef68
2011-01-06 03:11:38 +00:00
Sebastian Bazley
75dd0ae7dd
DOcument thread-safety
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1055728 13f79535-47bb-0310-9956-ffa450edef68
2011-01-06 03:10:21 +00:00
Sebastian Bazley
7550a6edf6
Make private immutable fields final
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1055727 13f79535-47bb-0310-9956-ffa450edef68
2011-01-06 03:06:51 +00:00
Sebastian Bazley
d9090f3d37
Not @Immutable, but it is @ThreadSafe
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1055726 13f79535-47bb-0310-9956-ffa450edef68
2011-01-06 03:05:55 +00:00
Sebastian Bazley
4896d1752c
Tab police
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1055725 13f79535-47bb-0310-9956-ffa450edef68
2011-01-06 03:02:16 +00:00
Sebastian Bazley
3b4b68fe68
Javadoc fixes
...
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1055723 13f79535-47bb-0310-9956-ffa450edef68
2011-01-06 02:57:48 +00:00