Commit Graph

300 Commits

Author SHA1 Message Date
Oleg Kalnichevski cc6901798f Bug fix: async cache protocol handler incorrectly updates the actual cache entry in the cache execution context upon cache entry re-validation 2024-10-14 17:58:52 +02:00
Oleg Kalnichevski 81563724d9 Bug fix: response Cache-Control attribute does not get updated in the cache execution context in case of a cache miss 2024-10-14 14:25:39 +02:00
Oleg Kalnichevski 9941fde19e Upgraded HC StyleCheck to version 3; fixed style-check violations (no functional changes) 2024-10-01 11:08:03 +02:00
Oleg Kalnichevski 238e73a73c Upgraded HttpClient version to 5.5-alpha1-SNAPSHOT 2024-10-01 11:07:38 +02:00
Gary Gregory d9a78ce076 Javadoc and reduce boilerplate
- Use final
- package-private methods can throw more precise exception
- Add missing Javadoc comments
- Use lambdas
- Better StringBuilder allocation
- Make private final class a static class
- Make private instance variable final in test
- Single lambda parameter does not need parentheses
- Package-private class constructor can be package-private
2024-09-12 14:47:02 +02:00
Gary Gregory 25f080f307 Private method does not throw checked exception
- Remove it from the private method signatures
- Remove exception handling no longer needed
- Add missing @Override
- No need to nest in an else clause (reduce clutter)
- Use ternary expression
- public methods in a package-private class can be package-private
2024-08-26 11:29:09 -04:00
Gary Gregory 0d6bb65185 ConsumableInputStream extends FilterInputStream
- Reduces boilerplace in the test fixture
- Use Mockito like the rest of the updated test
- Rework test setup to pass on Java 17 and 21 with Mockito
2024-08-24 07:59:29 -04:00
Gary Gregory 75aabd7f62 Javadoc improvements
- No need to use a FQCN when the name is already importted
- Import type instead of using a FQCN
- Use camel-case in paramerter name
- Add missing Javadoc
- Add some missing return tags
- Close some HTML tags
- Fix some comments
- Update Javadoc links
2024-08-17 11:20:08 -04:00
Oleg Kalnichevski 4009567af7 Remove @Experimental from async cache classes 2024-08-11 11:13:03 +02:00
strangelookingnerd cc13243cd3 Minor code cleanup 2024-06-27 23:11:05 +02:00
strangelookingnerd 420910da4f Fix assertions 2024-06-27 23:11:05 +02:00
strangelookingnerd 185d4e32aa Test classes and methods should have default package visibility 2024-06-27 23:11:05 +02:00
Oleg Kalnichevski e45345876e Use CompletedFuture from core 2024-06-27 09:54:40 +02:00
Oleg Kalnichevski a0bf57b837 Upgraded HttpClient version to 5.4-beta2-SNAPSHOT 2024-06-26 14:15:11 +02:00
Gary Gregory 225edf5ea8 Javadoc singleton versus default instances 2024-06-10 18:21:36 -04:00
jattisha 0f37ebdc7d
HTTPCLIENT-2327: Propagate CancellationExceptions from MemcachedClient operations as ResourceIOExceptions (#559) 2024-05-16 15:31:22 +02:00
Oleg Kalnichevski ccfb674a1e Upgraded HttpClient version to 5.4-alpha3-SNAPSHOT 2024-03-11 09:39:26 +01:00
Oleg Kalnichevski eb6fd6b1c2 HttpClientContext and HttpCacheContext to use instance variables for standard attributes 2024-02-29 17:12:35 +01:00
Oleg Kalnichevski 762b18fe69 HttpClientContext to use instance variables for standard attributes 2024-02-29 17:12:35 +01:00
Oleg Kalnichevski 8a7f707a61 Upgraded HttpCore to version 5.3-alpha2 2024-02-14 15:41:56 +01:00
Michael Lee 661589e386 Removed unused private fields and local variables 2024-02-10 14:18:04 +01:00
Oleg Kalnichevski f4f5f73be2 FileResourceFactory to generate stable file names for the same request Id and entity tag 2024-01-26 09:15:21 +01:00
Oleg Kalnichevski d787637e6e Cache ResourceFactory to make use of strong eTags when available 2024-01-26 09:15:21 +01:00
Oleg Kalnichevski 5ecd396f60 Deprecated #copy method in FileResourceFactory 2024-01-26 09:15:21 +01:00
Oleg Kalnichevski a1e8e9082e Better ETag handling 2024-01-18 20:08:39 +01:00
Oleg Kalnichevski d7108f60ae Added #toString methods to Resource implementations 2024-01-12 09:23:42 +01:00
Oleg Kalnichevski 7c0d083b12 Cache control and context API 2024-01-12 09:23:42 +01:00
Oleg Kalnichevski 364fa60cd3 Promote RequestCacheControl and ResponseCacheControl to public API 2024-01-12 09:23:42 +01:00
Oleg Kalnichevski aad5987246 Corrected version in @since 2024-01-06 15:25:58 +01:00
Oleg Kalnichevski f24c8010bb Made caching of 403 responses by the classic and async protocol handlers more consistent 2024-01-03 11:29:16 +01:00
Oleg Kalnichevski c5de6961d1 Upgraded HttpClient version to 5.4-alpha2-SNAPSHOT 2023-12-29 10:47:10 +01:00
Oleg Kalnichevski c3d99b130c Do not set the default HTTP version of cache response messages 2023-12-24 17:54:03 +01:00
Oleg Kalnichevski 6a497be400 Bug-fix: HTTP cache to use response Cache-Control `s-maxage` attribute only when configured as shared 2023-12-24 17:08:04 +01:00
Oleg Kalnichevski df090e4228 Use core MessageSupport methods instead of internal ones 2023-12-23 13:25:59 +01:00
Oleg Kalnichevski 4dc82b40f6 Removed references to deprecated functions 2023-12-23 13:16:25 +01:00
Oleg Kalnichevski 1bbf5f4371 Bug fix: when validating a cache entry the protocol handlers must use the current request message with additional headers generated by the previous request interceptors instead of the original request message 2023-12-13 11:54:48 +01:00
Oleg Kalnichevski 67a0b52919 Better debug logging in the caching protocol handlers 2023-12-13 11:54:48 +01:00
Oleg Kalnichevski 628a963a3a Better HTTP execution context management by caching protocol handlers 2023-12-13 11:54:48 +01:00
Oleg Kalnichevski abb958ec27 HTTPCLIENT-2277: Revised cache validation logic for conformance with the specification requirements per RFC 9111 section 4 2023-12-13 11:54:47 +01:00
Oleg Kalnichevski ebae9ef7e3 HTTPCLIENT-2277: Aligned CachedResponseSuitabilityChecker with the specification requirements per RFC 9111 section 4 2023-12-13 11:54:47 +01:00
Oleg Kalnichevski 99eb13934f HTTPCLIENT-2277: Aligned ResponseCachingPolicy with the specification requirements per RFC 9111 section 3 2023-12-13 11:54:47 +01:00
Oleg Kalnichevski fcb86dae11 HTTPCLIENT-2277: Do not store AUTHORIZATION request header in the cache entry per RFC 9111 section 3.5 2023-12-13 11:54:47 +01:00
Oleg Kalnichevski 1492f57a84 HTTPCLIENT-2277: Cache update bug fix 2023-12-13 11:54:47 +01:00
Oleg Kalnichevski 17540a7881 Moved methods used by the public API classes from CacheSupport to CacheKeyGenerator; added test cases 2023-12-13 11:54:46 +01:00
Oleg Kalnichevski 3ff5496ffb HttpCacheEntry to cache parsed DATE, EXPIRES and LAST_MODIFIED values; avoid parsing DATE header of cache entries and HTTP messages multiple times 2023-12-13 11:54:46 +01:00
Oleg Kalnichevski e7ee13701e Optimize `#isResponseCacheable` by parsing DATE and EXPIRES headers only once 2023-12-13 11:54:46 +01:00
Oleg Kalnichevski 762028805e Moved delta-second parsing routine to CacheSupport 2023-12-13 11:54:46 +01:00
Oleg Kalnichevski 6055776245 Fixed invalid flow control in CacheControlHeaderParser 2023-12-13 11:54:46 +01:00
Oleg Kalnichevski 152ba4736f Renamed cache protocol conformance response interceptor (no functional changes) 2023-12-13 11:54:45 +01:00
Oleg Kalnichevski 77fdc11818 HTTPCLIENT-2293: Via header improvements
* optimized parting of Via response header values in order to generate less intermediate garbage
* optimized Via message header generation
* moved Via request header generation to a cache request interceptor
* moved Via response header generation to a cache response interceptor
2023-12-13 11:54:45 +01:00