Class RedirectingAsyncDecorator

java.lang.Object
org.apache.hc.client5.testing.async.RedirectingAsyncDecorator
All Implemented Interfaces:
org.apache.hc.core5.http.nio.AsyncDataConsumer, org.apache.hc.core5.http.nio.AsyncDataExchangeHandler, org.apache.hc.core5.http.nio.AsyncDataProducer, org.apache.hc.core5.http.nio.AsyncServerExchangeHandler, org.apache.hc.core5.http.nio.ResourceHolder

public class RedirectingAsyncDecorator extends Object implements org.apache.hc.core5.http.nio.AsyncServerExchangeHandler
  • Field Details

    • exchangeHandler

      private final org.apache.hc.core5.http.nio.AsyncServerExchangeHandler exchangeHandler
    • redirectResolver

      private final RedirectResolver redirectResolver
    • redirecting

      private final AtomicBoolean redirecting
  • Constructor Details

    • RedirectingAsyncDecorator

      public RedirectingAsyncDecorator(org.apache.hc.core5.http.nio.AsyncServerExchangeHandler exchangeHandler, RedirectResolver redirectResolver)
  • Method Details

    • resolveRedirect

      private Redirect resolveRedirect(org.apache.hc.core5.http.HttpRequest request) throws org.apache.hc.core5.http.HttpException
      Throws:
      org.apache.hc.core5.http.HttpException
    • createRedirectResponse

      private org.apache.hc.core5.http.HttpResponse createRedirectResponse(Redirect redirect)
    • handleRequest

      public void handleRequest(org.apache.hc.core5.http.HttpRequest request, org.apache.hc.core5.http.EntityDetails entityDetails, org.apache.hc.core5.http.nio.ResponseChannel responseChannel, org.apache.hc.core5.http.protocol.HttpContext context) throws org.apache.hc.core5.http.HttpException, IOException
      Specified by:
      handleRequest in interface org.apache.hc.core5.http.nio.AsyncServerExchangeHandler
      Throws:
      org.apache.hc.core5.http.HttpException
      IOException
    • updateCapacity

      public final void updateCapacity(org.apache.hc.core5.http.nio.CapacityChannel capacityChannel) throws IOException
      Specified by:
      updateCapacity in interface org.apache.hc.core5.http.nio.AsyncDataConsumer
      Throws:
      IOException
    • consume

      public final void consume(ByteBuffer src) throws IOException
      Specified by:
      consume in interface org.apache.hc.core5.http.nio.AsyncDataConsumer
      Throws:
      IOException
    • streamEnd

      public final void streamEnd(List<? extends org.apache.hc.core5.http.Header> trailers) throws org.apache.hc.core5.http.HttpException, IOException
      Specified by:
      streamEnd in interface org.apache.hc.core5.http.nio.AsyncDataConsumer
      Throws:
      org.apache.hc.core5.http.HttpException
      IOException
    • available

      public int available()
      Specified by:
      available in interface org.apache.hc.core5.http.nio.AsyncDataProducer
    • produce

      public void produce(org.apache.hc.core5.http.nio.DataStreamChannel channel) throws IOException
      Specified by:
      produce in interface org.apache.hc.core5.http.nio.AsyncDataProducer
      Throws:
      IOException
    • failed

      public void failed(Exception cause)
      Specified by:
      failed in interface org.apache.hc.core5.http.nio.AsyncDataExchangeHandler
    • releaseResources

      public void releaseResources()
      Specified by:
      releaseResources in interface org.apache.hc.core5.http.nio.ResourceHolder