Class ListenerInvokingChannelPool

java.lang.Object
software.amazon.awssdk.http.nio.netty.internal.ListenerInvokingChannelPool
All Implemented Interfaces:
io.netty.channel.pool.ChannelPool, Closeable, AutoCloseable, SdkChannelPool

@SdkInternalApi public final class ListenerInvokingChannelPool extends Object implements SdkChannelPool
A SdkChannelPool that wraps and delegates to another SdkChannelPool while invoking ListenerInvokingChannelPool.ChannelPoolListeners for important events that occur.

ListenerInvokingChannelPool.ChannelPoolListener is similar to Netty's ChannelPoolHandler interface, but by invoking them as part of a SdkChannelPool wrapper, we are given more control over when they are invoked. For example, HttpOrHttp2ChannelPool may choose not to release HTTP/2 stream channels to the lowest-level pool (and instead store the channels in its own pool), but by instrumenting listeners that sit on top of this layer, we are still given visibility into these events occurring.

  • Constructor Details

  • Method Details

    • acquire

      public io.netty.util.concurrent.Future<io.netty.channel.Channel> acquire()
      Specified by:
      acquire in interface io.netty.channel.pool.ChannelPool
    • acquire

      public io.netty.util.concurrent.Future<io.netty.channel.Channel> acquire(io.netty.util.concurrent.Promise<io.netty.channel.Channel> returnFuture)
      Specified by:
      acquire in interface io.netty.channel.pool.ChannelPool
    • release

      public io.netty.util.concurrent.Future<Void> release(io.netty.channel.Channel channel)
      Specified by:
      release in interface io.netty.channel.pool.ChannelPool
    • release

      public io.netty.util.concurrent.Future<Void> release(io.netty.channel.Channel channel, io.netty.util.concurrent.Promise<Void> returnFuture)
      Specified by:
      release in interface io.netty.channel.pool.ChannelPool
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface io.netty.channel.pool.ChannelPool
      Specified by:
      close in interface Closeable
    • collectChannelPoolMetrics

      public CompletableFuture<Void> collectChannelPoolMetrics(MetricCollector metrics)
      Description copied from interface: SdkChannelPool
      Collect channel pool metrics into the provided MetricCollector collection, completing the returned future when all metric publishing is complete.
      Specified by:
      collectChannelPoolMetrics in interface SdkChannelPool
      Parameters:
      metrics - The collection to which all metrics should be added.
      Returns:
      A future that is completed when all metric publishing is complete.