Commit Graph

362 Commits

Author SHA1 Message Date
Jonathan Moore a6fe2177be HTTPCLIENT-1152: MemcachedHttpCacheStorage should verify class of returned
object before casting. Contributed by Rajika Kumarasiri <rajika at wso2 dot com>.


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1229169 13f79535-47bb-0310-9956-ffa450edef68
2012-01-09 14:28:38 +00:00
Oleg Kalnichevski 8f767628cf HTTPCLIENT-1155: CachingHttpClient fails to ensure that the response content gets fully consumed when using a ResponseHandler, which can potentially lead to connection leaks
Contributed by James Miller <jamesmiller01 at gmail dot com>

git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1222845 13f79535-47bb-0310-9956-ffa450edef68
2011-12-23 20:59:54 +00:00
Oleg Kalnichevski cb6254fea6 Rewrote test case for HTTPCLIENT-1147: removed dependency on an external resource; removed hard-coded cache directory location
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1222843 13f79535-47bb-0310-9956-ffa450edef68
2011-12-23 20:57:11 +00:00
Oleg Kalnichevski a6db7c5185 HTTPCLIENT-1147: When HttpClient-Cache cannot open cache file, should act like miss
Contributed by Joe Campbell <joseph.r.campbell at gmail.com>

git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1209503 13f79535-47bb-0310-9956-ffa450edef68
2011-12-02 14:15:11 +00:00
Oleg Kalnichevski 5b89c1097f HTTPCLIENT-1144: Caching client has a class for common headers that was not being used consistently in the code
Contributed by Joe Campbell <joseph.r.campbell at gmail.com>

git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1209502 13f79535-47bb-0310-9956-ffa450edef68
2011-12-02 14:13:52 +00:00
Jonathan Moore fceb87e3bc HTTPCLIENT-1143: Added ASL header to ConsumableInputStream test class.
Credited James Miller in Release Notes.


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1198941 13f79535-47bb-0310-9956-ffa450edef68
2011-11-07 21:13:45 +00:00
Jonathan Moore c8aafc5c1a HTTPCLIENT-1143: CachingHttpClient leaks connections with stale-if-error.
Bugfix from James Miller <jamesmiller01 at gmail dot com>.



git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1198939 13f79535-47bb-0310-9956-ffa450edef68
2011-11-07 21:09:41 +00:00
Jonathan Moore d19daa3dcd HTTPCLIENT-1137: The values for the Via header are created by httpclient-cache
for each cached and backend request. Committing patch by alinachegalati at yahoo dot com.

git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1197713 13f79535-47bb-0310-9956-ffa450edef68
2011-11-04 19:07:52 +00:00
Oleg Kalnichevski 7541429cf2 Upgraded project version to 4.2-alpha2-SNAPSHOT
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1196788 13f79535-47bb-0310-9956-ffa450edef68
2011-11-02 20:19:52 +00:00
Oleg Kalnichevski b1bad18c8c Added inceptionYear to httpclient-cache and fluent-hc poms
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1195711 13f79535-47bb-0310-9956-ffa450edef68
2011-10-31 22:50:56 +00:00
Oleg Kalnichevski 61ab54d99d HTTPCLIENT-1135: RandomAccessFile mode w is not valid
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1180373 13f79535-47bb-0310-9956-ffa450edef68
2011-10-08 13:12:12 +00:00
Oleg Kalnichevski 72a41afd5e HTTPCLIENT-1116: ResponseCachingPolicy uses integers for sizes
Contributed by Greg Bowyer <gbowyer at fastmail.co.uk >


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1172302 13f79535-47bb-0310-9956-ffa450edef68
2011-09-18 16:32:53 +00:00
Oleg Kalnichevski e5ea32b76d TABS -> SPACES
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1172301 13f79535-47bb-0310-9956-ffa450edef68
2011-09-18 16:20:20 +00:00
Sebastian Bazley 01b39c4883 Add version variables for report plugins
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1167667 13f79535-47bb-0310-9956-ffa450edef68
2011-09-11 03:28:11 +00:00
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
Sebastian Bazley 5e95645f07 Missing @Overrides
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1055722 13f79535-47bb-0310-9956-ffa450edef68
2011-01-06 02:57:27 +00:00
Sebastian Bazley 37e01683fa Exception not thrown
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1055721 13f79535-47bb-0310-9956-ffa450edef68
2011-01-06 02:56:23 +00:00
Sebastian Bazley 6a970590c0 Unnecessary cast
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1055720 13f79535-47bb-0310-9956-ffa450edef68
2011-01-06 02:54:42 +00:00
Jonathan Moore 4a63d6a0da Fixed compiler warnings (unused imports, unused private methods).
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1053060 13f79535-47bb-0310-9956-ffa450edef68
2010-12-27 12:55:32 +00:00
Jonathan Moore 856c1c28ad HTTPCLIENT-1035: committed validating acceptance test and wired in new
cache invalidation call. Also cleaned up some unit tests in
TestCachingHttpClient: static imports of EasyMock methods, as well as
removing unit tests that exercised some protected methods, especially
where they are already covered by acceptance tests against a public
interface (unit testing protected methods leads to brittle tests). Also
rewrite some of the unit tests in TestCachingHttpClient to depend on
fewer mocks (often, just a mock backend HttpClient and mock cache
storage).


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1052894 13f79535-47bb-0310-9956-ffa450edef68
2010-12-26 15:10:39 +00:00
Jonathan Moore 7b99aca6ab HTTPCLIENT-1035: finished cache-flushing logic for updated
entries mentioned by Content-Location in responses. Still
not hooked in to main request handling flow yet.



git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1052234 13f79535-47bb-0310-9956-ffa450edef68
2010-12-23 12:02:37 +00:00
Jonathan Moore 68ed95699e HTTPCLIENT-1035: begin adding functionality for flushing updated
entries mentioned by Content-Location in responses. Not yet hooked
in to be used.


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1051865 13f79535-47bb-0310-9956-ffa450edef68
2010-12-22 11:59:23 +00:00
Jonathan Moore 52f311f5de HTTPCLIENT-975: stale-while-revalidate also yields to must-revalidate,
proxy-revalidate on a shared cache, and requests with explicit
freshness constraints.


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1051235 13f79535-47bb-0310-9956-ffa450edef68
2010-12-20 18:30:46 +00:00
Jonathan Moore df577a7e8f HTTPCLIENT-975: stale-if-error now yields to higher-priority
directives, like must-revalidate, proxy-revalidate, and requests
with explicit freshness constraints.


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1051206 13f79535-47bb-0310-9956-ffa450edef68
2010-12-20 16:55:03 +00:00
Jonathan Moore 7573bf8284 HTTPCLIENT-975: more method extraction; the body for
CachingHttpClient#execute now at least fits on one screen. :)


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1051133 13f79535-47bb-0310-9956-ffa450edef68
2010-12-20 14:42:34 +00:00
Jonathan Moore 65cb252c9b HTTPCLIENT-975: more method extraction from the body of
CachingHttpClient#execute()


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1051087 13f79535-47bb-0310-9956-ffa450edef68
2010-12-20 12:51:26 +00:00
Jonathan Moore cd263f39e3 HTTPCLIENT-975: more refactoring/method-extraction
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1051076 13f79535-47bb-0310-9956-ffa450edef68
2010-12-20 12:12:55 +00:00
Jonathan Moore 791bb497e2 HTTPCLIENT-975: more refactoring. Handled ProtocolExceptions from
RequestWrapper instantiations further down in the call stack.


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1051074 13f79535-47bb-0310-9956-ffa450edef68
2010-12-20 11:58:53 +00:00
Jonathan Moore 93603e5f19 HTTPCLIENT-975: refactoring primary execute method in
CachingHttpClient (mostly method extraction).



git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1050878 13f79535-47bb-0310-9956-ffa450edef68
2010-12-19 15:25:04 +00:00
Jonathan Moore a6c38788c0 HTTPCLIENT-975: Javadoc and formatting cleanup.
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1050624 13f79535-47bb-0310-9956-ffa450edef68
2010-12-18 12:06:28 +00:00
Jonathan Moore 1d4465bdb5 HTTPCLIENT-975: Javadoc and import cleanup.
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1050622 13f79535-47bb-0310-9956-ffa450edef68
2010-12-18 11:58:37 +00:00
Jonathan Moore 155a9c61c3 HTTPCLIENT-975: Make AsynchronousValidator class package-private.
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1050620 13f79535-47bb-0310-9956-ffa450edef68
2010-12-18 11:55:09 +00:00
Jonathan Moore 83efe306fd HTTPCLIENT-975: added CacheConfig settings to provide more detailed
control over the background revalidation thread pool, and enabled
the stale-while-revalidate feature by default with a single worker
thread and a max queue size of 100 pending revalidations, which
should be a pretty safe setting.


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1050360 13f79535-47bb-0310-9956-ffa450edef68
2010-12-17 12:15:50 +00:00
Jonathan Moore 5f88f05627 HTTPCLIENT-975: committed patch for stale-while-revalidate from
Michajlo Matijkiw (michajlo_matijkiw at comcast dot com).
Stale-while-revalidate functionality is currently off by default
until we can add bounding to the revalidation queue (or make it
configurable).

git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1049941 13f79535-47bb-0310-9956-ffa450edef68
2010-12-16 11:54:30 +00:00
Jonathan Moore 3c0cef4586 Added additional acceptance test for variant negotiation:
"If any of the existing cache entries contains only partial content
for the associated entity, its entity-tag SHOULD NOT be included in
the If-None-Match header field unless the request is for a range
that would be fully satisfied by that entry." 
(http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.6)


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1049287 13f79535-47bb-0310-9956-ffa450edef68
2010-12-14 21:37:31 +00:00
Jonathan Moore d60c36c40c Renamed URIExtractor to CacheKeyGenerator, which is more descriptive
of what we actually use it for.


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1049278 13f79535-47bb-0310-9956-ffa450edef68
2010-12-14 21:18:06 +00:00
Jonathan Moore a91847b57c HTTPCLIENT-975: committed patch to support stale-if-error from
RFC5861, with thanks to Mohammed Azeem Uddin
(mohammedazeem_uddin at comcast dot com).


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1049179 13f79535-47bb-0310-9956-ffa450edef68
2010-12-14 17:18:06 +00:00
Jonathan Moore 70e7ee17d5 HTTPCLIENT-1034: committed patch to update documentation to list
httpclient-cache as a module of the HttpClient component, plus
adding a link to the external benchmarking writeup done by
Comcast Interactive Media. With thanks to Matthew Hawthorne
(matthew_hawthorne -at- comcast.com).


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1049124 13f79535-47bb-0310-9956-ffa450edef68
2010-12-14 15:27:35 +00:00
Jonathan Moore 6eaaac8251 Added ASF header to Variant.java.
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1049099 13f79535-47bb-0310-9956-ffa450edef68
2010-12-14 14:16:47 +00:00
Jonathan Moore 0ae68981c8 HTTPCLIENT-1032: during variant negotiation, when the origin specifies
reuse of an existing variant, we no longer cache another copy of the
variant, but rather update the variantMap in the parent entry to
reflect the variant's reuse for requests whose varying headers match
those of the current request.

git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1049051 13f79535-47bb-0310-9956-ffa450edef68
2010-12-14 11:48:34 +00:00
Jonathan Moore e16a59b38c HTTPCLIENT-1032: added a method to HttpCache to allow updating a specific
variant cache entry if its cache key is known. Committed patch with the
additional acceptance test, which now passes. We are still caching extra
copies of the re-used variant, though, so the issue is not yet closed.

git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1049048 13f79535-47bb-0310-9956-ffa450edef68
2010-12-14 11:30:10 +00:00
Jonathan Moore 477fdb1a3c HTTPCLIENT-1032: variant information is now passed back from the HttpCache
as a Map<String,Variant> mapping Etags to specific information about the
variants (variant key, cache key, cache entry).


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1049045 13f79535-47bb-0310-9956-ffa450edef68
2010-12-14 11:12:36 +00:00
Jonathan Moore 6e5139df32 HTTPCLIENT-1032: added a Variant class to track a set of related
information about a particular cached variant.


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1045389 13f79535-47bb-0310-9956-ffa450edef68
2010-12-13 22:14:07 +00:00
Jonathan Moore ae8764760b HTTPCLIENT-1032: caching of 200 origin response from variant
negotiation should be stored w.r.t. original client request.


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1045360 13f79535-47bb-0310-9956-ffa450edef68
2010-12-13 20:25:08 +00:00
Jonathan Moore 24a5f0c060 HTTPCLIENT-1032: Refactor to clean up duplicated code in cache
entry validation (regular, and variant reuse negotation) by
extracting code to shared method.



git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1045357 13f79535-47bb-0310-9956-ffa450edef68
2010-12-13 20:17:49 +00:00
Jonathan Moore a26fb6a846 Fixing pom (build was barfing on "--" inside an XML comment).
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1045291 13f79535-47bb-0310-9956-ffa450edef68
2010-12-13 18:51:55 +00:00
Sebastian Bazley a11743431b Fix up clirr version comparison so defaults to 4.0, except cache=4.1-alpha2
Can also override individually using -DcomparisonVersion and -Dcache.comparisonVersion

git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1045260 13f79535-47bb-0310-9956-ffa450edef68
2010-12-13 17:53:59 +00:00
Jonathan Moore 618754b6a9 HTTPCLIENT-1032: renamed HttpCache#getVariantCacheEntries to
HttpCache#getVariantCacheEntriesWithEtags and had it return a
Map of etags to cache entries. Doing the filtering here makes
it simpler downstream, and returning a map makes it easier to
find the appropriate entry when handling a 304 indicating we
should use an existing variant.

git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1045084 13f79535-47bb-0310-9956-ffa450edef68
2010-12-13 11:55:36 +00:00
Jonathan Moore 62dd08891c HTTPCLIENT-1032: variant storage now separates a "variant key" (determined by
the portion of a request covered by Vary headers on an entry) from a
"variant cache key" (the place in the cache storage where a particular variant
response is stored). The variantMap in an HttpCacheEntry now maps variant keys
to variant cache keys, setting us up for the possibility of having multiple
variant keys point to the same variant cache entry.

git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1044826 13f79535-47bb-0310-9956-ffa450edef68
2010-12-12 14:37:48 +00:00
Jonathan Moore 4e7d9fa5c8 HTTPCLIENT-1032: minor refactoring on URIExtractor to clean up
internal-only API for getVariantKey()


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1044824 13f79535-47bb-0310-9956-ffa450edef68
2010-12-12 14:24:25 +00:00
Jonathan Moore 2c04f2689b HTTPCLIENT-1032: fix Javadocs on HttpCacheEntry.
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1044820 13f79535-47bb-0310-9956-ffa450edef68
2010-12-12 13:29:43 +00:00
Jonathan Moore e025613aab HTTPCLIENT-1032: change variant storage mechanism in HttpCacheEntry from
a Set to a Map; Set-based interface retained for backwards-compatibility.
Currently, the map just maps a variantURI to itself--in essence it is
still really just a set; however, this sets us up for mapping different
variant keys to the same cache key (coming next).

git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1044818 13f79535-47bb-0310-9956-ffa450edef68
2010-12-12 13:24:29 +00:00
Jonathan Moore 9771dcd667 Disabling logging during unit tests.
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1044728 13f79535-47bb-0310-9956-ffa450edef68
2010-12-11 21:36:18 +00:00
Jonathan Moore 7359258155 HTTPCLIENT-1032: additional test coverage for CacheEntryUpdater. Also,
fixed small bug where Warning headers should not be removed from an
entry if the origin response is not used for updating cache entry
headers because it is post-dated.

git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1044648 13f79535-47bb-0310-9956-ffa450edef68
2010-12-11 13:12:05 +00:00
Oleg Kalnichevski ef148fc522 TABS -> SPACES
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1044639 13f79535-47bb-0310-9956-ffa450edef68
2010-12-11 11:57:09 +00:00
Jonathan Moore f1add71205 Convert tabs to spaces.
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1044637 13f79535-47bb-0310-9956-ffa450edef68
2010-12-11 11:45:50 +00:00
Jonathan Moore 47a66573e9 HTTPCLIENT-1032: additional unit test coverage for HttpCacheEntry
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1044636 13f79535-47bb-0310-9956-ffa450edef68
2010-12-11 11:33:42 +00:00
Jonathan Moore e1e7f9c80e Cache revalidation of entries now sends etags of all cached variants on
the conditional request. (Commit of my own patch posted to
https://issues.apache.org/jira/browse/HTTPCLIENT-1024 before I had
commit rights).


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1043717 13f79535-47bb-0310-9956-ffa450edef68
2010-12-08 22:04:48 +00:00
Sebastian Bazley 179c717923 Wrong component name - use property instead to ensure correctness
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1042707 13f79535-47bb-0310-9956-ffa450edef68
2010-12-06 16:27:43 +00:00
Oleg Kalnichevski 317cddd89a Upgraded project version to 4.1-beta2-SNAPSHOT
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1037288 13f79535-47bb-0310-9956-ffa450edef68
2010-11-20 18:17:57 +00:00
Oleg Kalnichevski bb9ad833c1 Added missing AL header
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1035063 13f79535-47bb-0310-9956-ffa450edef68
2010-11-14 20:42:47 +00:00
Oleg Kalnichevski e2bd5afdde Made HeapResource and FileResource classes public
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1034824 13f79535-47bb-0310-9956-ffa450edef68
2010-11-13 17:50:43 +00:00
Oleg Kalnichevski 9e54454530 Generate LICENSE and NOTICE resources automatically using maven plugin; fixed javadoc links to external resources
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1031582 13f79535-47bb-0310-9956-ffa450edef68
2010-11-05 14:28:48 +00:00
Oleg Kalnichevski 31590950b5 Javadoc fixes
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1030510 13f79535-47bb-0310-9956-ffa450edef68
2010-11-03 16:04:47 +00:00
Oleg Kalnichevski c76574f947 Dedicated branch for testing maven-notice-plugin
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/branches/notice-plugin-test@1026503 13f79535-47bb-0310-9956-ffa450edef68
2010-10-22 21:47:45 +00:00
Oleg Kalnichevski 6b539c8c86 HTTPCLIENT-990: Allow heuristic freshness caching
Contributed by Michajlo Matijkiw <michajlo_matijkiw at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1024393 13f79535-47bb-0310-9956-ffa450edef68
2010-10-19 20:17:16 +00:00
Oleg Kalnichevski de7daf36de HTTPCLIENT-1015: Support only-if-cached directive
Contributed by Michajlo Matijkiw <michajlo_matijkiw at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1024383 13f79535-47bb-0310-9956-ffa450edef68
2010-10-19 19:54:29 +00:00
Oleg Kalnichevski 65528c02ec HTTPCLIENT-1005: reduced public API
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1023261 13f79535-47bb-0310-9956-ffa450edef68
2010-10-16 12:04:02 +00:00
Oleg Kalnichevski 6892f58f2c HTTPCLIENT-1008: send all variants' ETags on "variant miss"
Contributed by Michajlo Matijkiw <michajlo_matijkiw at comcast.com> and Mohammed Azeem Uddin <mohammedazeem_uddin at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1023085 13f79535-47bb-0310-9956-ffa450edef68
2010-10-15 19:43:18 +00:00
Oleg Kalnichevski e6190109d8 HTTPCLIENT-1011: Handling of IOExceptions thrown by cache components
Contributed by Jonathan Moore <jonathan_moore at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1022965 13f79535-47bb-0310-9956-ffa450edef68
2010-10-15 15:20:10 +00:00
Oleg Kalnichevski dfe45e8f56 HTTPCLIENT-1009: [follow-up] chunked value for CombinedEntity
Contributed by Joe Campbell <joseph.r.campbell at gmail.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1022947 13f79535-47bb-0310-9956-ffa450edef68
2010-10-15 14:35:28 +00:00
Oleg Kalnichevski 0f2cc20b22 HTTPCLIENT-1009: content-type / content-encoding headers on cache response entities
Contributed by Felix Berger <bflat1 at gmx.net>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1006348 13f79535-47bb-0310-9956-ffa450edef68
2010-10-10 19:59:39 +00:00
Oleg Kalnichevski c1f9d2b336 HTTPCLIENT-1009: content-type / content-encoding headers on cache response entities (test case)
Contributed by Joe Campbell <joseph.r.campbell at gmail.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1006346 13f79535-47bb-0310-9956-ffa450edef68
2010-10-10 19:53:42 +00:00
Oleg Kalnichevski 804359f1ab HTTPCLIENT-1003: Handle conditional requests in cache
Contributed by Michajlo Matijkiw <michajlo_matijkiw at comcast.com> and Mohammed Azeem Uddin <mohammedazeem_uddin at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1004777 13f79535-47bb-0310-9956-ffa450edef68
2010-10-05 19:24:42 +00:00
Oleg Kalnichevski 0b2189222b HTTPCLIENT-1001: cacheEntryUpdater does not properly update cache entry resource
Contributed by Michajlo Matijkiw <michajlo_matijkiw at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1003455 13f79535-47bb-0310-9956-ffa450edef68
2010-10-01 09:49:15 +00:00
Oleg Kalnichevski 9ced45d7e6 HTTPCLIENT-999: tests to guarantee transparency of caching module on end-to-end headers
Contributed by Jonathan Moore <jonathan_moore at comcast.com> 


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1000028 13f79535-47bb-0310-9956-ffa450edef68
2010-09-22 15:12:47 +00:00
Oleg Kalnichevski 6d41d97eb9 HTTPCLIENT-998: cache should use both Last-Modified and ETag for validations when available
Contributed by Jonathan Moore <jonathan_moore at comcast.com> 


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1000023 13f79535-47bb-0310-9956-ffa450edef68
2010-09-22 15:06:53 +00:00
Oleg Kalnichevski e82184af36 HTTPCLIENT-997: cache module should handle out-of-order validations properly and unconditionally refresh
Contributed by Jonathan Moore <jonathan_moore at comcast.com> 


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1000011 13f79535-47bb-0310-9956-ffa450edef68
2010-09-22 14:52:44 +00:00
Oleg Kalnichevski c3e43de4f1 HTTPCLIENT-994: cache does not allow client to override origin-specified freshness using max-stale
Contributed by Jonathan Moore <jonathan_moore at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@997480 13f79535-47bb-0310-9956-ffa450edef68
2010-09-15 20:00:41 +00:00
Oleg Kalnichevski ff55577526 HTTPCLIENT-995: cache returns cached responses even if validators not consistent with all conditional headers
Contributed by Jonathan Moore <jonathan_moore at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@996644 13f79535-47bb-0310-9956-ffa450edef68
2010-09-13 19:05:19 +00:00
Oleg Kalnichevski aeffde46e6 HTTPCLIENT-977: memcached implementation for HttpCache
Contributed by Mohammed Azeem Uddin <mohammedazeem_uddin at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@995257 13f79535-47bb-0310-9956-ffa450edef68
2010-09-08 21:17:05 +00:00
Oleg Kalnichevski d78939ec1a HTTPCLIENT-992: cache should not generate stale responses to requests explicitly requesting first-hand or fresh ones
Contributed by Jonathan Moore <jonathan_moore at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@995246 13f79535-47bb-0310-9956-ffa450edef68
2010-09-08 20:44:31 +00:00
Oleg Kalnichevski 18d3966ed8 HTTPCLIENT-991: cache module produces improperly formatted Warning header when revalidation fails
Contributed by Jonathan Moore <jonathan_moore at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@995241 13f79535-47bb-0310-9956-ffa450edef68
2010-09-08 20:34:57 +00:00
Oleg Kalnichevski fb038d3500 HTTPCLIENT-988: cache module should strip 'Content-Encoding: identity' from responses
Contributed by Jonathan Moore <jonathan_moore at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@993497 13f79535-47bb-0310-9956-ffa450edef68
2010-09-07 19:41:09 +00:00
Oleg Kalnichevski ec40554d4d HTTPCLIENT-987: cache module does not recognize equivalent URIs
Contributed by Jonathan Moore <jonathan_moore at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@993161 13f79535-47bb-0310-9956-ffa450edef68
2010-09-06 22:00:58 +00:00
Oleg Kalnichevski eb64e7d3b8 HTTPCLIENT-986: cache module does not completely handle upstream Warning headers correctly
Contributed by Jonathan Moore <jonathan_moore at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@993139 13f79535-47bb-0310-9956-ffa450edef68
2010-09-06 19:56:52 +00:00
Oleg Kalnichevski b368f90913 HTTPCLIENT-985: cache module should populate Via header to capture upstream and downstream protocols
Contributed by Jonathan Moore <jonathan_moore at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@992117 13f79535-47bb-0310-9956-ffa450edef68
2010-09-02 21:08:08 +00:00
Oleg Kalnichevski b3e4f9e3c1 Improved HTTP cache entry serialization
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@990925 13f79535-47bb-0310-9956-ffa450edef68
2010-08-30 20:12:11 +00:00
Oleg Kalnichevski 30abf15ba6 Upgraded HttpCore to version 4.1-beta2; updated HttpClient tutorial
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@990924 13f79535-47bb-0310-9956-ffa450edef68
2010-08-30 20:01:46 +00:00
Oleg Kalnichevski 2b0f6ea41a HTTPCLIENT-984: additional conditional compliance tests for the caching module for Content-Encoding, Content-Location, Date, Expires, Server, Transfer-Encoding, and Vary headers
Contributed by Jonathan Moore <jonathan_moore at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@990245 13f79535-47bb-0310-9956-ffa450edef68
2010-08-27 20:06:11 +00:00
Oleg Kalnichevski e664fa132f HTTPCLIENT-978: HTTP cache update exception handling
Contributed by Michajlo Matijkiw <michajlo_matijkiw at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@990244 13f79535-47bb-0310-9956-ffa450edef68
2010-08-27 19:57:57 +00:00
Oleg Kalnichevski 02bb1461d8 HTTPCLIENT-982: HTTP cache response status
Contributed by Jonathan Moore <jonathan_moore at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@990240 13f79535-47bb-0310-9956-ffa450edef68
2010-08-27 19:35:18 +00:00
Oleg Kalnichevski 29a4612386 HTTPCLIENT-981: CachingHttpClient returns a 411 respones when executing a POST (HttpPost) request
Contributed by Joe Campbell <joseph.r.campbell at gmail.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@989060 13f79535-47bb-0310-9956-ffa450edef68
2010-08-25 12:28:00 +00:00
Oleg Kalnichevski 68c8b4b1ee TABS -> SPACES; fixed bug in a test case
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@988878 13f79535-47bb-0310-9956-ffa450edef68
2010-08-25 08:33:41 +00:00
Oleg Kalnichevski 672221fc5f Renamed test class
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@987822 13f79535-47bb-0310-9956-ffa450edef68
2010-08-21 20:19:41 +00:00
Oleg Kalnichevski 218f06e113 HttpCacheOperationException to signal that HttpCacheStorage encountered an error performing an caching operation
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@987818 13f79535-47bb-0310-9956-ffa450edef68
2010-08-21 19:49:03 +00:00
Oleg Kalnichevski 2112061b16 HTTPCLIENT-978: Ehcache based HTTP cache implementation
Contributed by Michajlo Matijkiw <michajlo_matijkiw at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@987737 13f79535-47bb-0310-9956-ffa450edef68
2010-08-21 12:09:15 +00:00
Oleg Kalnichevski f279d8c37d HTTPCLIENT-980: CachingHttpClient returns a 503 response when the backend HttpClient produces an IOException
Contributed by Jonathan Moore <jonathan_moore at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@987280 13f79535-47bb-0310-9956-ffa450edef68
2010-08-19 19:37:03 +00:00
Oleg Kalnichevski 83c2c00109 HTTPCLIENT-979: cache entry resource management extracted from CachingHttpClient
Contributed by Jonathan Moore <jonathan_moore at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@986864 13f79535-47bb-0310-9956-ffa450edef68
2010-08-18 19:15:43 +00:00
Oleg Kalnichevski 5c33d5cfd9 Immutable instance variable delcared as final
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@986115 13f79535-47bb-0310-9956-ffa450edef68
2010-08-16 19:49:21 +00:00
Oleg Kalnichevski 6956d4ffc8 HTTPCLIENT-978: ehcache based HTTP cache implementation
Contributed by Michajlo Matijkiw <michajlo_matijkiw at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@985733 13f79535-47bb-0310-9956-ffa450edef68
2010-08-15 18:51:32 +00:00
Oleg Kalnichevski a840e65989 SizeLimitedResponseReader can now generate arbitrary type of cache resources using resource factory
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@984949 13f79535-47bb-0310-9956-ffa450edef68
2010-08-12 20:32:54 +00:00
Oleg Kalnichevski e0a296f6b6 Eliminated superfluous CacheEntryFactory; eliminated unnecessary mock objects in test cases
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@984398 13f79535-47bb-0310-9956-ffa450edef68
2010-08-11 13:19:40 +00:00
Oleg Kalnichevski 6f2036bde2 Use ResourceFactory to handle system resource allocation
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@984346 13f79535-47bb-0310-9956-ffa450edef68
2010-08-11 08:59:05 +00:00
Oleg Kalnichevski cb4f012fa7 Refactored HttpCacheEntry / Resource API: HttpCacheEntry is no longer abstract; the same class can be used with any Resource implementations
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@984197 13f79535-47bb-0310-9956-ffa450edef68
2010-08-10 20:15:03 +00:00
Oleg Kalnichevski 1b58a2360d Fixed FileCacheEntry factory
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@983804 13f79535-47bb-0310-9956-ffa450edef68
2010-08-09 20:26:56 +00:00
Oleg Kalnichevski d6a0b4d1a1 HTTP cache entry implementation backed by a temporary file
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@982219 13f79535-47bb-0310-9956-ffa450edef68
2010-08-04 11:34:48 +00:00
Oleg Kalnichevski 7c8a1fdf5b Renamed CacheEntryGenerator to MemCacheEntryFactory
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@981668 13f79535-47bb-0310-9956-ffa450edef68
2010-08-02 19:55:52 +00:00
Oleg Kalnichevski 911350a0c2 Added HttpCache implementations that can be used to store cache entries requiring explict deallocation of system resources; cache entries can be generated using HttpCacheEntryFactory interface
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@981667 13f79535-47bb-0310-9956-ffa450edef68
2010-08-02 19:48:53 +00:00
Oleg Kalnichevski 6602f53a8b Renamed BasicHttpCacheEntry to MemCacheEntry
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@980939 13f79535-47bb-0310-9956-ffa450edef68
2010-07-30 20:20:29 +00:00
Oleg Kalnichevski e0d37d5502 Refactored HttpCacheEntry; new API should allow for cache entries backed by a temporary file
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@980937 13f79535-47bb-0310-9956-ffa450edef68
2010-07-30 20:15:39 +00:00
Oleg Kalnichevski 4ae188acbb Made possible for cache entries to depend on system resources that may require deallocation
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@980767 13f79535-47bb-0310-9956-ffa450edef68
2010-07-30 12:44:44 +00:00
Oleg Kalnichevski b8c1bb05cc HTTPCLIENT-967: support for non-shared (private) caches
Contributed by Jonathan Moore <jonathan_moore at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@980759 13f79535-47bb-0310-9956-ffa450edef68
2010-07-30 12:34:30 +00:00
Oleg Kalnichevski 8690e96fa6 HTTPCLIENT-972: Cache config
Contributed by Jonathan Moore <jonathan_moore at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@980358 13f79535-47bb-0310-9956-ffa450edef68
2010-07-29 08:30:43 +00:00
Oleg Kalnichevski 7891d8c2d4 Refactored exception handling: replaced HttpCacheOperationException with a more generic IOException. This should provide a more natural way of signaling exceptions for file system based caches
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@979259 13f79535-47bb-0310-9956-ffa450edef68
2010-07-26 12:20:02 +00:00
Oleg Kalnichevski 5059eddd97 Code cleanups
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@967206 13f79535-47bb-0310-9956-ffa450edef68
2010-07-23 19:06:42 +00:00
Oleg Kalnichevski 7205e7d340 HTTP Cache API refactoring: entry validation logic factored out from CacheEntry to a separate policy class; HttpCacheEntry should now contain (almost) no protocol specific code
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@966642 13f79535-47bb-0310-9956-ffa450edef68
2010-07-22 13:16:29 +00:00
Oleg Kalnichevski 5a54675818 Reduced visibility of non-essential classes and methods to default (package private). Visibility can be increased on a case by case basis as the Cache API evolves and matures
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@964565 13f79535-47bb-0310-9956-ffa450edef68
2010-07-15 20:17:00 +00:00
Oleg Kalnichevski c10d235ed2 Generified HttpCache key
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@963854 13f79535-47bb-0310-9956-ffa450edef68
2010-07-13 20:40:56 +00:00
Oleg Kalnichevski 818b97fd4c Removed unused code
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@963853 13f79535-47bb-0310-9956-ffa450edef68
2010-07-13 20:29:04 +00:00
Oleg Kalnichevski 76e37db58a * Disambiguated the contract of HttpCache#updatEntry / HttpCacheUpdateCallback
Contributed by Jonathan Moore <jonathan_moore at comcast.com>

* Fixed method synchronization in BasicHttpCache 


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@963849 13f79535-47bb-0310-9956-ffa450edef68
2010-07-13 20:14:00 +00:00
Oleg Kalnichevski 6aad9ccf99 HTTPCLIENT-963: Fixed handling of 'Cache-Control: no-store' on requests
Contributed by Jonathan Moore <jonathan_moore at comcast.com>



git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@963495 13f79535-47bb-0310-9956-ffa450edef68
2010-07-12 21:36:47 +00:00
Oleg Kalnichevski e2efb17400 HTTPCLIENT-965: cache does not honor must-revalidate or proxy-revalidate Cache-Control directives
Contributed by Jonathan Moore <jonathan_moore at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@961424 13f79535-47bb-0310-9956-ffa450edef68
2010-07-07 16:09:34 +00:00
Oleg Kalnichevski 448ff5f344 HTTPCLIENT-964: no-cache directives with field names are no longer transmitted downstream
Contributed by Jonathan Moore <jonathan_moore at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@961422 13f79535-47bb-0310-9956-ffa450edef68
2010-07-07 16:01:48 +00:00
Oleg Kalnichevski 7b21535a49 HTTPCLIENT-962: Fixed handling of Authorization headers in shared cache mode
Contributed by Jonathan Moore <jonathan_moore at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@960338 13f79535-47bb-0310-9956-ffa450edef68
2010-07-04 13:57:45 +00:00
Oleg Kalnichevski c85eaa094b HTTPCLIENT-961: Not all applicable URIs are invalidated on PUT/POST/DELETEs that pass through client cache
Contributed by Jonathan Moore <jonathan_moore at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@960337 13f79535-47bb-0310-9956-ffa450edef68
2010-07-04 13:35:27 +00:00
Oleg Kalnichevski 9b8fb9f02a HTTPCLIENT-958: Client cache no longer allows incomplete responses to be passed on to the client
Contributed by Jonathan Moore <jonathan_moore at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@959941 13f79535-47bb-0310-9956-ffa450edef68
2010-07-02 10:31:34 +00:00
Sebastian Bazley 25071e091c Disambiguate local links so they work with the Doxia 1.1 (which is current for Maven 2.1.0)
(whilst still remaining compatible with the previous Doxia release)

git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@954679 13f79535-47bb-0310-9956-ffa450edef68
2010-06-15 00:15:49 +00:00
Oleg Kalnichevski 0ea086094e HTTPCLIENT-943: CacheClient Javadoc and Constants usage cleanup
Contributed by Joe Campbell <joseph.r.campbell at gmail.com> 


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@948754 13f79535-47bb-0310-9956-ffa450edef68
2010-05-27 10:15:41 +00:00
Oleg Kalnichevski ef2839b770 HTTPCLIENT-937: CacheEntry made immutable; now uses immutable HttpEntity to store cached content
Contributed by David Mays <david_mays at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@947501 13f79535-47bb-0310-9956-ffa450edef68
2010-05-23 21:55:20 +00:00
Oleg Kalnichevski ec44b2c26e Added site for HttpClient cache module
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@945824 13f79535-47bb-0310-9956-ffa450edef68
2010-05-18 18:59:49 +00:00
Oleg Kalnichevski e47331c369 Upgraded project version to 4.1-alpha3-SNAPSHOT
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@945301 13f79535-47bb-0310-9956-ffa450edef68
2010-05-17 18:46:19 +00:00
Oleg Kalnichevski 3d4349f44f o.a.http.client.cache.impl -> o.a.http.impl.client.cache for consistency with other modules
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@943668 13f79535-47bb-0310-9956-ffa450edef68
2010-05-12 20:11:27 +00:00
Oleg Kalnichevski ca86507442 Updated POMs for the 4.1-alpha2 release
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@943642 13f79535-47bb-0310-9956-ffa450edef68
2010-05-12 19:23:18 +00:00
Oleg Kalnichevski 13f31eb2db HTTPCLIENT-936: Fixed bug causing NPE or an infinite loop in the authentication code in case of a SPNEGO authentication failure
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@943620 13f79535-47bb-0310-9956-ffa450edef68
2010-05-12 18:33:17 +00:00
Sebastian Bazley bcfe063e96 Exceptions not thrown
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@943283 13f79535-47bb-0310-9956-ffa450edef68
2010-05-11 20:33:03 +00:00
Sebastian Bazley 0152c00300 Make constants final.
Not used outside class, so don't expose mutable arrays

git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@943281 13f79535-47bb-0310-9956-ffa450edef68
2010-05-11 20:30:52 +00:00
Sebastian Bazley 9e0fcc226d Make constants final
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@943279 13f79535-47bb-0310-9956-ffa450edef68
2010-05-11 20:29:47 +00:00
Oleg Kalnichevski 6974f7bfa1 HTTPCLIENT-427: Added some more acceptance tests as specified in the Section 13 of RFC 2616, in terms of MUST and MUST NOT requirements
Contributed by Jonathan Moore <jonathan_moore at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@942077 13f79535-47bb-0310-9956-ffa450edef68
2010-05-07 14:16:14 +00:00
Oleg Kalnichevski f749748401 Tweaked logging in caching components
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@942073 13f79535-47bb-0310-9956-ffa450edef68
2010-05-07 13:53:13 +00:00
Sebastian Bazley fd2e7a79a9 Javadoc
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@941948 13f79535-47bb-0310-9956-ffa450edef68
2010-05-06 21:44:24 +00:00
Sebastian Bazley a85de75581 Make class @Immutable by copying array
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@941947 13f79535-47bb-0310-9956-ffa450edef68
2010-05-06 21:43:56 +00:00
Sebastian Bazley 62555455bd +=@NotThreadSafe
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@941945 13f79535-47bb-0310-9956-ffa450edef68
2010-05-06 21:34:29 +00:00
Sebastian Bazley b5ce3f91ec Does not throw IOException
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@941944 13f79535-47bb-0310-9956-ffa450edef68
2010-05-06 21:31:44 +00:00
Sebastian Bazley 6f23db2533 Not Immutable, but should be ThreadSafe
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@941943 13f79535-47bb-0310-9956-ffa450edef68
2010-05-06 21:30:20 +00:00
Sebastian Bazley fb47960bfa No need for AtomicLong fields to be volatile
Now @ThreadSafe

git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@941942 13f79535-47bb-0310-9956-ffa450edef68
2010-05-06 21:28:45 +00:00
Oleg Kalnichevski 1d1df0174d HTTPCLIENT-427: CacheEntry made immutable
Contributed by David Mays <david_mays at comcast.com>


git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@941886 13f79535-47bb-0310-9956-ffa450edef68
2010-05-06 20:02:22 +00:00
Sebastian Bazley 1a26a94f95 Unthrown Exceptions
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@940065 13f79535-47bb-0310-9956-ffa450edef68
2010-05-01 16:04:28 +00:00
Sebastian Bazley ebf24c65df No point catching an Exception only to rethrow it - just let JUnit handle it
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@940063 13f79535-47bb-0310-9956-ffa450edef68
2010-05-01 15:54:06 +00:00
Sebastian Bazley a5814c279c Avoid possible NPE
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@940062 13f79535-47bb-0310-9956-ffa450edef68
2010-05-01 15:50:47 +00:00
Sebastian Bazley fd513425a1 Unthrown Exceptions
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@940061 13f79535-47bb-0310-9956-ffa450edef68
2010-05-01 15:47:02 +00:00