Commit Graph

173 Commits

Author SHA1 Message Date
Scott Gifford a8fc99f4a2 HttpByteArrayCacheEntrySerializer minor code cleanup for HTTPCORE-615.
MemcachedCacheEntryHttp inner class NoAgeCacheValidityPolicy should be static.
Add missing javadoc @param and @return entries to MemcachedCacheEntryHttp.
Remove extra blank lines.
2020-01-07 09:30:02 +01:00
Gary Gregory 634886ab61 [HTTPCLIENT-2046] Rename AuthSchemes enum to StandardAuthScheme final class
Modeled after StandardCharsets, the new class indicates a non-exhaustive
list of standard auth schemes by name supported by the HttpClient. The
previous enum suffered from two issues:

* it was exhaustive implying that no more auth schemes can be supported
* its sole purpose was to contain an id for the declared auth scheme;
  the enum values theirselves were never used directly

This closes #196
2020-01-01 21:57:53 +01:00
Scott Gifford f765a81b31 HTTPCORE-615: Implement HTTP-based cache serializer-deserializer. (#192)
HTTPCORE-615: Implement HTTP-based cache serializer-deserializer.
2019-12-30 10:57:58 +01:00
Scott Gifford 40173ca071 Fix bug in ResourceIOException where message was not passed to super. 2019-12-30 10:52:26 +01:00
Michael Osipov 167dbc7576 Make consistent use of AuthSchemes#id
This closes #189
2019-12-27 12:26:34 +01:00
Michael Osipov a5dac4c6f2 HTTPCLIENT-2038: CacheConfig should use TimeValue 2019-12-15 12:45:14 +01:00
Michael Osipov ebccd5d225 Use String#isEmpty() 2019-12-15 11:49:26 +01:00
Michael Osipov 810e56b419 Don't explicitly declare runtime exceptions 2019-12-15 11:36:31 +01:00
Michael Osipov 83bc2c497d ExponentialBackOffSchedulingStrategy should use TimeValue internally 2019-12-15 11:36:31 +01:00
Michael Osipov 846a25561c Use language-agnotic Locale.ROOT 2019-12-15 11:36:30 +01:00
Michael Osipov 3d502c9ac4 Correct Javadoc 2019-12-15 11:28:11 +01:00
Michael Osipov 434d5e5046 Fix formatting 2019-12-15 11:28:11 +01:00
Michael Osipov bca9a873a5 Use consistent variable names 2019-12-15 11:28:08 +01:00
Oleg Kalnichevski a1c63d46df Marked caching async clients as experimental (no functional changes) 2019-12-12 11:02:56 +01:00
Michael Osipov 6cff260eff HTTPCLIENT-2031: Don't use plural names for enums
This closes #180
2019-12-10 10:50:28 +01:00
Olof Larsson e1f48e788d HTTPCLIENT-2023: Allow nested arrays and all primitive types in DefaultHttpCacheEntrySerializer 2019-11-08 10:40:01 +01:00
Oleg Kalnichevski 4d3b3ee2a3 Removed Base64 decoding from TestByteArrayCacheEntrySerializer 2019-10-23 17:24:56 +02:00
Oleg Kalnichevski 25748c48b2 Upgraded HttpClient version to 5.0-beta7-SNAPSHOT 2019-10-09 10:30:55 +02:00
Oleg Kalnichevski a0febeb6f1 Upgraded HttpClient version to 5.0-beta6-SNAPSHOT 2019-07-21 11:22:12 +02:00
Kirill Usov b717fde289 Information response (1xx) processing 2019-07-14 16:11:16 +02:00
Oleg Kalnichevski 669020ccac Renamed Http2 to H2 (no functional changes) 2019-07-14 15:50:44 +02:00
Oleg Kalnichevski 8e42474a6c Deprecated HttpClient functionality now provided out of HttpCore 2019-07-14 15:48:21 +02:00
Gary Gregory 81c1bc4dc3 Clean up. 2019-05-03 10:28:40 -04:00
Oleg Kalnichevski 72d9b378cd Upgraded HttpClient version to 5.0-beta5-SNAPSHOT 2019-04-06 10:36:42 +02:00
Oleg Kalnichevski 3fac3a4435 HttpClient 5.0-beta4 release 2019-04-03 10:41:53 +02:00
Artem Smotrakov adf8691dcd HTTPCLIENT-1976: Unsafe deserialization in DefaultHttpCacheEntrySerializer 2019-04-02 14:07:27 +02:00
Ryan Schmitt f8653a011a Upgrade HttpCore to version 5.0-beta7 2019-02-27 14:36:53 -08:00
Raymond, Jayson e6ca403d29 Some well known proxies respond with Content-Length=0, when returning 304. For robustness, always use the cached entity's content length, as modern browsers do. 2019-02-06 07:21:09 -08:00
Oleg Kalnichevski df4b6d5c80 Upgraded HttpClient version to 5.0-beta4-SNAPSHOT 2018-12-16 11:12:33 +01:00
Oleg Kalnichevski 6a0dc58570 HttpClient 5.0-beta3 release 2018-12-11 10:14:12 +01:00
Oleg Kalnichevski b452006756 Upgraded HttpCore to version 5.0-beta6 2018-12-04 15:49:56 +01:00
Oleg Kalnichevski eb0ee46c05 Upgraded HttpClient version to 5.0-beta3-SNAPSHOT 2018-10-27 10:30:11 +02:00
Oleg Kalnichevski 83f9ab8d1d HttpClient 5.0-beta2 release 2018-10-23 15:40:37 +02:00
Oleg Kalnichevski 1b6175d76a Updated remote javadoc references 2018-10-23 15:14:34 +02:00
Gary Gregory 3e5df337c5 Update tests from Easymock 3.2 to 3.6. 2018-10-22 16:55:19 -06:00
Oleg Kalnichevski ab7be3fd53 Upgraded HttpCore to version 5.0-beta5 2018-10-21 13:24:49 +02:00
Oleg Kalnichevski 37c8006472 Javadocs; renamed some methods (no functional changes) 2018-10-17 23:40:12 +02:00
Gary Gregory 8e486b356e Reuse our UriScheme enum instead of magic strings. 2018-10-03 09:25:17 -06:00
Oleg Kalnichevski cbe00beb56 Removed duplicate class (no functional changes) 2018-08-30 11:36:46 +02:00
Oleg Kalnichevski 1614c25168 Upgraded HttpCore dependency to version 5.0-beta3 2018-08-30 10:54:54 +02:00
Gary Gregory 3aa9c1fd33 - Always use blocks
- Add missing serial version ID (default 1L)
- Camel-case names.
- Don't nest in else clause unnecessarily.
- Remove declared exceptions that are not thrown (but don't break BC.)
- Remove redundant superinterface
- Access static methods directly
- Better local var names.
2018-08-14 20:56:08 +02:00
Gary Gregory 769e9fab3f Add missing @Override annotations. 2018-08-05 11:40:07 -06:00
Gary Gregory c3bdc8913f Refactor common code in a new Closer utility class. 2018-08-04 23:55:41 +02:00
Gary Gregory 8d87cf515b Static methods should be accessed directly. Remove redundant type
arguments. Remove exceptions not thrown from method signatures. Add
missing @Override. Remove unnecessary semicolons. Don't nest
unnecessarily.
2018-08-04 10:40:01 -06:00
Oleg Kalnichevski 68fd176c07 Upgraded HttpClient version to 5.0-beta2-SNAPSHOT 2018-01-18 10:02:04 +01:00
Oleg Kalnichevski 67be267f99 HttpClient 5.0-beta1 release 2018-01-15 13:30:04 +01:00
Sudheera Palihakkara 5f2ad23ab3 HTTPCLIENT-1690: Avoid updating the cache entry with Content-Encoding headers too. (missing piece from last commit). Updated the test case 2018-01-15 13:03:57 +01:00
Sudheera Palihakkara a3bcad3989 HTTPCLIENT-1690: Avoid merging Content-Encoding headers coming with 304 status to cache entry 2018-01-15 10:16:35 +01:00
Oleg Kalnichevski 695f353b43 Re-use concurrent primitives from HttpCore 2018-01-12 14:20:10 +01:00
Oleg Kalnichevski dee32207e3 Upgraded HttpCore dependency to version 5.0-beta2 2018-01-12 14:06:08 +01:00
Oleg Kalnichevski 3780b706ae Fixed cache module dependency declaration 2018-01-11 10:24:56 +01:00
Oleg Kalnichevski eb71f45ee5 SLF4J logging facade 2018-01-10 13:07:37 +01:00
Oleg Kalnichevski 16147b1852 Completed rewrite of re-validation code in the classic caching exec interceptor; added re-validation to the async caching exec interceptor 2018-01-08 11:13:17 +01:00
Oleg Kalnichevski f16ac3ec3b Better method name (no functional changes) 2018-01-07 13:59:28 +01:00
Oleg Kalnichevski 7cf4240b3f Redesigned cache entry re-validation logic; added classic and async implementations of cache re-validators 2018-01-07 12:48:59 +01:00
Oleg Kalnichevski 79b76030fd Replaced FailureCache by generic ConcurrentCountMap 2018-01-05 15:09:05 +01:00
Oleg Kalnichevski 0561bacc66 Decoupled SchedulingStrategy and its implementations from HTTP cache specific logic 2018-01-05 12:29:14 +01:00
Oleg Kalnichevski eb1cab46e6 HTTPCLIENT-1384: clean up of HttpCacheInvalidator and HttpAsyncCacheInvalidator APIs 2018-01-02 13:41:31 +01:00
Oleg Kalnichevski c78032d638 HTTPCLIENT-1395: added config parameter to skip an extra cache entry freshness check upon cache update in case of a cache miss 2018-01-01 18:31:43 +01:00
Oleg Kalnichevski 194e4f5289 Corrected handling of request with non-repeatable by caching request execution interceptors 2018-01-01 16:52:50 +01:00
Oleg Kalnichevski c607197fd0 Code cleanup in AsyncCachingExec: async code made more consistent with that of its classic counterpart and hopefully a bit more readable 2018-01-01 16:45:46 +01:00
Oleg Kalnichevski 77703a7eef HttCache and HttpAsyncCache implementation to treat ResourceIOExceptions as non-fatal and log ResourceIOExceptions as warnings 2017-12-30 12:31:46 +01:00
Oleg Kalnichevski 749b02ac03 HTTPCLIENT-1824: asynchronous HTTP cache executor to use asynchronous HTTP cache APIs; changed algorithm of the backend response freshness check (both classic and async cache implementations) 2017-12-27 11:53:09 +01:00
Oleg Kalnichevski b4768fc86b HTTPCLIENT-1824: asynchronous HTTP response cache 2017-12-27 11:53:03 +01:00
Oleg Kalnichevski 3f52d0bf90 HTTPCLIENT-1824: asynchronous HTTP cache invalidator 2017-12-26 18:12:18 +01:00
Oleg Kalnichevski 6200a17c0c Redesign of CacheKeyGenerator and HttpCacheInvalidator APIs 2017-12-26 18:09:08 +01:00
Oleg Kalnichevski 6459d6882c Added Date util methods for common operations 2017-12-26 17:18:20 +01:00
Oleg Kalnichevski e262842466 Added Cancellable convenience methods 2017-12-23 10:48:46 +01:00
Oleg Kalnichevski d6d3d364eb Clean up of CacheEntryUpdater (CacheEntryUpdater renamed to CacheUpdateHandler) 2017-12-22 15:12:44 +01:00
Oleg Kalnichevski 123a68d513 Clean up of BasicHttpCache and related test classes 2017-12-22 11:10:08 +01:00
Oleg Kalnichevski b2d063c6a8 Removed unused code 2017-12-21 14:49:25 +01:00
Oleg Kalnichevski 8d08c38d4f Bugfix: fixed incorrect behaviour of HttpCacheEntryMatcher, fixed incorrect mapping of cache entries returned by bulk retrieval methods 2017-12-21 14:49:25 +01:00
Oleg Kalnichevski 29666a1ad4 New APIs for cache entry bulk retrieval; bulk retrieval support by Memcached storage implementation 2017-12-20 11:46:57 +01:00
Oleg Kalnichevski 002f40f9d3 HTTPCLIENT-1824, HTTPCLIENT-1868: Asynchronous HTTP cache storage API; Memcached backend implementation of async HTTP cache storage 2017-12-20 11:24:52 +01:00
Oleg Kalnichevski ebcb55d641 Renamed HttpCacheUpdateCallback to HttpCacheCASOperation (CAS = Compare-And-Swap) 2017-12-20 10:27:37 +01:00
Oleg Kalnichevski 9581cbc7a0 Factored out request URI generation and normalization logic fron CacheKeyGenerator into HttpCacheSupport 2017-12-08 13:27:03 +01:00
Oleg Kalnichevski 043fe4dd90 Use StandardMethods 2017-12-07 19:59:33 +01:00
Oleg Kalnichevski b1659264f7 Clean up of test cases 2017-12-07 19:59:32 +01:00
Oleg Kalnichevski 450cb40afc Upgraded HttpClient version to 5.0-alpha4-SNAPSHOT 2017-11-24 09:38:15 +01:00
Oleg Kalnichevski ea22019220 HttpClient 5.0-alpha3 release 2017-11-19 12:54:30 +01:00
Oleg Kalnichevski 5da1bd8f8d Builder for caching HTTP/2 HttpAsyncClient 2017-11-14 21:17:44 +01:00
Oleg Kalnichevski 87865c5cd5 Fixed style check violations (no functional changes) 2017-11-01 22:30:52 +01:00
Oleg Kalnichevski 26024a3b8e Upgraded Ehcache to version 3.4.0 2017-10-19 15:52:30 +02:00
Oleg Kalnichevski f215fdcd32 Factored out logic shared by Memcached and Ehcache implementations into an abstract base class 2017-10-19 15:36:11 +02:00
Oleg Kalnichevski f70c974241 Renamed class (no functional changes) 2017-10-16 23:41:40 +02:00
Oleg Kalnichevski fc41f47ad3 CacheInvalidator to use URI class instead of URL 2017-10-16 23:39:11 +02:00
Oleg Kalnichevski 935573104c Use stable (HttpRequest implementation independent) implementation of key generation 2017-10-16 23:01:13 +02:00
Oleg Kalnichevski 74ed4dfebf Revised HTTP cache debug logging 2017-10-16 23:00:19 +02:00
Oleg Kalnichevski 30320fe2f4 Fixed NPE in case of a missing Max-Forwards header 2017-10-16 23:00:19 +02:00
Oleg Kalnichevski 0c862432d8 Removed unstable (due to a race condition) integration test 2017-10-16 23:00:19 +02:00
Oleg Kalnichevski 45f1657907 HTTPCLIENT-1827: Builder for CachingHttpAsyncClient instances with full support for streamed HTTP exchanges 2017-10-16 22:59:26 +02:00
Oleg Kalnichevski 849d1a138e HTTPCLIENT-1827: Asynchronous cache exec interceptor with caching support for streamed HTTP exchanges; removed incomplete response checks as response integrity is enforced in the transport layer; async cache re-validation is currently broken in the classic and unsuppoted in the async implementations 2017-10-16 22:51:32 +02:00
Oleg Kalnichevski 6076f5542b Fixed regression in cache validity logic for file backed cache entries 2017-10-13 13:22:23 +02:00
Oleg Kalnichevski bb96781e5b Revised HTTP cache exception handling 2017-10-12 15:42:17 +02:00
Oleg Kalnichevski b24aa01866 Upgraded parent POM to version 9; Removed explicit plugin version declaration (should be inherited from the parent POM) 2017-10-04 14:04:17 +02:00
Oleg Kalnichevski 212d7a2e83 Reduced dependency on classic (blocking) I/O APIs in CacheExec 2017-10-03 10:41:15 +02:00
Oleg Kalnichevski e71d8fac88 Removed IOUtils as redundant; try-with-resources for resource management 2017-10-03 09:43:03 +02:00
Oleg Kalnichevski 1d66105c3a Removed dependency on classic (blocking) I/O APIs from CachedHttpResponseGenerator 2017-10-02 22:00:38 +02:00
Oleg Kalnichevski 0226eaff6d Removed dependency on classic (blocking) I/O APIs from RequestProtocolCompliance and ResponseProtocolCompliance; removed compliance checks unrelated to HTTP caching enforced by protocol handlers 2017-10-02 17:34:40 +02:00
Oleg Kalnichevski d75c5c2be2 Removed dependency on classic (blocking) I/O APIs from ConditionalRequestBuilder 2017-10-02 17:34:40 +02:00