Add support for Jetty Reactive Streams HTTP client

Leverage https://github.com/jetty-project/jetty-reactive-httpclient
to add support for Jetty in WebClient via JettyClientHttpConnector.

Implemented with buffer copy instead of optimized buffer wrapping
because the latter hangs since Callback#succeeded doesn't allow
releasing the buffer and requesting more data at different times
(required for Mono<DataBuffer> for example).
See https://github.com/eclipse/jetty.project/issues/2429.

Issue: SPR-15092
This commit is contained in:
sdeleuze
2018-04-11 10:42:36 +02:00
committed by Sebastien Deleuze
parent 3c9049d530
commit a87764f1fd
8 changed files with 465 additions and 3 deletions

View File

@@ -12,7 +12,10 @@ server <<web-reactive.adoc#webflux-fn,functional web framework>>.
The API exposes Reactor `Flux` and `Mono` types, also see
<<web-reactive.adoc#webflux-reactive-libraries>>. By default it uses
it uses https://github.com/reactor/reactor-netty[Reactor Netty] as the HTTP client
library but others can be plugged in through a custom `ClientHttpConnector`.
library and
https://github.com/jetty-project/jetty-reactive-httpclient[Jetty ReactiveStreams HttpClient]
is supported as well via `JettyClientHttpConnector`, but others can be plugged in
through a custom `ClientHttpConnector`.
By comparison to the <<integration.adoc#rest-resttemplate,RestTemplate>>, the
`WebClient` is: