Commit Graph

194 Commits

Author SHA1 Message Date
Carter Kozak e09c5d0691 HTTPCLIENT-2184: Fix classic client connection reuse
This fixes an issue in which connections were not returned to the
pool when requests contained non-repeatable bodies AND responses
were streamed. When both of these criteria were met, responses
were returned without ResponseEntityProxy enhancements so that
closing the response entity or stream no longer completed the
exchange, thus leaking the connection which forever lived in the
`leased` state in the connection pool.
2021-11-12 17:33:59 -05:00
Oleg Kalnichevski 0e8adf79dc Updated examples and unit tests to make use of lambda expressions for response message processing 2021-11-12 22:16:43 +01:00
Oleg Kalnichevski 1eb2d40df1 Upgraded HttpClient version to 5.2-alpha2-SNAPSHOT 2021-11-01 18:04:02 +01:00
Oleg Kalnichevski b10d43f2bb HTTPCLIENT-2135: TLS configuration on a per-host basis 2021-10-23 18:07:41 +02:00
Gary Gregory b6ae693fe5 Don't initialize AtomicReference to its default value. 2021-10-13 10:36:49 +02:00
Oleg Kalnichevski fb0c073783 RFC 7230: treat presence of a userinfo component in request URI as an HTTP protocol violation 2021-09-29 18:01:46 +02:00
Oleg Kalnichevski 30c253b37b AuthCache conformance to RFC 7617 2021-09-29 18:01:46 +02:00
Oleg Kalnichevski 88a05247e1 Cleanup of authentication test cases 2021-09-29 18:01:46 +02:00
Oleg Kalnichevski 7b47b28d46 Added immutable CredentialsProvider implementations and a CredentialsProvider builder; changed test cases and examples to use immutable CredentialsProvider where possible 2021-09-29 18:01:45 +02:00
Oleg Kalnichevski 17ebfc529e HTTPCLIENT-2120: force HTTP/1.1 protocol policy when creating a tunnel via HTTP/1.1 proxy 2021-09-29 18:01:43 +02:00
Oleg Kalnichevski 92f757eee3 HTTPCLIENT-2120: support for H2 via HTTP/1.1 proxy 2021-09-09 14:58:49 +02:00
Oleg Kalnichevski c56c00c549 Fixed deprecation warnings that could be fixed and suppressed those that could not 2021-09-09 13:49:44 +02:00
Oleg Kalnichevski 29ba623ebe Fixed connection lease request cancellation race in both classic and asyc pooling connection managers 2021-06-28 22:27:01 +02:00
Oleg Kalnichevski aff1d2024c Better exception asserts in unit tests 2021-06-19 21:10:43 +02:00
Oleg Kalnichevski 0805cfe582 Updated test cases with exception asserts 2021-05-24 18:53:58 +02:00
Oleg Kalnichevski 82432f50d9 Removed references to deprecated Assert#assertThat 2021-05-24 16:58:33 +02:00
Oleg Kalnichevski 8580d7fddf Redundant type declarations 2021-05-24 14:43:18 +02:00
Oleg Kalnichevski f36637dc2f Moved connection management related settings from RequestConfig to new class ConnectionMgmtConfig 2021-05-24 12:43:41 +02:00
Oleg Kalnichevski 646257e107 Upgraded project version to 5.2-alpha1-SNAPSHOT 2021-05-24 11:30:08 +02:00
Oleg Kalnichevski bb04d078ad Java 1.8 upgrade 2021-05-11 21:34:49 +02:00
Oleg Kalnichevski 6693c186f4 Upgraded HttpClient version to 5.1.1-SNAPSHOT 2021-05-11 21:03:27 +02:00
Oleg Kalnichevski 09f50cd80c HTTPCLIENT-2152: Fixed handling of unexpected unchecked exception by the async request retry exec interceptor 2021-04-27 13:07:13 +02:00
Oleg Kalnichevski 2404540f1f Deprecated request factory classes in favor of request builders 2021-03-14 22:13:55 +01:00
Oleg Kalnichevski 1174c240e2 Simple message builders 2021-03-14 18:59:22 +01:00
Oleg Kalnichevski 744c9d8020 Upgraded HttpClient version to 5.1-beta2-SNAPSHOT 2021-02-10 22:06:51 +01:00
Oleg Kalnichevski 4b295dff15 Deprecated some URIUtils methods in favor of URIBuilder 2021-02-06 18:05:01 +01:00
Oleg Kalnichevski f9ea1b6238 Upgraded project version to 5.1-beta1-SNAPSHOT 2021-02-06 13:28:08 +01:00
Arturo Bernal 0940d35602 Minor Improvement:
* Avoid duplicate code
* Simplify if else
* Inline variables
2021-02-05 22:18:45 +01:00
Arturo Bernal 3c9f1f85e1 Minor Improvements:
* Use Empty collections
* Unnecessary toString
2021-01-26 09:14:46 +01:00
Hervé Boutemy 3b0a7aeee8 improve documentation format 2021-01-12 09:33:48 +01:00
Arturo Bernal 6a02e818ff Minor Improvements:
* Remove redundant initialization
2021-01-05 20:01:19 +01:00
Arturo Bernal 36e1bde6ff Minor Improvements:
* Add final to variable
* Unnecessary semicolon
* Use Standard Charset object
* Unnecessary conversion to String
* Simplifiable conditional expression
* Replace 'Arrays.asList()' with Collections.singletonList
* Redundant local variable. Simplify
2020-12-31 13:50:06 +01:00
Oleg Kalnichevski 871ee6bde7 External compatibility tests to use HTTP protocol negotiation settings 2020-11-29 14:33:32 +01:00
Gary Gregory 400771a1a7 Add missing @Override. 2020-11-24 09:22:25 -05:00
Gary Gregory 65c6c25070 [HTTPCLIENT-2124] NullPointerException in MinimalHttpClient.doExecute(HttpHost, ClassicHttpRequest, HttpContext) (#261) 2020-10-25 23:11:14 +01:00
Oleg Kalnichevski 594e5fcefb Upgraded HttpClient version to 5.0.3-SNAPSHOT 2020-09-27 12:12:59 +02:00
Michael Osipov e249e56c14 Add project modules to dependency management 2020-09-22 09:25:43 +02:00
Michael Osipov e13e4ff548 Unify JXR and Surefire report config 2020-09-22 09:25:43 +02:00
Michael Osipov 37c1a9da1d Unify Javadoc report config 2020-09-22 09:25:43 +02:00
Michael Osipov aec050315e Remove default config 2020-09-22 09:25:43 +02:00
Michael Osipov 4b5a2f44a1 Replace HTTP with HTTPS 2020-09-22 09:25:43 +02:00
Oleg Kalnichevski f6da2bac6f HTTPCLIENT-2105: async clients incorrectly handle redirects of requests with enclosed entity 2020-08-09 22:48:30 +02:00
Niels Basjes 9a967de60e Add Automatic-Module-Name in manifest so Java9 modular applications can depend on this library 2020-07-07 15:48:49 +02:00
Carter Kozak 84bd290954
HTTPCLIENT-2095: Use slf4j interpolation instead of string concatenation where possible (#232) 2020-07-02 17:51:43 +02:00
Oleg Kalnichevski c6a4a9b376 Upgraded HttpClient version to 5.0.2-SNAPSHOT 2020-06-12 09:48:10 +02:00
Oleg Kalnichevski 98daeabc05 HTTPCLIENT-2061: corrected sequence of request execution interceptors in classic HttpClient 2020-03-17 14:51:19 +01:00
Oleg Kalnichevski 1928f8db40 Rewrite of redirect integration test cases 2020-03-17 14:47:46 +01:00
Oleg Kalnichevski 61f3a943e1 Upgraded HttpClient version to 5.0.1-SNAPSHOT 2020-02-22 09:56:16 +01:00
Gary Gregory d1c4199db3
No need to use the type name of an input arg in the method name. (#208)
* No need to use the type name of an input arg in the method name.

* Do not use input type names in method names.
2020-01-29 19:20:05 -05:00
Oleg Kalnichevski afa8f5ecd1 Upgraded HttpClient version to 5.0-beta8-SNAPSHOT 2020-01-26 12:42:54 +01:00
Michael Osipov 38a41fea90 Use camelCase for Java method names -- always 2020-01-19 20:25:04 +01:00
Michael Osipov 5a8a6d0fc8 Convert convenience builders form enums to final classes
Turn exhaustive enum builder pattern to a final class with builder
methods serving HTTP request objects.

This closes #202
2020-01-19 20:23:33 +01:00
Ryan Schmitt 82a9932446 Add reactive test coverage
This commit adds test coverage for the `:httpcore5-reactive` bindings,
using different types of clients and protocols.
2020-01-07 11:04:14 -08:00
Ryan Schmitt 3aec96d3db Upgraded HttpCore to version 5.0-beta11 2020-01-07 15:41:18 +01:00
Michael Osipov 3730b03a99 Properly distinguish between AuthScheme and auth scheme name
Throughout the code the terms 'authScheme' and 'scheme' have been used
synonymously for an AuthScheme instance and a string-based auth scheme
name. To avoid confusion, fields, methods and variable have been adapted
to distinguish both properly. If necessary, Javadoc has been modified to
denote the nature of the input.

Also an auth scheme name is retained as-is, but normalized to lowercase
if comparsion is required.

This closes #193
2020-01-01 22:51:19 +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
Gary Gregory eaa8c5f648
[HTTPCLIENT-2043] Rename classes documented as factories from *Provider to *Factory (#194)
This closes #194
2019-12-31 11:27:16 -05:00
Michael Osipov 782d8e40a0 Use proper scheme names in text 2019-12-27 12:26:55 +01:00
Michael Osipov 167dbc7576 Make consistent use of AuthSchemes#id
This closes #189
2019-12-27 12:26:34 +01:00
Michael Osipov 2744c73471 Apply consistent id field names
As with HttpCore an entity should have a consistent id field, named 'id'
throughout the entire codebase.

This closes #188
2019-12-26 15:32:22 +01:00
Oleg Kalnichevski b34007dffd Duplicate resource name in integration tests caused client resource leak 2019-12-21 10:04:20 +01:00
Michael Osipov 1d56c27e6d HTTPCLIENT-2034: Introduce HttpRequestRetryStrategy 2019-12-10 08:43:14 +01:00
Oleg Kalnichevski d62616bb29 Upgraded HttpCore dependency to version 5.0-beta10 2019-10-31 15:15:53 +01:00
Oleg Kalnichevski 25748c48b2 Upgraded HttpClient version to 5.0-beta7-SNAPSHOT 2019-10-09 10:30:55 +02:00
Oleg Kalnichevski a478ed1bb0 Fixed concurrent use of threading unsafe ClassicHttpRequest messages 2019-08-24 11:49:24 +02:00
Oleg Kalnichevski 39cec46715 CloseableHttpClient and CloseableHttpAsyncClient to implement ModalClosable 2019-07-26 14:16:14 +02:00
Oleg Kalnichevski a0febeb6f1 Upgraded HttpClient version to 5.0-beta6-SNAPSHOT 2019-07-21 11:22:12 +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
Oleg Kalnichevski b535a2812b Upgraded HttpCore to version 5.0-beta8 2019-07-14 15:48:21 +02:00
Oleg Kalnichevski 07a9714f3b Better event correlation in connection management logging 2019-06-18 15:03:06 +02: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 a2a55f82e5 HTTPCLIENT-1969: Filter out weak cipher suites 2019-03-07 12:20:13 +01:00
Oleg Kalnichevski 7146a36f87 Bug fix: Fixed broken data generation logic in AsyncRandomHandler (affects test code only) 2019-03-07 11:32:16 +01:00
Ryan Schmitt f8653a011a Upgrade HttpCore to version 5.0-beta7 2019-02-27 14:36:53 -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
Oleg Kalnichevski b518e3d871 Updated Apache HTTPD and Squid docker container configuration 2018-10-23 13:29:52 +02:00
Oleg Kalnichevski b74cb12d44 Renamed RequestConfig#connectionTimeout to RequestConfig#connectTimeout 2018-10-22 15:14:04 +02:00
Oleg Kalnichevski 160bac0cbb Fixed inconsistencies in usage of RequestConfig#connectionTimeout and Request#connectionRequestTimeout 2018-10-22 10:44:00 +02:00
Oleg Kalnichevski 59a1bf443f Tweaked SSL test cases to make them pass with Java 11 2018-10-21 19:26:15 +02:00
Oleg Kalnichevski 6ce03c4d44 Code formatting (no functional changes) 2018-10-21 19:24:29 +02:00
Oleg Kalnichevski 309afeff07 Added builders for SSLConnectionSocketFactory and client TlsStrategy 2018-10-21 16:52:40 +02:00
Oleg Kalnichevski ab7be3fd53 Upgraded HttpCore to version 5.0-beta5 2018-10-21 13:24:49 +02:00
Oleg Kalnichevski 674df3aa9e Re-generated test key material using RSA key algorithm 2018-10-19 17:48:18 +02:00
Oleg Kalnichevski ac90342039 Use enums for supported cookie policies and auth schemes 2018-10-14 20:05:17 +02:00
Oleg Kalnichevski 7468244080 Fixed incorrect server protocol version initialization in the cross-site redirect integration test 2018-10-07 15:22:11 +02: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 fa4a4d3bd6 HTTPCLIENT-1931, HTTPCLIENT-1932: Changed ClassicHttpRequests factory methods to return HttpUriRequestBase; added SimpleHttpRequests factory enum 2018-07-14 12:44:59 +02:00
Oleg Kalnichevski 1253d7f411 Added digest auth support to test Apache HTTPD docker imsage 2018-02-04 12:59:58 +01:00