Search in sources :

Example 6 with JsonNode

use of io.micronaut.json.tree.JsonNode in project micronaut-core by micronaut-projects.

the class DigitalOceanMetadataResolver method resolve.

@Override
public Optional<ComputeInstanceMetadata> resolve(Environment environment) {
    if (!configuration.isEnabled()) {
        return Optional.empty();
    }
    if (cachedMetadata != null) {
        cachedMetadata.setCached(true);
        return Optional.of(cachedMetadata);
    }
    DigitalOceanInstanceMetadata instanceMetadata = new DigitalOceanInstanceMetadata();
    try {
        String metadataUrl = configuration.getUrl();
        JsonNode metadataJson = readMetadataUrl(new URL(metadataUrl), CONNECTION_TIMEOUT_IN_MILLS, READ_TIMEOUT_IN_MILLS, JsonNodeTreeCodec.getInstance().withConfig(jsonStreamConfig), jsonFactory, new HashMap<>());
        if (metadataJson != null) {
            instanceMetadata.setInstanceId(textValue(metadataJson, DROPLET_ID));
            instanceMetadata.setName(textValue(metadataJson, HOSTNAME));
            instanceMetadata.setVendorData(textValue(metadataJson, VENDOR_DATA));
            instanceMetadata.setUserData(textValue(metadataJson, USER_DATA));
            instanceMetadata.setRegion(textValue(metadataJson, REGION));
            JsonNode networkInterfaces = metadataJson.get(INTERFACES.getName());
            List<NetworkInterface> privateInterfaces = processJsonInterfaces(networkInterfaces.get(PRIVATE_INTERFACES.getName()), instanceMetadata::setPrivateIpV4, instanceMetadata::setPrivateIpV6);
            List<NetworkInterface> publicInterfaces = processJsonInterfaces(networkInterfaces.get(PUBLIC_INTERFACES.getName()), instanceMetadata::setPublicIpV4, instanceMetadata::setPublicIpV6);
            List<NetworkInterface> allInterfaces = new ArrayList<>();
            allInterfaces.addAll(publicInterfaces);
            allInterfaces.addAll(privateInterfaces);
            instanceMetadata.setInterfaces(allInterfaces);
            populateMetadata(instanceMetadata, metadataJson);
            cachedMetadata = instanceMetadata;
            return Optional.of(instanceMetadata);
        }
    } catch (MalformedURLException mue) {
        if (LOG.isErrorEnabled()) {
            LOG.error("Digital Ocean metadataUrl value is invalid!: " + configuration.getUrl(), mue);
        }
    } catch (IOException ioe) {
        if (LOG.isErrorEnabled()) {
            LOG.error("Error connecting to" + configuration.getUrl() + "reading instance metadata", ioe);
        }
    }
    return Optional.empty();
}
Also used : MalformedURLException(java.net.MalformedURLException) ArrayList(java.util.ArrayList) NetworkInterface(io.micronaut.discovery.cloud.NetworkInterface) JsonNode(io.micronaut.json.tree.JsonNode) IOException(java.io.IOException) URL(java.net.URL)

Example 7 with JsonNode

use of io.micronaut.json.tree.JsonNode in project micronaut-core by micronaut-projects.

the class JsonNodeConvertibleValues method get.

@Override
public <T> Optional<T> get(CharSequence name, ArgumentConversionContext<T> conversionContext) {
    String fieldName = name.toString();
    JsonNode jsonNode = objectNode.get(fieldName);
    if (jsonNode == null) {
        return Optional.empty();
    } else {
        return conversionService.convert(jsonNode, conversionContext);
    }
}
Also used : JsonNode(io.micronaut.json.tree.JsonNode)

Example 8 with JsonNode

use of io.micronaut.json.tree.JsonNode in project micronaut-core by micronaut-projects.

the class JsonContentProcessor method doOnSubscribe.

@Override
protected void doOnSubscribe(Subscription subscription, Subscriber<? super JsonNode> subscriber) {
    if (parentSubscription == null) {
        return;
    }
    boolean streamArray = false;
    boolean isJsonStream = nettyHttpRequest.getContentType().map(mediaType -> mediaType.equals(MediaType.APPLICATION_JSON_STREAM_TYPE)).orElse(false);
    if (subscriber instanceof TypedSubscriber) {
        TypedSubscriber typedSubscriber = (TypedSubscriber) subscriber;
        Argument typeArgument = typedSubscriber.getTypeArgument();
        Class targetType = typeArgument.getType();
        if (Publishers.isConvertibleToPublisher(targetType) && !Publishers.isSingle(targetType)) {
            Optional<Argument<?>> genericArgument = typeArgument.getFirstTypeVariable();
            if (genericArgument.isPresent() && !Iterable.class.isAssignableFrom(genericArgument.get().getType()) && !isJsonStream) {
                // if the generic argument is not a iterable type them stream the array into the publisher
                streamArray = true;
            }
        }
    }
    this.jacksonProcessor = jsonMapper.createReactiveParser(p -> {
    }, streamArray);
    this.jacksonProcessor.subscribe(new CompletionAwareSubscriber<JsonNode>() {

        @Override
        protected void doOnSubscribe(Subscription jsonSubscription) {
            Subscription childSubscription = new Subscription() {

                boolean first = true;

                @Override
                public synchronized void request(long n) {
                    // find a better way in the future
                    if (first) {
                        jsonSubscription.request(n < Long.MAX_VALUE ? n + 1 : n);
                        parentSubscription.request(n < Long.MAX_VALUE ? n + 1 : n);
                    } else {
                        jsonSubscription.request(n);
                        parentSubscription.request(n);
                    }
                }

                @Override
                public synchronized void cancel() {
                    jsonSubscription.cancel();
                    parentSubscription.cancel();
                }
            };
            subscriber.onSubscribe(childSubscription);
        }

        @Override
        protected void doOnNext(JsonNode message) {
            subscriber.onNext(message);
        }

        @Override
        protected void doOnError(Throwable t) {
            subscriber.onError(t);
        }

        @Override
        protected void doOnComplete() {
            subscriber.onComplete();
        }
    });
    jacksonProcessor.onSubscribe(subscription);
}
Also used : Publishers(io.micronaut.core.async.publisher.Publishers) JsonNode(io.micronaut.json.tree.JsonNode) HttpServerConfiguration(io.micronaut.http.server.HttpServerConfiguration) Processor(org.reactivestreams.Processor) Internal(io.micronaut.core.annotation.Internal) ByteBufHolder(io.netty.buffer.ByteBufHolder) ByteBufUtil(io.netty.buffer.ByteBufUtil) CompletionAwareSubscriber(io.micronaut.core.async.subscriber.CompletionAwareSubscriber) ByteBuf(io.netty.buffer.ByteBuf) TypedSubscriber(io.micronaut.core.async.subscriber.TypedSubscriber) MediaType(io.micronaut.http.MediaType) ReferenceCountUtil(io.netty.util.ReferenceCountUtil) Subscription(org.reactivestreams.Subscription) JsonMapper(io.micronaut.json.JsonMapper) AbstractHttpContentProcessor(io.micronaut.http.server.netty.AbstractHttpContentProcessor) Optional(java.util.Optional) Argument(io.micronaut.core.type.Argument) Subscriber(org.reactivestreams.Subscriber) NettyHttpRequest(io.micronaut.http.server.netty.NettyHttpRequest) Argument(io.micronaut.core.type.Argument) JsonNode(io.micronaut.json.tree.JsonNode) Subscription(org.reactivestreams.Subscription) TypedSubscriber(io.micronaut.core.async.subscriber.TypedSubscriber)

Example 9 with JsonNode

use of io.micronaut.json.tree.JsonNode in project micronaut-core by micronaut-projects.

the class DigitalOceanMetadataResolver method processJsonInterfaces.

private List<NetworkInterface> processJsonInterfaces(JsonNode interfaces, Consumer<String> ipv4Setter, Consumer<String> ipv6Setter) {
    List<NetworkInterface> networkInterfaces = new ArrayList<>();
    if (interfaces != null) {
        AtomicReference<Integer> networkCounter = new AtomicReference<>(0);
        interfaces.values().forEach(jsonNode -> {
            DigitalOceanNetworkInterface networkInterface = new DigitalOceanNetworkInterface();
            networkInterface.setId(networkCounter.toString());
            JsonNode ipv4 = jsonNode.get(IPV4.getName());
            if (ipv4 != null) {
                networkInterface.setIpv4(textValue(ipv4, IP_ADDRESS));
                networkInterface.setNetmask(textValue(ipv4, NETMASK));
                networkInterface.setGateway(textValue(ipv4, GATEWAY));
            }
            JsonNode ipv6 = jsonNode.get(IPV6.getName());
            if (ipv6 != null) {
                networkInterface.setIpv6(textValue(ipv6, IP_ADDRESS));
                networkInterface.setIpv6Gateway(textValue(ipv6, GATEWAY));
                networkInterface.setCidr(ipv6.get(CIDR.getName()).getIntValue());
            }
            networkInterface.setMac(textValue(jsonNode, MAC));
            networkCounter.getAndSet(networkCounter.get() + 1);
            networkInterfaces.add(networkInterface);
        });
        JsonNode firstIpv4 = interfaces.get(0).get(IPV4.getName());
        ipv4Setter.accept(textValue(firstIpv4, IP_ADDRESS));
        JsonNode firstIpv6 = interfaces.get(0).get(IPV6.getName());
        if (firstIpv6 != null) {
            ipv6Setter.accept(textValue(firstIpv6, IP_ADDRESS));
        }
    }
    return networkInterfaces;
}
Also used : ArrayList(java.util.ArrayList) NetworkInterface(io.micronaut.discovery.cloud.NetworkInterface) AtomicReference(java.util.concurrent.atomic.AtomicReference) JsonNode(io.micronaut.json.tree.JsonNode)

Example 10 with JsonNode

use of io.micronaut.json.tree.JsonNode in project micronaut-core by micronaut-projects.

the class DefaultHttpClient method buildJsonStreamPublisher.

/**
 * @param parentRequest The parent request
 * @param request       The request
 * @param type          The type
 * @param errorType     The error type
 * @param <I>           The input type
 * @param <O>           The output type
 * @return A {@link Function}
 */
protected <I, O> Function<URI, Publisher<O>> buildJsonStreamPublisher(io.micronaut.http.HttpRequest<?> parentRequest, io.micronaut.http.HttpRequest<I> request, io.micronaut.core.type.Argument<O> type, io.micronaut.core.type.Argument<?> errorType) {
    return requestURI -> {
        Flux<io.micronaut.http.HttpResponse<Object>> streamResponsePublisher = Flux.from(buildStreamExchange(parentRequest, request, requestURI, errorType));
        return streamResponsePublisher.switchMap(response -> {
            if (!(response instanceof NettyStreamedHttpResponse)) {
                throw new IllegalStateException("Response has been wrapped in non streaming type. Do not wrap the response in client filters for stream requests");
            }
            MapperMediaTypeCodec mediaTypeCodec = (MapperMediaTypeCodec) mediaTypeCodecRegistry.findCodec(MediaType.APPLICATION_JSON_TYPE).orElseThrow(() -> new IllegalStateException("No JSON codec found"));
            StreamedHttpResponse streamResponse = NettyHttpResponseBuilder.toStreamResponse(response);
            Flux<HttpContent> httpContentReactiveSequence = Flux.from(streamResponse);
            boolean isJsonStream = response.getContentType().map(mediaType -> mediaType.equals(MediaType.APPLICATION_JSON_STREAM_TYPE)).orElse(false);
            boolean streamArray = !Iterable.class.isAssignableFrom(type.getType()) && !isJsonStream;
            Processor<byte[], JsonNode> jsonProcessor = mediaTypeCodec.getJsonMapper().createReactiveParser(p -> {
                httpContentReactiveSequence.map(content -> {
                    ByteBuf chunk = content.content();
                    if (log.isTraceEnabled()) {
                        log.trace("HTTP Client Streaming Response Received Chunk (length: {}) for Request: {} {}", chunk.readableBytes(), request.getMethodName(), request.getUri());
                        traceBody("Chunk", chunk);
                    }
                    try {
                        return ByteBufUtil.getBytes(chunk);
                    } finally {
                        chunk.release();
                    }
                }).subscribe(p);
            }, streamArray);
            return Flux.from(jsonProcessor).map(jsonNode -> mediaTypeCodec.decode(type, jsonNode));
        }).doOnTerminate(() -> {
            final Object o = request.getAttribute(NettyClientHttpRequest.CHANNEL).orElse(null);
            if (o instanceof Channel) {
                final Channel c = (Channel) o;
                if (c.isOpen()) {
                    c.close();
                }
            }
        });
    };
}
Also used : AttributeKey(io.netty.util.AttributeKey) OrderUtil(io.micronaut.core.order.OrderUtil) Publishers(io.micronaut.core.async.publisher.Publishers) NoHostException(io.micronaut.http.client.exceptions.NoHostException) Processor(org.reactivestreams.Processor) JacksonDatabindMapper(io.micronaut.jackson.databind.JacksonDatabindMapper) ProxyHttpClient(io.micronaut.http.client.ProxyHttpClient) HttpProxyHandler(io.netty.handler.proxy.HttpProxyHandler) SseClient(io.micronaut.http.client.sse.SseClient) ChunkedWriteHandler(io.netty.handler.stream.ChunkedWriteHandler) HANDLER_IDLE_STATE(io.micronaut.http.netty.channel.ChannelPipelineCustomizer.HANDLER_IDLE_STATE) Internal(io.micronaut.core.annotation.Internal) NettyClientSslBuilder(io.micronaut.http.client.netty.ssl.NettyClientSslBuilder) Proxy(java.net.Proxy) InstantiationUtils(io.micronaut.core.reflect.InstantiationUtils) HttpStatus(io.micronaut.http.HttpStatus) Duration(java.time.Duration) CharsetUtil(io.netty.util.CharsetUtil) HANDLER_HTTP2_SETTINGS(io.micronaut.http.netty.channel.ChannelPipelineCustomizer.HANDLER_HTTP2_SETTINGS) HttpClientResponseException(io.micronaut.http.client.exceptions.HttpClientResponseException) ArgumentUtils(io.micronaut.core.util.ArgumentUtils) WebSocketClientHandshakerFactory(io.netty.handler.codec.http.websocketx.WebSocketClientHandshakerFactory) MapperMediaTypeCodec(io.micronaut.json.codec.MapperMediaTypeCodec) LoadBalancer(io.micronaut.http.client.LoadBalancer) SocketChannel(io.netty.channel.socket.SocketChannel) HttpClientErrorDecoder(io.micronaut.http.client.exceptions.HttpClientErrorDecoder) ResourceResolver(io.micronaut.core.io.ResourceResolver) ByteBufferFactory(io.micronaut.core.io.buffer.ByteBufferFactory) ReadTimeoutException(io.micronaut.http.client.exceptions.ReadTimeoutException) IdleStateEvent(io.netty.handler.timeout.IdleStateEvent) ChannelHealthChecker(io.netty.channel.pool.ChannelHealthChecker) StreamingInboundHttp2ToHttpAdapter(io.micronaut.http.netty.stream.StreamingInboundHttp2ToHttpAdapter) StandardCharsets(java.nio.charset.StandardCharsets) HttpFilterResolver(io.micronaut.http.filter.HttpFilterResolver) ClientFilterResolutionContext(io.micronaut.http.client.filter.ClientFilterResolutionContext) LineBasedFrameDecoder(io.netty.handler.codec.LineBasedFrameDecoder) AbstractChannelPoolHandler(io.netty.channel.pool.AbstractChannelPoolHandler) SslHandler(io.netty.handler.ssl.SslHandler) ReferenceCountUtil(io.netty.util.ReferenceCountUtil) MutableHttpRequest(io.micronaut.http.MutableHttpRequest) NettyWebSocketClientHandler(io.micronaut.http.client.netty.websocket.NettyWebSocketClientHandler) ChannelPoolMap(io.netty.channel.pool.ChannelPoolMap) MultipartDataFactory(io.micronaut.http.client.multipart.MultipartDataFactory) NettyByteBufferFactory(io.micronaut.buffer.netty.NettyByteBufferFactory) java.util(java.util) Disposable(reactor.core.Disposable) WebSocketBean(io.micronaut.websocket.context.WebSocketBean) OnMessage(io.micronaut.websocket.annotation.OnMessage) ContentLengthExceededException(io.micronaut.http.client.exceptions.ContentLengthExceededException) Supplier(java.util.function.Supplier) StreamedHttpResponse(io.micronaut.http.netty.stream.StreamedHttpResponse) NettyThreadFactory(io.micronaut.http.netty.channel.NettyThreadFactory) NettyHttpRequestBuilder(io.micronaut.http.netty.NettyHttpRequestBuilder) DefaultHttpClientConfiguration(io.micronaut.http.client.DefaultHttpClientConfiguration) NettyHttpHeaders(io.micronaut.http.netty.NettyHttpHeaders) Nullable(io.micronaut.core.annotation.Nullable) ByteBuffer(io.micronaut.core.io.buffer.ByteBuffer) JsonStreamMediaTypeCodec(io.micronaut.json.codec.JsonStreamMediaTypeCodec) Argument(io.micronaut.core.type.Argument) MultipartException(io.micronaut.http.multipart.MultipartException) ConversionService(io.micronaut.core.convert.ConversionService) ServerRequestContext(io.micronaut.http.context.ServerRequestContext) NOOP(io.micronaut.scheduling.instrument.InvocationInstrumenter.NOOP) MediaTypeCodecRegistry(io.micronaut.http.codec.MediaTypeCodecRegistry) Attribute(io.netty.util.Attribute) JsonNode(io.micronaut.json.tree.JsonNode) SslContext(io.netty.handler.ssl.SslContext) FileUpload(io.netty.handler.codec.http.multipart.FileUpload) Publisher(org.reactivestreams.Publisher) HttpClientConfiguration(io.micronaut.http.client.HttpClientConfiguration) Mono(reactor.core.publisher.Mono) IOException(java.io.IOException) NettyHttpResponseBuilder(io.micronaut.http.netty.NettyHttpResponseBuilder) File(java.io.File) AbstractNettyHttpRequest(io.micronaut.http.netty.AbstractNettyHttpRequest) SimpleChannelPool(io.netty.channel.pool.SimpleChannelPool) Bootstrap(io.netty.bootstrap.Bootstrap) Flux(reactor.core.publisher.Flux) WebSocketClientCompressionHandler(io.netty.handler.codec.http.websocketx.extensions.compression.WebSocketClientCompressionHandler) DEFAULT_SHUTDOWN_TIMEOUT_MILLISECONDS(io.micronaut.http.client.HttpClientConfiguration.DEFAULT_SHUTDOWN_TIMEOUT_MILLISECONDS) ChannelPipelineCustomizer(io.micronaut.http.netty.channel.ChannelPipelineCustomizer) ChannelPool(io.netty.channel.pool.ChannelPool) Instrumentation(io.micronaut.scheduling.instrument.Instrumentation) WebSocketClient(io.micronaut.websocket.WebSocketClient) Future(io.netty.util.concurrent.Future) DefaultThreadFactory(io.netty.util.concurrent.DefaultThreadFactory) ChannelPipelineListener(io.micronaut.http.netty.channel.ChannelPipelineListener) DefaultStreamedHttpResponse(io.micronaut.http.netty.stream.DefaultStreamedHttpResponse) SocketAddress(java.net.SocketAddress) HttpStreamsClientHandler(io.micronaut.http.netty.stream.HttpStreamsClientHandler) UriTemplate(io.micronaut.http.uri.UriTemplate) io.netty.handler.codec.http2(io.netty.handler.codec.http2) ByteBufAllocator(io.netty.buffer.ByteBufAllocator) URISyntaxException(java.net.URISyntaxException) DEFAULT_SHUTDOWN_QUIET_PERIOD_MILLISECONDS(io.micronaut.http.client.HttpClientConfiguration.DEFAULT_SHUTDOWN_QUIET_PERIOD_MILLISECONDS) ArrayUtils(io.micronaut.core.util.ArrayUtils) LoggerFactory(org.slf4j.LoggerFactory) TimeoutException(java.util.concurrent.TimeoutException) InvocationInstrumenter(io.micronaut.scheduling.instrument.InvocationInstrumenter) InvocationInstrumenterFactory(io.micronaut.scheduling.instrument.InvocationInstrumenterFactory) ClientFilterChain(io.micronaut.http.filter.ClientFilterChain) DefaultHttp2Content(io.micronaut.http.netty.stream.DefaultHttp2Content) Event(io.micronaut.http.sse.Event) Unpooled(io.netty.buffer.Unpooled) FixedChannelPool(io.netty.channel.pool.FixedChannelPool) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) MediaType(io.micronaut.http.MediaType) ReferenceCounted(io.micronaut.core.io.buffer.ReferenceCounted) JsonMapper(io.micronaut.json.JsonMapper) ApplicationProtocolNegotiationHandler(io.netty.handler.ssl.ApplicationProtocolNegotiationHandler) HttpResponse(io.micronaut.http.HttpResponse) ApplicationConfiguration(io.micronaut.runtime.ApplicationConfiguration) URI(java.net.URI) HttpClient(io.micronaut.http.client.HttpClient) HttpDataFactory(io.netty.handler.codec.http.multipart.HttpDataFactory) ThreadFactory(java.util.concurrent.ThreadFactory) RequestBinderRegistry(io.micronaut.http.bind.RequestBinderRegistry) MultipartBody(io.micronaut.http.client.multipart.MultipartBody) JsonMediaTypeCodec(io.micronaut.json.codec.JsonMediaTypeCodec) CodecException(io.micronaut.http.codec.CodecException) ReadTimeoutHandler(io.netty.handler.timeout.ReadTimeoutHandler) MutableHttpResponse(io.micronaut.http.MutableHttpResponse) MutableHttpHeaders(io.micronaut.http.MutableHttpHeaders) TooLongFrameException(io.netty.handler.codec.TooLongFrameException) InterfaceHttpData(io.netty.handler.codec.http.multipart.InterfaceHttpData) InetSocketAddress(java.net.InetSocketAddress) Collectors(java.util.stream.Collectors) NioEventLoopGroup(io.netty.channel.nio.NioEventLoopGroup) StringUtils(io.micronaut.core.util.StringUtils) CompositeByteBuf(io.netty.buffer.CompositeByteBuf) HttpClientFilter(io.micronaut.http.filter.HttpClientFilter) StreamedHttpRequest(io.micronaut.http.netty.stream.StreamedHttpRequest) io.netty.handler.codec.http(io.netty.handler.codec.http) StreamingHttpClient(io.micronaut.http.client.StreamingHttpClient) WebSocketSessionException(io.micronaut.websocket.exceptions.WebSocketSessionException) Type(java.net.Proxy.Type) Socks5ProxyHandler(io.netty.handler.proxy.Socks5ProxyHandler) ClientWebSocket(io.micronaut.websocket.annotation.ClientWebSocket) NioSocketChannel(io.netty.channel.socket.nio.NioSocketChannel) ClientServerContextFilter(io.micronaut.http.client.filters.ClientServerContextFilter) LoggingHandler(io.netty.handler.logging.LoggingHandler) UriBuilder(io.micronaut.http.uri.UriBuilder) HttpPostRequestEncoder(io.netty.handler.codec.http.multipart.HttpPostRequestEncoder) FluxSink(reactor.core.publisher.FluxSink) DefaultHttpDataFactory(io.netty.handler.codec.http.multipart.DefaultHttpDataFactory) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) HttpClientFilterResolver(io.micronaut.http.filter.HttpClientFilterResolver) Scheduler(reactor.core.scheduler.Scheduler) AtomicReference(java.util.concurrent.atomic.AtomicReference) Function(java.util.function.Function) WebSocketBeanRegistry(io.micronaut.websocket.context.WebSocketBeanRegistry) BeanMap(io.micronaut.core.beans.BeanMap) NoopAddressResolverGroup(io.netty.resolver.NoopAddressResolverGroup) WebSocketVersion(io.netty.handler.codec.http.websocketx.WebSocketVersion) BlockingHttpClient(io.micronaut.http.client.BlockingHttpClient) ByteBuf(io.netty.buffer.ByteBuf) Charset(java.nio.charset.Charset) HttpClientException(io.micronaut.http.client.exceptions.HttpClientException) io.netty.channel(io.netty.channel) Schedulers(reactor.core.scheduler.Schedulers) HttpResponseWrapper(io.micronaut.http.HttpResponseWrapper) Subscriber(org.reactivestreams.Subscriber) MediaTypeCodec(io.micronaut.http.codec.MediaTypeCodec) Logger(org.slf4j.Logger) DefaultRequestBinderRegistry(io.micronaut.http.bind.DefaultRequestBinderRegistry) MalformedURLException(java.net.MalformedURLException) AnnotationMetadataResolver(io.micronaut.core.annotation.AnnotationMetadataResolver) GenericFutureListener(io.netty.util.concurrent.GenericFutureListener) ApplicationProtocolNames(io.netty.handler.ssl.ApplicationProtocolNames) DefaultHttpClientFilterResolver(io.micronaut.http.client.filter.DefaultHttpClientFilterResolver) Http2Content(io.micronaut.http.netty.stream.Http2Content) TimeUnit(java.util.concurrent.TimeUnit) Consumer(java.util.function.Consumer) NonNull(io.micronaut.core.annotation.NonNull) IdleStateHandler(io.netty.handler.timeout.IdleStateHandler) ByteBufUtil(io.netty.buffer.ByteBufUtil) EmptyByteBuf(io.netty.buffer.EmptyByteBuf) CollectionUtils(io.micronaut.core.util.CollectionUtils) Subscription(org.reactivestreams.Subscription) Closeable(java.io.Closeable) AnnotationMetadata(io.micronaut.core.annotation.AnnotationMetadata) AbstractChannelPoolMap(io.netty.channel.pool.AbstractChannelPoolMap) JsonSubscriber(io.micronaut.http.netty.stream.JsonSubscriber) InputStream(java.io.InputStream) StreamedHttpResponse(io.micronaut.http.netty.stream.StreamedHttpResponse) DefaultStreamedHttpResponse(io.micronaut.http.netty.stream.DefaultStreamedHttpResponse) SocketChannel(io.netty.channel.socket.SocketChannel) NioSocketChannel(io.netty.channel.socket.nio.NioSocketChannel) Flux(reactor.core.publisher.Flux) JsonNode(io.micronaut.json.tree.JsonNode) CompositeByteBuf(io.netty.buffer.CompositeByteBuf) ByteBuf(io.netty.buffer.ByteBuf) EmptyByteBuf(io.netty.buffer.EmptyByteBuf) MapperMediaTypeCodec(io.micronaut.json.codec.MapperMediaTypeCodec) io.netty.handler.codec.http(io.netty.handler.codec.http)

Aggregations

JsonNode (io.micronaut.json.tree.JsonNode)10 IOException (java.io.IOException)4 ConversionErrorException (io.micronaut.core.convert.exceptions.ConversionErrorException)3 Internal (io.micronaut.core.annotation.Internal)2 Publishers (io.micronaut.core.async.publisher.Publishers)2 Argument (io.micronaut.core.type.Argument)2 NetworkInterface (io.micronaut.discovery.cloud.NetworkInterface)2 MediaType (io.micronaut.http.MediaType)2 JsonMapper (io.micronaut.json.JsonMapper)2 ByteBuf (io.netty.buffer.ByteBuf)2 ByteBufUtil (io.netty.buffer.ByteBufUtil)2 ReferenceCountUtil (io.netty.util.ReferenceCountUtil)2 ArrayList (java.util.ArrayList)2 AtomicReference (java.util.concurrent.atomic.AtomicReference)2 Processor (org.reactivestreams.Processor)2 Subscriber (org.reactivestreams.Subscriber)2 Subscription (org.reactivestreams.Subscription)2 NettyByteBufferFactory (io.micronaut.buffer.netty.NettyByteBufferFactory)1 AnnotationMetadata (io.micronaut.core.annotation.AnnotationMetadata)1 AnnotationMetadataResolver (io.micronaut.core.annotation.AnnotationMetadataResolver)1