Package io.micronaut.http.client.netty
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_UPGRADEFields inherited from interface io.micronaut.core.order.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCEFields inherited from interface io.micronaut.runtime.context.scope.refresh.RefreshEventListener
DEFAULT_POSITION -
Constructor Summary
ConstructorsConstructorDescriptionDefaultNettyHttpClientRegistry(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 TypeMethodDescriptionvoidclose()voiddisposeClient(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata) voiddoOnConnect(@NonNull io.micronaut.http.netty.channel.ChannelPipelineListener listener) @NonNull DefaultHttpClientgetClient(@NonNull io.micronaut.core.annotation.AnnotationMetadata metadata) @NonNull DefaultHttpClientgetClient(@NonNull io.micronaut.http.client.HttpVersionSelection httpVersion, @NonNull String clientId, @Nullable String path) @NonNull DefaultHttpClientgetProxyHttpClient(@NonNull io.micronaut.core.annotation.AnnotationMetadata metadata) @NonNull io.micronaut.http.client.RawHttpClientgetRawClient(@NonNull io.micronaut.http.client.HttpVersionSelection httpVersion, @NonNull String clientId, @Nullable String path) @NonNull DefaultHttpClientgetSseClient(@NonNull io.micronaut.core.annotation.AnnotationMetadata metadata) @NonNull DefaultHttpClientgetStreamingHttpClient(@NonNull io.micronaut.core.annotation.AnnotationMetadata metadata) @NonNull DefaultHttpClientgetWebSocketClient(@NonNull io.micronaut.core.annotation.AnnotationMetadata metadata) protected DefaultHttpClienthttpClient(@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 newHttpClientfor the given injection point.booleanvoidonApplicationEvent(io.micronaut.runtime.context.scope.refresh.RefreshEvent event) voidregister(@NonNull NettyClientCustomizer customizer) Register a new customizer with this registry.@NonNull io.micronaut.http.client.HttpClientresolveClient(@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.ProxyHttpClientresolveProxyHttpClient(@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.SseClientresolveSseClient(@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.StreamingHttpClientresolveStreamingHttpClient(@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.WebSocketClientresolveWebSocketClient(@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, waitMethods inherited from interface io.micronaut.http.netty.channel.ChannelPipelineCustomizer
isServerChannelMethods inherited from interface io.micronaut.http.client.HttpClientRegistry
getClient, getDefaultClientMethods inherited from interface io.micronaut.http.client.ProxyHttpClientRegistry
getDefaultProxyHttpClientMethods inherited from interface io.micronaut.runtime.context.scope.refresh.RefreshEventListener
getOrder, supportsMethods inherited from interface io.micronaut.http.client.sse.SseClientRegistry
getDefaultSseClientMethods inherited from interface io.micronaut.http.client.StreamingHttpClientRegistry
getDefaultStreamingHttpClientMethods 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 configurationhttpClientFilterResolver- The HTTP client filter resolverloadBalancerResolver- The load balancer resolvernettyClientSslBuilder- The client SSL builderthreadFactory- The thread factorycodecRegistry- The codec registryhandlerRegistry- The handler registryeventLoopGroupRegistry- The event loop group registryeventLoopGroupFactory- The event loop group factorybeanContext- The bean contextjsonMapper- JSON MapperblockingExecutor- 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:
getClientin interfaceio.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:
getRawClientin interfaceio.micronaut.http.client.RawHttpClientRegistry
-
getClient
@NonNull public @NonNull DefaultHttpClient getClient(@NonNull @NonNull io.micronaut.core.annotation.AnnotationMetadata metadata) - Specified by:
getClientin interfaceio.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:
getSseClientin interfaceio.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:
getStreamingHttpClientin interfaceio.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:
getProxyHttpClientin interfaceio.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:
getWebSocketClientin interfaceio.micronaut.websocket.WebSocketClientRegistry<io.micronaut.websocket.WebSocketClient>
-
close
@PreDestroy public void close()- Specified by:
closein interfaceAutoCloseable
-
disposeClient
public void disposeClient(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata) - Specified by:
disposeClientin interfaceio.micronaut.http.client.HttpClientRegistry<io.micronaut.http.client.HttpClient>- Specified by:
disposeClientin interfaceio.micronaut.http.client.ProxyHttpClientRegistry<io.micronaut.http.client.ProxyHttpClient>- Specified by:
disposeClientin interfaceio.micronaut.http.client.sse.SseClientRegistry<io.micronaut.http.client.sse.SseClient>- Specified by:
disposeClientin interfaceio.micronaut.http.client.StreamingHttpClientRegistry<io.micronaut.http.client.StreamingHttpClient>- Specified by:
disposeClientin interfaceio.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 newHttpClientfor the given injection point.- Parameters:
injectionPoint- The injection pointloadBalancer- 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:
resolveClientin interfaceio.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:
resolveProxyHttpClientin interfaceio.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:
resolveSseClientin interfaceio.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:
resolveStreamingHttpClientin interfaceio.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:
resolveWebSocketClientin interfaceio.micronaut.websocket.WebSocketClientRegistry<io.micronaut.websocket.WebSocketClient>
-
isClientChannel
public boolean isClientChannel()- Specified by:
isClientChannelin interfaceio.micronaut.http.netty.channel.ChannelPipelineCustomizer
-
doOnConnect
public void doOnConnect(@NonNull @NonNull io.micronaut.http.netty.channel.ChannelPipelineListener listener) - Specified by:
doOnConnectin interfaceio.micronaut.http.netty.channel.ChannelPipelineCustomizer
-
register
Description copied from interface:NettyClientCustomizer.RegistryRegister a new customizer with this registry.- Specified by:
registerin interfaceNettyClientCustomizer.Registry- Parameters:
customizer- The customizer to register.
-
getObservedConfigurationPrefixes
- Specified by:
getObservedConfigurationPrefixesin interfaceio.micronaut.runtime.context.scope.refresh.RefreshEventListener
-
onApplicationEvent
public void onApplicationEvent(io.micronaut.runtime.context.scope.refresh.RefreshEvent event) - Specified by:
onApplicationEventin interfaceio.micronaut.context.event.ApplicationEventListener<io.micronaut.runtime.context.scope.refresh.RefreshEvent>
-