docs: @Override
      public ClientResponse apply(ClientRequest jerseyRequest) {
          try {
              final HttpUriRequest apacheRequest = buildApacheRequest(jerseyRequest);
              final CloseableHttpResponse apacheResponse = client.execute(apacheRequest);
  
              final StatusLine statusLine = apacheResponse.getStatusLine();
              final String reasonPhrase = Strings.nullToEmpty(statusLine.getReasonPhrase());
              final Response.StatusType status = Statuses.from(statusLine.getStatusCode(), reasonPhrase);
  
              final ClientResponse jerseyResponse = new ClientResponse(status, jerseyRequest);
              for (Header header : apacheResponse.getAllHeaders()) {
                  jerseyResponse.getHeaders().computeIfAbsent(header.getName(), k -> new ArrayList<>())
                      .add(header.getValue());
              }
  
              final HttpEntity httpEntity = apacheResponse.getEntity();
              jerseyResponse.setEntityStream(httpEntity != null ? httpEntity.getContent() :
                      new ByteArrayInputStream(new byte[0]));
  
              return jerseyResponse;
          } catch (Exception e) {
              throw new ProcessingException(e);
          }
      }