Class DefaultNettyHttpClientRegistry

  • All Implemented Interfaces:
    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.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.websocket.WebSocketClientRegistry<io.micronaut.websocket.WebSocketClient>, java.lang.AutoCloseable

    @Factory
    @Internal
    public class DefaultNettyHttpClientRegistry
    extends java.lang.Object
    implements java.lang.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.netty.channel.ChannelPipelineCustomizer, NettyClientCustomizer.Registry
    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_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_PROTOCOL_NEGOTIATOR, HANDLER_HTTP2_SETTINGS, HANDLER_HTTP2_UPGRADE_REQUEST, HANDLER_IDLE_STATE, HANDLER_MICRONAUT_FULL_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
    • Constructor Summary

      Constructors 
      Constructor Description
      DefaultNettyHttpClientRegistry​(io.micronaut.http.client.HttpClientConfiguration defaultHttpClientConfiguration, io.micronaut.http.filter.HttpClientFilterResolver httpClientFilterResolver, io.micronaut.http.client.LoadBalancerResolver loadBalancerResolver, NettyClientSslBuilder nettyClientSslBuilder, java.util.concurrent.ThreadFactory threadFactory, io.micronaut.http.codec.MediaTypeCodecRegistry codecRegistry, io.micronaut.http.netty.channel.EventLoopGroupRegistry eventLoopGroupRegistry, io.micronaut.http.netty.channel.EventLoopGroupFactory eventLoopGroupFactory, io.micronaut.context.BeanContext beanContext, java.util.List<io.micronaut.scheduling.instrument.InvocationInstrumenterFactory> invocationInstrumenterFactories, io.micronaut.json.JsonMapper jsonMapper)
      Default constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()  
      void disposeClient​(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata)  
      void doOnConnect​(io.micronaut.http.netty.channel.ChannelPipelineListener listener)  
      DefaultHttpClient getClient​(io.micronaut.core.annotation.AnnotationMetadata metadata)  
      io.micronaut.http.client.HttpClient getClient​(io.micronaut.http.HttpVersion httpVersion, java.lang.String clientId, java.lang.String path)  
      DefaultHttpClient getProxyHttpClient​(io.micronaut.core.annotation.AnnotationMetadata metadata)  
      DefaultHttpClient getSseClient​(io.micronaut.core.annotation.AnnotationMetadata metadata)  
      DefaultHttpClient getStreamingHttpClient​(io.micronaut.core.annotation.AnnotationMetadata metadata)  
      DefaultHttpClient getWebSocketClient​(io.micronaut.core.annotation.AnnotationMetadata metadata)  
      protected DefaultHttpClient httpClient​(io.micronaut.inject.InjectionPoint<?> injectionPoint, io.micronaut.http.client.LoadBalancer loadBalancer, io.micronaut.http.client.HttpClientConfiguration configuration, io.micronaut.context.BeanContext beanContext)
      Creates a new HttpClient for the given injection point.
      boolean isClientChannel()  
      void register​(NettyClientCustomizer customizer)
      Register a new customizer with this registry.
      io.micronaut.http.client.HttpClient resolveClient​(io.micronaut.inject.InjectionPoint<?> injectionPoint, io.micronaut.http.client.LoadBalancer loadBalancer, io.micronaut.http.client.HttpClientConfiguration configuration, io.micronaut.context.BeanContext beanContext)  
      io.micronaut.http.client.ProxyHttpClient resolveProxyHttpClient​(io.micronaut.inject.InjectionPoint<?> injectionPoint, io.micronaut.http.client.LoadBalancer loadBalancer, io.micronaut.http.client.HttpClientConfiguration configuration, io.micronaut.context.BeanContext beanContext)  
      io.micronaut.http.client.sse.SseClient resolveSseClient​(io.micronaut.inject.InjectionPoint<?> injectionPoint, io.micronaut.http.client.LoadBalancer loadBalancer, io.micronaut.http.client.HttpClientConfiguration configuration, io.micronaut.context.BeanContext beanContext)  
      io.micronaut.http.client.StreamingHttpClient resolveStreamingHttpClient​(io.micronaut.inject.InjectionPoint<?> injectionPoint, io.micronaut.http.client.LoadBalancer loadBalancer, io.micronaut.http.client.HttpClientConfiguration configuration, io.micronaut.context.BeanContext beanContext)  
      io.micronaut.websocket.WebSocketClient resolveWebSocketClient​(io.micronaut.inject.InjectionPoint<?> injectionPoint, io.micronaut.http.client.LoadBalancer loadBalancer, io.micronaut.http.client.HttpClientConfiguration configuration, 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

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

        getDefaultProxyHttpClient
      • 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 Detail

      • DefaultNettyHttpClientRegistry

        public DefaultNettyHttpClientRegistry​(io.micronaut.http.client.HttpClientConfiguration defaultHttpClientConfiguration,
                                              io.micronaut.http.filter.HttpClientFilterResolver httpClientFilterResolver,
                                              io.micronaut.http.client.LoadBalancerResolver loadBalancerResolver,
                                              NettyClientSslBuilder nettyClientSslBuilder,
                                              java.util.concurrent.ThreadFactory threadFactory,
                                              io.micronaut.http.codec.MediaTypeCodecRegistry codecRegistry,
                                              io.micronaut.http.netty.channel.EventLoopGroupRegistry eventLoopGroupRegistry,
                                              io.micronaut.http.netty.channel.EventLoopGroupFactory eventLoopGroupFactory,
                                              io.micronaut.context.BeanContext beanContext,
                                              java.util.List<io.micronaut.scheduling.instrument.InvocationInstrumenterFactory> invocationInstrumenterFactories,
                                              io.micronaut.json.JsonMapper jsonMapper)
        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
        eventLoopGroupRegistry - The event loop group registry
        eventLoopGroupFactory - The event loop group factory
        beanContext - The bean context
        invocationInstrumenterFactories - The invocation instrumenter factories
        jsonMapper - JSON Mapper
    • Method Detail

      • getClient

        @NonNull
        public io.micronaut.http.client.HttpClient getClient​(io.micronaut.http.HttpVersion httpVersion,
                                                             @NonNull
                                                             java.lang.String clientId,
                                                             @Nullable
                                                             java.lang.String path)
        Specified by:
        getClient in interface io.micronaut.http.client.HttpClientRegistry<io.micronaut.http.client.HttpClient>
      • getClient

        @NonNull
        public DefaultHttpClient getClient​(@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 DefaultHttpClient getSseClient​(@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 DefaultHttpClient getStreamingHttpClient​(@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 DefaultHttpClient getProxyHttpClient​(@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 DefaultHttpClient getWebSocketClient​(@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 java.lang.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
                                               io.micronaut.inject.InjectionPoint<?> injectionPoint,
                                               @Parameter @Nullable
                                               io.micronaut.http.client.LoadBalancer loadBalancer,
                                               @Parameter @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 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)
        Specified by:
        resolveClient in interface io.micronaut.http.client.HttpClientRegistry<io.micronaut.http.client.HttpClient>
      • resolveProxyHttpClient

        @NonNull
        public 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)
        Specified by:
        resolveProxyHttpClient in interface io.micronaut.http.client.ProxyHttpClientRegistry<io.micronaut.http.client.ProxyHttpClient>
      • resolveSseClient

        @NonNull
        public 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)
        Specified by:
        resolveSseClient in interface io.micronaut.http.client.sse.SseClientRegistry<io.micronaut.http.client.sse.SseClient>
      • resolveStreamingHttpClient

        @NonNull
        public 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)
        Specified by:
        resolveStreamingHttpClient in interface io.micronaut.http.client.StreamingHttpClientRegistry<io.micronaut.http.client.StreamingHttpClient>
      • resolveWebSocketClient

        @NonNull
        public 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)
        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
                                io.micronaut.http.netty.channel.ChannelPipelineListener listener)
        Specified by:
        doOnConnect in interface io.micronaut.http.netty.channel.ChannelPipelineCustomizer