Commit Graph

145 Commits

Author SHA1 Message Date
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