Class DefaultNettyHttpClientRegistry

java.lang.Object
io.micronaut.http.client.netty.DefaultNettyHttpClientRegistry
All Implemented Interfaces:
io.micronaut.context.event.ApplicationEventListener<io.micronaut.runtime.context.scope.refresh.RefreshEvent>, io.micronaut.core.order.Ordered, io.micronaut.http.client.HttpClientRegistry<io.micronaut.http.client.HttpClient>, NettyClientCustomizer.Registry, io.micronaut.http.client.ProxyHttpClientRegistry<io.micronaut.http.client.ProxyHttpClient>, io.micronaut.http.client.RawHttpClientRegistry, io.micronaut.http.client.sse.SseClientRegistry<io.micronaut.http.client.sse.SseClient>, io.micronaut.http.client.StreamingHttpClientRegistry<io.micronaut.http.client.StreamingHttpClient>, io.micronaut.http.netty.channel.ChannelPipelineCustomizer, io.micronaut.runtime.context.scope.refresh.RefreshEventListener, io.micronaut.websocket.WebSocketClientRegistry<io.micronaut.websocket.WebSocketClient>, AutoCloseable, EventListener

@Factory @Internal public class DefaultNettyHttpClientRegistry extends Object implements AutoCloseable, io.micronaut.http.client.HttpClientRegistry<io.micronaut.http.client.HttpClient>, io.micronaut.http.client.sse.SseClientRegistry<io.micronaut.http.client.sse.SseClient>, io.micronaut.http.client.StreamingHttpClientRegistry<io.micronaut.http.client.StreamingHttpClient>, io.micronaut.websocket.WebSocketClientRegistry<io.micronaut.websocket.WebSocketClient>, io.micronaut.http.client.ProxyHttpClientRegistry<io.micronaut.http.client.ProxyHttpClient>, io.micronaut.http.client.RawHttpClientRegistry, io.micronaut.http.netty.channel.ChannelPipelineCustomizer, NettyClientCustomizer.Registry, io.micronaut.runtime.context.scope.refresh.RefreshEventListener
Factory for the default implementation of the HttpClient interface based on Netty.
Since:
2.0
  • Field Summary

    Fields inherited from interface io.micronaut.http.netty.channel.ChannelPipelineCustomizer

    HANDLER_ACCESS_LOGGER, HANDLER_ACTIVITY_LISTENER, HANDLER_CONNECT_TTL, HANDLER_FLOW_CONTROL, HANDLER_HTTP_AGGREGATOR, HANDLER_HTTP_CHUNK, HANDLER_HTTP_CLIENT_CODEC, HANDLER_HTTP_CLIENT_INIT, HANDLER_HTTP_COMPRESSOR, HANDLER_HTTP_DECODER, HANDLER_HTTP_DECOMPRESSOR, HANDLER_HTTP_KEEP_ALIVE, HANDLER_HTTP_PROXY, HANDLER_HTTP_SERVER_CODEC, HANDLER_HTTP_STREAM, HANDLER_HTTP_TO_HTTPS_REDIRECT, HANDLER_HTTP2_CONNECTION, HANDLER_HTTP2_PING_SENDER, HANDLER_HTTP2_PROTOCOL_NEGOTIATOR, HANDLER_HTTP2_SETTINGS, HANDLER_HTTP2_UPGRADE_REQUEST, HANDLER_IDLE_STATE, HANDLER_INITIAL_ERROR, HANDLER_MICRONAUT_FULL_HTTP_RESPONSE, HANDLER_MICRONAUT_HTTP_RESPONSE, HANDLER_MICRONAUT_HTTP_RESPONSE_FULL, HANDLER_MICRONAUT_HTTP_RESPONSE_STREAM, HANDLER_MICRONAUT_INBOUND, HANDLER_MICRONAUT_SSE_CONTENT, HANDLER_MICRONAUT_SSE_EVENT_STREAM, HANDLER_MICRONAUT_WEBSOCKET_CLIENT, HANDLER_READ_TIMEOUT, HANDLER_SOCKS_5_PROXY, HANDLER_SSL, HANDLER_WEBSOCKET_UPGRADE

    Fields inherited from interface io.micronaut.core.order.Ordered

    HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE

    Fields inherited from interface io.micronaut.runtime.context.scope.refresh.RefreshEventListener

    DEFAULT_POSITION
  • Constructor Summary

    Constructors
    Constructor
    Description
    DefaultNettyHttpClientRegistry(io.micronaut.http.client.HttpClientConfiguration defaultHttpClientConfiguration, io.micronaut.http.filter.HttpClientFilterResolver<io.micronaut.http.client.filter.ClientFilterResolutionContext> httpClientFilterResolver, io.micronaut.http.client.LoadBalancerResolver loadBalancerResolver, ClientSslBuilder nettyClientSslBuilder, ThreadFactory threadFactory, io.micronaut.http.codec.MediaTypeCodecRegistry codecRegistry, io.micronaut.http.body.MessageBodyHandlerRegistry handlerRegistry, io.micronaut.http.netty.channel.EventLoopGroupRegistry eventLoopGroupRegistry, io.micronaut.http.netty.channel.EventLoopGroupFactory eventLoopGroupFactory, io.micronaut.context.BeanContext beanContext, io.micronaut.json.JsonMapper jsonMapper, @Nullable ExecutorService blockingExecutor)
    Default constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
     
    void
    disposeClient(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata)
     
    void
    doOnConnect(@NonNull io.micronaut.http.netty.channel.ChannelPipelineListener listener)
     
    getClient(@NonNull io.micronaut.core.annotation.AnnotationMetadata metadata)
     
    getClient(@NonNull io.micronaut.http.client.HttpVersionSelection httpVersion, @NonNull String clientId, @Nullable String path)
     
     
    getProxyHttpClient(@NonNull io.micronaut.core.annotation.AnnotationMetadata metadata)
     
    @NonNull io.micronaut.http.client.RawHttpClient
    getRawClient(@NonNull io.micronaut.http.client.HttpVersionSelection httpVersion, @NonNull String clientId, @Nullable String path)
     
    getSseClient(@NonNull io.micronaut.core.annotation.AnnotationMetadata metadata)
     
    getStreamingHttpClient(@NonNull io.micronaut.core.annotation.AnnotationMetadata metadata)
     
    getWebSocketClient(@NonNull io.micronaut.core.annotation.AnnotationMetadata metadata)
     
    httpClient(@Nullable io.micronaut.inject.InjectionPoint<?> injectionPoint, @Nullable io.micronaut.http.client.LoadBalancer loadBalancer, @Nullable io.micronaut.http.client.HttpClientConfiguration configuration, io.micronaut.context.BeanContext beanContext)
    Creates a new HttpClient for the given injection point.
    boolean
     
    void
    onApplicationEvent(io.micronaut.runtime.context.scope.refresh.RefreshEvent event)
     
    void
    register(@NonNull NettyClientCustomizer customizer)
    Register a new customizer with this registry.
    @NonNull io.micronaut.http.client.HttpClient
    resolveClient(@Nullable io.micronaut.inject.InjectionPoint<?> injectionPoint, @Nullable io.micronaut.http.client.LoadBalancer loadBalancer, @Nullable io.micronaut.http.client.HttpClientConfiguration configuration, @NonNull io.micronaut.context.BeanContext beanContext)
     
    @NonNull io.micronaut.http.client.ProxyHttpClient
    resolveProxyHttpClient(@Nullable io.micronaut.inject.InjectionPoint<?> injectionPoint, @Nullable io.micronaut.http.client.LoadBalancer loadBalancer, @Nullable io.micronaut.http.client.HttpClientConfiguration configuration, @NonNull io.micronaut.context.BeanContext beanContext)
     
    @NonNull io.micronaut.http.client.sse.SseClient
    resolveSseClient(@Nullable io.micronaut.inject.InjectionPoint<?> injectionPoint, @Nullable io.micronaut.http.client.LoadBalancer loadBalancer, @Nullable io.micronaut.http.client.HttpClientConfiguration configuration, @NonNull io.micronaut.context.BeanContext beanContext)
     
    @NonNull io.micronaut.http.client.StreamingHttpClient
    resolveStreamingHttpClient(@Nullable io.micronaut.inject.InjectionPoint<?> injectionPoint, @Nullable io.micronaut.http.client.LoadBalancer loadBalancer, @Nullable io.micronaut.http.client.HttpClientConfiguration configuration, @NonNull io.micronaut.context.BeanContext beanContext)
     
    @NonNull io.micronaut.websocket.WebSocketClient
    resolveWebSocketClient(@Nullable io.micronaut.inject.InjectionPoint<?> injectionPoint, @Nullable io.micronaut.http.client.LoadBalancer loadBalancer, @Nullable io.micronaut.http.client.HttpClientConfiguration configuration, @NonNull io.micronaut.context.BeanContext beanContext)
     

    Methods inherited from class java.lang.Object

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

    Methods inherited from interface io.micronaut.http.netty.channel.ChannelPipelineCustomizer

    isServerChannel

    Methods inherited from interface io.micronaut.http.client.HttpClientRegistry

    getClient, getDefaultClient

    Methods inherited from interface io.micronaut.http.client.ProxyHttpClientRegistry

    getDefaultProxyHttpClient

    Methods inherited from interface io.micronaut.runtime.context.scope.refresh.RefreshEventListener

    getOrder, supports

    Methods inherited from interface io.micronaut.http.client.sse.SseClientRegistry

    getDefaultSseClient

    Methods inherited from interface io.micronaut.http.client.StreamingHttpClientRegistry

    getDefaultStreamingHttpClient

    Methods inherited from interface io.micronaut.websocket.WebSocketClientRegistry

    getDefaultWebSocketClient
  • Constructor Details

    • DefaultNettyHttpClientRegistry

      public DefaultNettyHttpClientRegistry(io.micronaut.http.client.HttpClientConfiguration defaultHttpClientConfiguration, io.micronaut.http.filter.HttpClientFilterResolver<io.micronaut.http.client.filter.ClientFilterResolutionContext> httpClientFilterResolver, io.micronaut.http.client.LoadBalancerResolver loadBalancerResolver, ClientSslBuilder nettyClientSslBuilder, ThreadFactory threadFactory, io.micronaut.http.codec.MediaTypeCodecRegistry codecRegistry, io.micronaut.http.body.MessageBodyHandlerRegistry handlerRegistry, io.micronaut.http.netty.channel.EventLoopGroupRegistry eventLoopGroupRegistry, io.micronaut.http.netty.channel.EventLoopGroupFactory eventLoopGroupFactory, io.micronaut.context.BeanContext beanContext, io.micronaut.json.JsonMapper jsonMapper, @Nullable @Named("blocking") @Nullable ExecutorService blockingExecutor)
      Default constructor.
      Parameters:
      defaultHttpClientConfiguration - The default HTTP client configuration
      httpClientFilterResolver - The HTTP client filter resolver
      loadBalancerResolver - The load balancer resolver
      nettyClientSslBuilder - The client SSL builder
      threadFactory - The thread factory
      codecRegistry - The codec registry
      handlerRegistry - The handler registry
      eventLoopGroupRegistry - The event loop group registry
      eventLoopGroupFactory - The event loop group factory
      beanContext - The bean context
      jsonMapper - JSON Mapper
      blockingExecutor - Optional executor for blocking operations
  • Method Details

    • getClient

      @NonNull public @NonNull DefaultHttpClient getClient(@NonNull @NonNull io.micronaut.http.client.HttpVersionSelection httpVersion, @NonNull @NonNull String clientId, @Nullable @Nullable String path)
      Specified by:
      getClient in interface io.micronaut.http.client.HttpClientRegistry<io.micronaut.http.client.HttpClient>
    • getRawClient

      @NonNull public @NonNull io.micronaut.http.client.RawHttpClient getRawClient(@NonNull @NonNull io.micronaut.http.client.HttpVersionSelection httpVersion, @NonNull @NonNull String clientId, @Nullable @Nullable String path)
      Specified by:
      getRawClient in interface io.micronaut.http.client.RawHttpClientRegistry
    • getClient

      @NonNull public @NonNull DefaultHttpClient getClient(@NonNull @NonNull io.micronaut.core.annotation.AnnotationMetadata metadata)
      Specified by:
      getClient in interface io.micronaut.http.client.HttpClientRegistry<io.micronaut.http.client.HttpClient>
    • getSseClient

      @NonNull public @NonNull DefaultHttpClient getSseClient(@NonNull @NonNull io.micronaut.core.annotation.AnnotationMetadata metadata)
      Specified by:
      getSseClient in interface io.micronaut.http.client.sse.SseClientRegistry<io.micronaut.http.client.sse.SseClient>
    • getStreamingHttpClient

      @NonNull public @NonNull DefaultHttpClient getStreamingHttpClient(@NonNull @NonNull io.micronaut.core.annotation.AnnotationMetadata metadata)
      Specified by:
      getStreamingHttpClient in interface io.micronaut.http.client.StreamingHttpClientRegistry<io.micronaut.http.client.StreamingHttpClient>
    • getProxyHttpClient

      @NonNull public @NonNull DefaultHttpClient getProxyHttpClient(@NonNull @NonNull io.micronaut.core.annotation.AnnotationMetadata metadata)
      Specified by:
      getProxyHttpClient in interface io.micronaut.http.client.ProxyHttpClientRegistry<io.micronaut.http.client.ProxyHttpClient>
    • getWebSocketClient

      @NonNull public @NonNull DefaultHttpClient getWebSocketClient(@NonNull @NonNull io.micronaut.core.annotation.AnnotationMetadata metadata)
      Specified by:
      getWebSocketClient in interface io.micronaut.websocket.WebSocketClientRegistry<io.micronaut.websocket.WebSocketClient>
    • close

      @PreDestroy public void close()
      Specified by:
      close in interface AutoCloseable
    • disposeClient

      public void disposeClient(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata)
      Specified by:
      disposeClient in interface io.micronaut.http.client.HttpClientRegistry<io.micronaut.http.client.HttpClient>
      Specified by:
      disposeClient in interface io.micronaut.http.client.ProxyHttpClientRegistry<io.micronaut.http.client.ProxyHttpClient>
      Specified by:
      disposeClient in interface io.micronaut.http.client.sse.SseClientRegistry<io.micronaut.http.client.sse.SseClient>
      Specified by:
      disposeClient in interface io.micronaut.http.client.StreamingHttpClientRegistry<io.micronaut.http.client.StreamingHttpClient>
      Specified by:
      disposeClient in interface io.micronaut.websocket.WebSocketClientRegistry<io.micronaut.websocket.WebSocketClient>
    • httpClient

      @Bean @Primary protected DefaultHttpClient httpClient(@Nullable @Nullable io.micronaut.inject.InjectionPoint<?> injectionPoint, @Parameter @Nullable @Nullable io.micronaut.http.client.LoadBalancer loadBalancer, @Parameter @Nullable @Nullable io.micronaut.http.client.HttpClientConfiguration configuration, io.micronaut.context.BeanContext beanContext)
      Creates a new HttpClient for the given injection point.
      Parameters:
      injectionPoint - The injection point
      loadBalancer - The load balancer to use (Optional)
      configuration - The configuration (Optional)
      beanContext - The bean context to use
      Returns:
      The client
    • resolveClient

      @NonNull public @NonNull io.micronaut.http.client.HttpClient resolveClient(@Nullable @Nullable io.micronaut.inject.InjectionPoint<?> injectionPoint, @Nullable @Nullable io.micronaut.http.client.LoadBalancer loadBalancer, @Nullable @Nullable io.micronaut.http.client.HttpClientConfiguration configuration, @NonNull @NonNull io.micronaut.context.BeanContext beanContext)
      Specified by:
      resolveClient in interface io.micronaut.http.client.HttpClientRegistry<io.micronaut.http.client.HttpClient>
    • resolveProxyHttpClient

      @NonNull public @NonNull io.micronaut.http.client.ProxyHttpClient resolveProxyHttpClient(@Nullable @Nullable io.micronaut.inject.InjectionPoint<?> injectionPoint, @Nullable @Nullable io.micronaut.http.client.LoadBalancer loadBalancer, @Nullable @Nullable io.micronaut.http.client.HttpClientConfiguration configuration, @NonNull @NonNull io.micronaut.context.BeanContext beanContext)
      Specified by:
      resolveProxyHttpClient in interface io.micronaut.http.client.ProxyHttpClientRegistry<io.micronaut.http.client.ProxyHttpClient>
    • resolveSseClient

      @NonNull public @NonNull io.micronaut.http.client.sse.SseClient resolveSseClient(@Nullable @Nullable io.micronaut.inject.InjectionPoint<?> injectionPoint, @Nullable @Nullable io.micronaut.http.client.LoadBalancer loadBalancer, @Nullable @Nullable io.micronaut.http.client.HttpClientConfiguration configuration, @NonNull @NonNull io.micronaut.context.BeanContext beanContext)
      Specified by:
      resolveSseClient in interface io.micronaut.http.client.sse.SseClientRegistry<io.micronaut.http.client.sse.SseClient>
    • resolveStreamingHttpClient

      @NonNull public @NonNull io.micronaut.http.client.StreamingHttpClient resolveStreamingHttpClient(@Nullable @Nullable io.micronaut.inject.InjectionPoint<?> injectionPoint, @Nullable @Nullable io.micronaut.http.client.LoadBalancer loadBalancer, @Nullable @Nullable io.micronaut.http.client.HttpClientConfiguration configuration, @NonNull @NonNull io.micronaut.context.BeanContext beanContext)
      Specified by:
      resolveStreamingHttpClient in interface io.micronaut.http.client.StreamingHttpClientRegistry<io.micronaut.http.client.StreamingHttpClient>
    • resolveWebSocketClient

      @NonNull public @NonNull io.micronaut.websocket.WebSocketClient resolveWebSocketClient(@Nullable @Nullable io.micronaut.inject.InjectionPoint<?> injectionPoint, @Nullable @Nullable io.micronaut.http.client.LoadBalancer loadBalancer, @Nullable @Nullable io.micronaut.http.client.HttpClientConfiguration configuration, @NonNull @NonNull io.micronaut.context.BeanContext beanContext)
      Specified by:
      resolveWebSocketClient in interface io.micronaut.websocket.WebSocketClientRegistry<io.micronaut.websocket.WebSocketClient>
    • isClientChannel

      public boolean isClientChannel()
      Specified by:
      isClientChannel in interface io.micronaut.http.netty.channel.ChannelPipelineCustomizer
    • doOnConnect

      public void doOnConnect(@NonNull @NonNull io.micronaut.http.netty.channel.ChannelPipelineListener listener)
      Specified by:
      doOnConnect in interface io.micronaut.http.netty.channel.ChannelPipelineCustomizer
    • register

      public void register(@NonNull @NonNull NettyClientCustomizer customizer)
      Description copied from interface: NettyClientCustomizer.Registry
      Register a new customizer with this registry.
      Specified by:
      register in interface NettyClientCustomizer.Registry
      Parameters:
      customizer - The customizer to register.
    • getObservedConfigurationPrefixes

      public Set<String> getObservedConfigurationPrefixes()
      Specified by:
      getObservedConfigurationPrefixes in interface io.micronaut.runtime.context.scope.refresh.RefreshEventListener
    • onApplicationEvent

      public void onApplicationEvent(io.micronaut.runtime.context.scope.refresh.RefreshEvent event)
      Specified by:
      onApplicationEvent in interface io.micronaut.context.event.ApplicationEventListener<io.micronaut.runtime.context.scope.refresh.RefreshEvent>