Package org.jboss.resteasy.client.jaxrs.engines

## Class ReactorNettyClientHttpEngine

- java.lang.Object
- - org.jboss.resteasy.client.jaxrs.engines.ReactorNettyClientHttpEngine

- All Implemented Interfaces:
    `ClientHttpEngine`, `AsyncClientHttpEngine`, `ReactiveClientHttpEngine`

      public class ReactorNettyClientHttpEngine
      extends Object
      implements ReactiveClientHttpEngine

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.jboss.resteasy.client.jaxrs.engines.AsyncClientHttpEngine

      `AsyncClientHttpEngine.ResultExtractor<T>`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ReactorNettyClientHttpEngine​(reactor.netty.http.client.HttpClient httpClient, io.netty.channel.group.ChannelGroup channelGroup, reactor.netty.resources.ConnectionProvider connectionProvider)` |
    `ReactorNettyClientHttpEngine​(reactor.netty.http.client.HttpClient httpClient, io.netty.channel.group.ChannelGroup channelGroup, reactor.netty.resources.ConnectionProvider connectionProvider, Boolean useResponseFinalize)` |
    `ReactorNettyClientHttpEngine​(reactor.netty.http.client.HttpClient httpClient, io.netty.channel.group.ChannelGroup channelGroup, reactor.netty.resources.ConnectionProvider connectionProvider, Duration requestTimeout)` |
    `ReactorNettyClientHttpEngine​(reactor.netty.http.client.HttpClient httpClient, io.netty.channel.group.ChannelGroup channelGroup, reactor.netty.resources.ConnectionProvider connectionProvider, Duration requestTimeout, Boolean useResponseFinalize)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `close()` |
    `reactor.core.publisher.Mono` | `error​(Exception e)` | How the reactive implementation handles errors.
    `<T> reactor.core.publisher.Mono<T>` | `fromCompletionStage​(CompletionStage<T> cs)` |
    `HostnameVerifier` | `getHostnameVerifier()` | Needed for Client.getHostnameVerifier()
    `SSLContext` | `getSslContext()` | Needed for Client.getSslContext();
    `javax.ws.rs.core.Response` | `invoke​(javax.ws.rs.client.Invocation request)` |
    `<T> reactor.core.publisher.Mono<T>` | `just​(T t)` |
    `<T> Future<T>` | `submit​(ClientInvocation request, boolean buffered, javax.ws.rs.client.InvocationCallback<T> callback, AsyncClientHttpEngine.ResultExtractor<T> extractor)` | Submits an asynchronous request.
    `<K> CompletableFuture<K>` | `submit​(ClientInvocation request, boolean buffered, AsyncClientHttpEngine.ResultExtractor<K> extractor, ExecutorService executorService)` | Submits an asynchronous request.
    `<T> reactor.core.publisher.Mono<T>` | `submitRx​(ClientInvocation request, boolean buffered, AsyncClientHttpEngine.ResultExtractor<T> extractor)` | This is the main bridge from RestEasy to a reactive implementation.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.jboss.resteasy.client.jaxrs.engines.AsyncClientHttpEngine

      `submit`

    - ### Methods inherited from interface org.jboss.resteasy.client.jaxrs.ClientHttpEngine

      `isFollowRedirects, setFollowRedirects`

- - ### Constructor Detail

    - #### ReactorNettyClientHttpEngine

          public ReactorNettyClientHttpEngine​(reactor.netty.http.client.HttpClient httpClient,
                                              io.netty.channel.group.ChannelGroup channelGroup,
                                              reactor.netty.resources.ConnectionProvider connectionProvider)

    - #### ReactorNettyClientHttpEngine

          public ReactorNettyClientHttpEngine​(reactor.netty.http.client.HttpClient httpClient,
                                              io.netty.channel.group.ChannelGroup channelGroup,
                                              reactor.netty.resources.ConnectionProvider connectionProvider,
                                              Duration requestTimeout)

    - #### ReactorNettyClientHttpEngine

          public ReactorNettyClientHttpEngine​(reactor.netty.http.client.HttpClient httpClient,
                                              io.netty.channel.group.ChannelGroup channelGroup,
                                              reactor.netty.resources.ConnectionProvider connectionProvider,
                                              Boolean useResponseFinalize)

    - #### ReactorNettyClientHttpEngine

          public ReactorNettyClientHttpEngine​(reactor.netty.http.client.HttpClient httpClient,
                                              io.netty.channel.group.ChannelGroup channelGroup,
                                              reactor.netty.resources.ConnectionProvider connectionProvider,
                                              Duration requestTimeout,
                                              Boolean useResponseFinalize)

  - ### Method Detail

    - #### submitRx

          public <T> reactor.core.publisher.Mono<T> submitRx​(ClientInvocation request,
                                                             boolean buffered,
                                                             AsyncClientHttpEngine.ResultExtractor<T> extractor)

      Description copied from interface: `ReactiveClientHttpEngine`
      This is the main bridge from RestEasy to a reactive implementation.
      Specified by:
        `submitRx` in interface `ReactiveClientHttpEngine`

    - #### fromCompletionStage

          public <T> reactor.core.publisher.Mono<T> fromCompletionStage​(CompletionStage<T> cs)

      Specified by:
        `fromCompletionStage` in interface `ReactiveClientHttpEngine`

    - #### just

          public <T> reactor.core.publisher.Mono<T> just​(T t)

      Specified by:
        `just` in interface `ReactiveClientHttpEngine`

    - #### error

          public reactor.core.publisher.Mono error​(Exception e)

      Description copied from interface: `ReactiveClientHttpEngine`
      How the reactive implementation handles errors.
      Specified by:
        `error` in interface `ReactiveClientHttpEngine`

    - #### submit

          public <T> Future<T> submit​(ClientInvocation request,
                                      boolean buffered,
                                      javax.ws.rs.client.InvocationCallback<T> callback,
                                      AsyncClientHttpEngine.ResultExtractor<T> extractor)

      Description copied from interface: `AsyncClientHttpEngine`
      Submits an asynchronous request.
      Specified by:
        `submit` in interface `AsyncClientHttpEngine`
      Type Parameters:
        `T` - type
      Parameters:
        `request` - Request
        `buffered` - buffer the response?
        `callback` - Optional callback receiving the result, which is run inside the io-thread. may be null.
        `extractor` - ResultExtractor for extracting a result out of a ClientResponse. Is run inside the io-thread
      Returns:
        Future with the result or Exception

    - #### submit

          public <K> CompletableFuture<K> submit​(ClientInvocation request,
                                                 boolean buffered,
                                                 AsyncClientHttpEngine.ResultExtractor<K> extractor,
                                                 ExecutorService executorService)

      Description copied from interface: `AsyncClientHttpEngine`
      Submits an asynchronous request.
      Specified by:
        `submit` in interface `AsyncClientHttpEngine`
      Type Parameters:
        `K` - type
      Parameters:
        `request` - Request
        `buffered` - buffer the response?
        `extractor` - ResultExtractor for extracting a result out of a ClientResponse. Is run inside the io-thread
        `executorService` - the executor to use for asynchronous execution
      Returns:
        `CompletableFuture` with the result or Exception

    - #### getSslContext

          public SSLContext getSslContext()

      Description copied from interface: `ClientHttpEngine`
      Needed for Client.getSslContext();
      Specified by:
        `getSslContext` in interface `ClientHttpEngine`
      Returns:
        `SSLContext`

    - #### getHostnameVerifier

          public HostnameVerifier getHostnameVerifier()

      Description copied from interface: `ClientHttpEngine`
      Needed for Client.getHostnameVerifier()
      Specified by:
        `getHostnameVerifier` in interface `ClientHttpEngine`
      Returns:
        `HostnameVerifier`

    - #### invoke

          public javax.ws.rs.core.Response invoke​(javax.ws.rs.client.Invocation request)

      Specified by:
        `invoke` in interface `ClientHttpEngine`

    - #### close

          public void close()

      Specified by:
        `close` in interface `ClientHttpEngine`