Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove unused Netty attributes #10185

Merged
merged 17 commits into from
Dec 4, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -192,10 +192,6 @@ public NettyHttpRequest(io.netty.handler.codec.http.HttpRequest nettyRequest,
Objects.requireNonNull(nettyRequest, "Netty request cannot be null");
Objects.requireNonNull(ctx, "ChannelHandlerContext cannot be null");
Objects.requireNonNull(environment, "Environment cannot be null");
Channel channel = ctx.channel();
if (channel != null) {
channel.attr(ServerAttributeKeys.REQUEST_KEY).set(this);
}
this.serverConfiguration = serverConfiguration;
this.channelHandlerContext = ctx;
this.headers = new NettyHttpHeaders(nettyRequest.headers(), conversionService);
Expand Down Expand Up @@ -671,19 +667,6 @@ public Optional<MediaType> getContentType() {
}
}

/**
* Remove the current request from the context.
*
* @param ctx The context
* @return The request or null if it is not present
*/
static NettyHttpRequest remove(ChannelHandlerContext ctx) {
Channel channel = ctx.channel();

io.netty.util.Attribute<NettyHttpRequest> attr = channel.attr(ServerAttributeKeys.REQUEST_KEY);
return attr.getAndSet(null);
}

private BodyConvertor newBodyConvertor() {
return new BodyConvertor() {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,12 @@

import io.micronaut.core.annotation.Internal;
import io.micronaut.core.convert.ConversionService;
import io.micronaut.http.HttpResponse;
import io.micronaut.http.HttpResponseFactory;
import io.micronaut.http.HttpStatus;
import io.micronaut.http.MutableHttpResponse;
import io.micronaut.http.netty.NettyMutableHttpResponse;
import io.netty.handler.codec.http.HttpResponseStatus;
import io.netty.handler.codec.http.HttpVersion;
import io.netty.util.Attribute;

import java.util.Optional;

/**
* Implementation of {@link HttpResponseFactory} for Netty.
Expand All @@ -48,15 +44,14 @@ public <T> MutableHttpResponse<T> status(HttpStatus status, T body) {
}

@Override
public MutableHttpResponse status(HttpStatus status, String reason) {
public <T> MutableHttpResponse<T> status(HttpStatus status, String reason) {
HttpResponseStatus nettyStatus;
if (reason == null) {
nettyStatus = HttpResponseStatus.valueOf(status.getCode());
} else {
nettyStatus = HttpResponseStatus.valueOf(status.getCode(), reason);
}

return new NettyMutableHttpResponse(HttpVersion.HTTP_1_1, nettyStatus, ConversionService.SHARED);
return new NettyMutableHttpResponse<>(HttpVersion.HTTP_1_1, nettyStatus, ConversionService.SHARED);
}

@Override
Expand All @@ -67,61 +62,7 @@ public <T> MutableHttpResponse<T> status(int status, String reason) {
} else {
nettyStatus = HttpResponseStatus.valueOf(status, reason);
}

return new NettyMutableHttpResponse(HttpVersion.HTTP_1_1, nettyStatus, ConversionService.SHARED);
return new NettyMutableHttpResponse<>(HttpVersion.HTTP_1_1, nettyStatus, ConversionService.SHARED);
}

/**
* Lookup the response from the context.
*
* @param request The context
* @return The {@link NettyMutableHttpResponse}
*/
@Internal
public static NettyMutableHttpResponse getOrCreate(NettyHttpRequest<?> request) {
return getOr(request, io.micronaut.http.HttpResponse.ok());
}

/**
* Lookup the response from the context.
*
* @param request The context
* @param alternative The alternative HttpResponse
* @return The {@link NettyMutableHttpResponse}
*/
@Internal
public static NettyMutableHttpResponse getOr(NettyHttpRequest<?> request, io.micronaut.http.HttpResponse<?> alternative) {
Attribute<NettyMutableHttpResponse> attr = request.attr(ServerAttributeKeys.RESPONSE_KEY);
NettyMutableHttpResponse nettyHttpResponse = attr.get();
if (nettyHttpResponse == null) {
nettyHttpResponse = (NettyMutableHttpResponse) alternative;
attr.set(nettyHttpResponse);
}
return nettyHttpResponse;
}

/**
* Lookup the response from the request.
*
* @param request The request
* @return The {@link NettyMutableHttpResponse}
*/
@Internal
public static Optional<NettyMutableHttpResponse> get(NettyHttpRequest<?> request) {
NettyMutableHttpResponse nettyHttpResponse = request.attr(ServerAttributeKeys.RESPONSE_KEY).get();
return Optional.ofNullable(nettyHttpResponse);
}

/**
* Lookup the response from the request.
*
* @param request The request
* @param response The Http Response
* @return The {@link NettyMutableHttpResponse}
*/
@Internal
public static Optional<NettyMutableHttpResponse> set(NettyHttpRequest<?> request, HttpResponse<?> response) {
request.attr(ServerAttributeKeys.RESPONSE_KEY).set((NettyMutableHttpResponse) response);
return Optional.ofNullable((NettyMutableHttpResponse) response);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
import io.micronaut.http.netty.NettyMutableHttpResponse;
import io.micronaut.http.netty.body.NettyBodyWriter;
import io.micronaut.http.netty.body.NettyWriteContext;
import io.micronaut.http.netty.channel.ChannelPipelineCustomizer;
import io.micronaut.http.netty.stream.JsonSubscriber;
import io.micronaut.http.netty.stream.StreamedHttpRequest;
import io.micronaut.http.netty.stream.StreamedHttpResponse;
Expand All @@ -69,6 +70,7 @@
import io.netty.handler.codec.http.HttpContent;
import io.netty.handler.codec.http.HttpResponseStatus;
import io.netty.handler.codec.http.HttpVersion;
import io.netty.util.AttributeKey;
import org.reactivestreams.Processor;
import org.reactivestreams.Publisher;
import org.reactivestreams.Subscriber;
Expand Down Expand Up @@ -215,6 +217,11 @@ public void accept(ChannelHandlerContext ctx, io.netty.handler.codec.http.HttpRe
}
return;
}
if (ctx.pipeline().get(ChannelPipelineCustomizer.HANDLER_ACCESS_LOGGER) != null) {
// Micronaut Session needs this to extract values from the Micronaut Http Request for logging
AttributeKey<NettyHttpRequest> KEY = AttributeKey.valueOf(NettyHttpRequest.class.getSimpleName());
ctx.channel().attr(KEY).set(mnRequest);
}
outboundAccess.attachment(mnRequest);
try (PropagatedContext.Scope ignore = PropagatedContext.getOrEmpty().plus(new ServerHttpRequestContext(mnRequest)).propagate()) {
new NettyRequestLifecycle(this, outboundAccess, mnRequest).handleNormal();
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -1476,6 +1476,7 @@ public void setFd(Integer fd) {
public boolean isBind() {
return bind;
}

/**
* Whether the server should bind to the socket. {@code true} by default. If set to
* {@code false}, the socket must already be bound and listening.
Expand Down
Loading