Skip to content

Commit

Permalink
Revert "Allow for using HeaderDelegateProvider service (eclipse-ee4j#…
Browse files Browse the repository at this point in the history
…4276)"

This reverts commit 82a85a1.
  • Loading branch information
pdudits committed Nov 18, 2019
1 parent d29f416 commit faf0026
Show file tree
Hide file tree
Showing 51 changed files with 233 additions and 829 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -456,7 +456,7 @@ private static URI getProxyUri(final Object proxy) {
@Override
public ClientResponse apply(final ClientRequest clientRequest) throws ProcessingException {
final HttpUriRequest request = getUriHttpRequest(clientRequest);
final Map<String, String> clientHeadersSnapshot = writeOutBoundHeaders(clientRequest, request);
final Map<String, String> clientHeadersSnapshot = writeOutBoundHeaders(clientRequest.getHeaders(), request);

try {
final CloseableHttpResponse response;
Expand All @@ -476,8 +476,7 @@ public ClientResponse apply(final ClientRequest clientRequest) throws Processing
}

response = client.execute(getHost(request), request, context);
HeaderUtils.checkHeaderChanges(clientHeadersSnapshot, clientRequest.getHeaders(),
this.getClass().getName(), clientRequest.getConfiguration());
HeaderUtils.checkHeaderChanges(clientHeadersSnapshot, clientRequest.getHeaders(), this.getClass().getName());

final Response.StatusType status = response.getStatusLine().getReasonPhrase() == null
? Statuses.from(response.getStatusLine().getStatusCode())
Expand Down Expand Up @@ -644,10 +643,9 @@ public boolean isStreaming() {
}
}

private static Map<String, String> writeOutBoundHeaders(final ClientRequest clientRequest,
private static Map<String, String> writeOutBoundHeaders(final MultivaluedMap<String, Object> headers,
final HttpUriRequest request) {
final Map<String, String> stringHeaders =
HeaderUtils.asStringHeadersSingleValue(clientRequest.getHeaders(), clientRequest.getConfiguration());
final Map<String, String> stringHeaders = HeaderUtils.asStringHeadersSingleValue(headers);

for (final Map.Entry<String, String> e : stringHeaders.entrySet()) {
request.addHeader(e.getKey(), e.getValue());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
import javax.ws.rs.ProcessingException;
import javax.ws.rs.client.Client;
import javax.ws.rs.core.Configuration;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response;

import org.glassfish.jersey.client.ClientProperties;
Expand Down Expand Up @@ -177,7 +178,7 @@ public AsyncHttpClient getGrizzlyClient() {
@Override
public ClientResponse apply(final ClientRequest request) {
final Request connectorRequest = translate(request);
final Map<String, String> clientHeadersSnapshot = writeOutBoundHeaders(request, connectorRequest);
final Map<String, String> clientHeadersSnapshot = writeOutBoundHeaders(request.getHeaders(), connectorRequest);

final CompletableFuture<ClientResponse> responseFuture = new CompletableFuture<>();
final ByteBufferInputStream entityStream = new ByteBufferInputStream();
Expand All @@ -200,8 +201,7 @@ public STATE onHeadersReceived(HttpResponseHeaders headers) throws Exception {
}

HeaderUtils.checkHeaderChanges(clientHeadersSnapshot, request.getHeaders(),
GrizzlyConnector.this.getClass().getName(),
request.getConfiguration());
GrizzlyConnector.this.getClass().getName());

responseFuture.complete(translate(request, this.status, headers, entityStream));
return STATE.CONTINUE;
Expand Down Expand Up @@ -242,7 +242,7 @@ public void onThrowable(Throwable t) {
@Override
public Future<?> apply(final ClientRequest request, final AsyncConnectorCallback callback) {
final Request connectorRequest = translate(request);
final Map<String, String> clientHeadersSnapshot = writeOutBoundHeaders(request, connectorRequest);
final Map<String, String> clientHeadersSnapshot = writeOutBoundHeaders(request.getHeaders(), connectorRequest);
final ByteBufferInputStream entityStream = new ByteBufferInputStream();
final AtomicBoolean callbackInvoked = new AtomicBoolean(false);

Expand All @@ -264,7 +264,7 @@ public STATE onHeadersReceived(HttpResponseHeaders headers) throws Exception {
}

HeaderUtils.checkHeaderChanges(clientHeadersSnapshot, request.getHeaders(),
GrizzlyConnector.this.getClass().getName(), request.getConfiguration());
GrizzlyConnector.this.getClass().getName());
// hand-off to grizzly's application thread pool for response processing
processResponse(new Runnable() {
@Override
Expand Down Expand Up @@ -462,10 +462,9 @@ public OutputStream getOutputStream(int contentLength) throws IOException {
return baos.toByteArray();
}

private static Map<String, String> writeOutBoundHeaders(final ClientRequest clientRequest,
private static Map<String, String> writeOutBoundHeaders(final MultivaluedMap<String, Object> headers,
final com.ning.http.client.Request request) {
Map<String, String> stringHeaders =
HeaderUtils.asStringHeadersSingleValue(clientRequest.getHeaders(), clientRequest.getConfiguration());
Map<String, String> stringHeaders = HeaderUtils.asStringHeadersSingleValue(headers);

for (Map.Entry<String, String> e : stringHeaders.entrySet()) {
request.getHeaders().add(e.getKey(), e.getValue());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,6 @@ class JettyConnector implements Connector {

private final HttpClient client;
private final CookieStore cookieStore;
private final Configuration configuration;

/**
* Create the new Jetty client connector.
Expand All @@ -138,7 +137,6 @@ class JettyConnector implements Connector {
* @param config client configuration.
*/
JettyConnector(final Client jaxrsClient, final Configuration config) {
this.configuration = config;
HttpClient httpClient = null;
if (config.isRegistered(JettyHttpClientSupplier.class)) {
Optional<Object> contract = config.getInstances().stream()
Expand Down Expand Up @@ -250,7 +248,7 @@ public ClientResponse apply(final ClientRequest jerseyRequest) throws Processing
try {
final ContentResponse jettyResponse = jettyRequest.send();
HeaderUtils.checkHeaderChanges(clientHeadersSnapshot, jerseyRequest.getHeaders(),
JettyConnector.this.getClass().getName(), jerseyRequest.getConfiguration());
JettyConnector.this.getClass().getName());

final javax.ws.rs.core.Response.StatusType status = jettyResponse.getReason() == null
? Statuses.from(jettyResponse.getStatus())
Expand Down Expand Up @@ -308,8 +306,8 @@ private Request translateRequest(final ClientRequest clientRequest) {
return request;
}

private Map<String, String> writeOutBoundHeaders(final MultivaluedMap<String, Object> headers, final Request request) {
final Map<String, String> stringHeaders = HeaderUtils.asStringHeadersSingleValue(headers, configuration);
private static Map<String, String> writeOutBoundHeaders(final MultivaluedMap<String, Object> headers, final Request request) {
final Map<String, String> stringHeaders = HeaderUtils.asStringHeadersSingleValue(headers);

// remove User-agent header set by Jetty; Jersey already sets this in its request (incl. Jetty version)
request.getHeaders().remove(HttpHeader.USER_AGENT);
Expand Down Expand Up @@ -398,7 +396,7 @@ public Future<?> apply(final ClientRequest jerseyRequest, final AsyncConnectorCa
@Override
public void onHeaders(final Response jettyResponse) {
HeaderUtils.checkHeaderChanges(clientHeadersSnapshot, jerseyRequest.getHeaders(),
JettyConnector.this.getClass().getName(), jerseyRequest.getConfiguration());
JettyConnector.this.getClass().getName());

if (responseFuture.isDone()) {
if (!callbackInvoked.compareAndSet(false, true)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -338,11 +338,8 @@ public void service(final Request request, final Response response) {
URI baseUri = getBaseUri(request);
URI requestUri = getRequestUri(request);
final ContainerRequest requestContext = new ContainerRequest(baseUri,
requestUri,
request.getMethod().getMethodString(),
getSecurityContext(request),
new GrizzlyRequestPropertiesDelegate(request),
appHandler.getConfiguration());
requestUri, request.getMethod().getMethodString(),
getSecurityContext(request), new GrizzlyRequestPropertiesDelegate(request));
requestContext.setEntityStream(request.getInputStream());
for (final String headerName : request.getHeaderNames()) {
requestContext.headers(headerName, request.getHeaders(headerName));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ public void handle(final HttpExchange exchange) throws IOException {
final ResponseWriter responseWriter = new ResponseWriter(exchange);
final ContainerRequest requestContext = new ContainerRequest(baseUri, requestUri,
exchange.getRequestMethod(), getSecurityContext(exchange.getPrincipal(), isSecure),
new MapPropertiesDelegate(), appHandler.getConfiguration());
new MapPropertiesDelegate());
requestContext.setEntityStream(exchange.getRequestBody());
requestContext.getHeaders().putAll(exchange.getRequestHeaders());
requestContext.setWriter(responseWriter);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -385,9 +385,7 @@ public Integer get() {

try {
final ContainerRequest requestContext = new ContainerRequest(baseUri, requestUri, servletRequest.getMethod(),
getSecurityContext(servletRequest), new ServletPropertiesDelegate(servletRequest),
appHandler.getConfiguration()
);
getSecurityContext(servletRequest), new ServletPropertiesDelegate(servletRequest));

initContainerRequest(requestContext, servletRequest, servletResponse, responseWriter);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,8 +151,7 @@ public void handle(final String target, final Request request, final HttpServlet
requestUri,
request.getMethod(),
getSecurityContext(request),
new MapPropertiesDelegate(),
appHandler.getConfiguration());
new MapPropertiesDelegate());
requestContext.setEntityStream(request.getInputStream());
final Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
import io.netty.handler.ssl.ApplicationProtocolNames;
import io.netty.handler.ssl.ApplicationProtocolNegotiationHandler;
import io.netty.handler.stream.ChunkedWriteHandler;
import org.glassfish.jersey.server.ResourceConfig;

/**
* Choose the handler implementation based on Http protocol.
Expand All @@ -35,28 +34,26 @@ class HttpVersionChooser extends ApplicationProtocolNegotiationHandler {

private final URI baseUri;
private final NettyHttpContainer container;
private final ResourceConfig resourceConfig;

HttpVersionChooser(URI baseUri, NettyHttpContainer container, ResourceConfig resourceConfig) {
HttpVersionChooser(URI baseUri, NettyHttpContainer container) {
super(ApplicationProtocolNames.HTTP_1_1);

this.baseUri = baseUri;
this.container = container;
this.resourceConfig = resourceConfig;
}

@Override
protected void configurePipeline(ChannelHandlerContext ctx, String protocol) throws Exception {
if (ApplicationProtocolNames.HTTP_2.equals(protocol)) {
ctx.pipeline().addLast(Http2MultiplexCodecBuilder.forServer(
new JerseyHttp2ServerHandler(baseUri, container, resourceConfig)).build());
new JerseyHttp2ServerHandler(baseUri, container)).build());
return;
}

if (ApplicationProtocolNames.HTTP_1_1.equals(protocol)) {
ctx.pipeline().addLast(new HttpServerCodec(),
new ChunkedWriteHandler(),
new JerseyServerHandler(baseUri, container, resourceConfig));
new JerseyServerHandler(baseUri, container));
return;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@
import org.glassfish.jersey.internal.PropertiesDelegate;
import org.glassfish.jersey.netty.connector.internal.NettyInputStream;
import org.glassfish.jersey.server.ContainerRequest;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.server.internal.ContainerUtils;

/**
Expand All @@ -57,19 +56,16 @@ class JerseyHttp2ServerHandler extends ChannelDuplexHandler {
private final URI baseUri;
private final LinkedBlockingDeque<InputStream> isList = new LinkedBlockingDeque<>();
private final NettyHttpContainer container;
private final ResourceConfig resourceConfig;

/**
* Constructor.
*
* @param baseUri base {@link URI} of the container (includes context path, if any).
* @param container Netty container implementation.
* @param resourceConfig the application {@link ResourceConfig}
* @param baseUri base {@link URI} of the container (includes context path, if any).
* @param container Netty container implementation.
*/
JerseyHttp2ServerHandler(URI baseUri, NettyHttpContainer container, ResourceConfig resourceConfig) {
JerseyHttp2ServerHandler(URI baseUri, NettyHttpContainer container) {
this.baseUri = baseUri;
this.container = container;
this.resourceConfig = resourceConfig;
}

@Override
Expand Down Expand Up @@ -155,7 +151,7 @@ public void setProperty(String name, Object object) {
public void removeProperty(String name) {
properties.remove(name);
}
}, resourceConfig);
});

// request entity handling.
if (!http2Headers.isEndStream()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,14 @@
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.security.Principal;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.LinkedBlockingDeque;

import javax.ws.rs.core.SecurityContext;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufInputStream;
import io.netty.channel.ChannelHandlerContext;
Expand All @@ -40,8 +43,8 @@
import io.netty.util.concurrent.GenericFutureListener;
import org.glassfish.jersey.internal.PropertiesDelegate;
import org.glassfish.jersey.netty.connector.internal.NettyInputStream;
import org.glassfish.jersey.netty.httpserver.NettySecurityContext;
import org.glassfish.jersey.server.ContainerRequest;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.server.internal.ContainerUtils;

/**
Expand All @@ -55,19 +58,16 @@ class JerseyServerHandler extends ChannelInboundHandlerAdapter {
private final URI baseUri;
private final LinkedBlockingDeque<InputStream> isList = new LinkedBlockingDeque<>();
private final NettyHttpContainer container;
private final ResourceConfig resourceConfig;

/**
* Constructor.
*
* @param baseUri base {@link URI} of the container (includes context path, if any).
* @param container Netty container implementation.
* @param resourceConfig the application {@link ResourceConfig}
*/
public JerseyServerHandler(URI baseUri, NettyHttpContainer container, ResourceConfig resourceConfig) {
public JerseyServerHandler(URI baseUri, NettyHttpContainer container) {
this.baseUri = baseUri;
this.container = container;
this.resourceConfig = resourceConfig;
}

@Override
Expand Down Expand Up @@ -146,7 +146,7 @@ public void setProperty(String name, Object object) {
public void removeProperty(String name) {
properties.remove(name);
}
}, resourceConfig);
});

// request entity handling.
if ((req.headers().contains(HttpHeaderNames.CONTENT_LENGTH) && HttpUtil.getContentLength(req) > 0)
Expand Down
Loading

0 comments on commit faf0026

Please sign in to comment.