diff options
author | Bjørn Christian Seime <bjorncs@yahoo-inc.com> | 2017-04-21 13:37:41 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@yahoo-inc.com> | 2017-04-21 13:49:42 +0200 |
commit | 30cd1687c29f6159d799e859ba8c6cb4d74c381e (patch) | |
tree | 8d469acb2862c8198ecc5070a0746396ef45a6fc /jdisc_http_service/src/main | |
parent | 4077f420c5fb5f6d2dcbd42bbd6bc2bf6c40094b (diff) |
Remove some netty usage in jdisc_http_service
Diffstat (limited to 'jdisc_http_service/src/main')
-rw-r--r-- | jdisc_http_service/src/main/java/com/yahoo/jdisc/http/HttpRequest.java | 13 | ||||
-rw-r--r-- | jdisc_http_service/src/main/java/com/yahoo/jdisc/http/core/HeaderFieldsUtil.java | 67 |
2 files changed, 15 insertions, 65 deletions
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/HttpRequest.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/HttpRequest.java index ff80a8a845d..50806cc655d 100644 --- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/HttpRequest.java +++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/HttpRequest.java @@ -9,7 +9,8 @@ import com.yahoo.jdisc.handler.RequestHandler; import com.yahoo.jdisc.handler.ResponseHandler; import com.yahoo.jdisc.http.servlet.ServletOrJdiscHttpRequest; import com.yahoo.jdisc.service.CurrentContainer; -import org.jboss.netty.handler.codec.http.QueryStringDecoder; +import org.eclipse.jetty.http.HttpURI; +import org.eclipse.jetty.util.MultiMap; import java.net.InetAddress; import java.net.InetSocketAddress; @@ -84,7 +85,7 @@ public class HttpRequest extends Request implements ServletOrJdiscHttpRequest { this.method = method; this.version = version; this.remoteAddress = remoteAddress; - this.parameters.putAll(new QueryStringDecoder(uri.toString(), true).getParameters()); + this.parameters.putAll(getUriQueryParameters(uri)); if (connectedAtMillis != null) { this.connectedAt = connectedAtMillis; } else { @@ -102,7 +103,7 @@ public class HttpRequest extends Request implements ServletOrJdiscHttpRequest { this.method = method; this.version = version; this.remoteAddress = null; - this.parameters.putAll(new QueryStringDecoder(uri.toString(), true).getParameters()); + this.parameters.putAll(getUriQueryParameters(uri)); this.connectedAt = creationTime(TimeUnit.MILLISECONDS); } catch (RuntimeException e) { release(); @@ -110,6 +111,12 @@ public class HttpRequest extends Request implements ServletOrJdiscHttpRequest { } } + private static Map<String, List<String>> getUriQueryParameters(URI uri) { + MultiMap<String> queryParameters = new MultiMap<>(); + new HttpURI(uri).decodeQueryTo(queryParameters); + return queryParameters; + } + public Method getMethod() { return method; } diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/core/HeaderFieldsUtil.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/core/HeaderFieldsUtil.java index 065276962f7..710820e7259 100644 --- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/core/HeaderFieldsUtil.java +++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/core/HeaderFieldsUtil.java @@ -3,10 +3,7 @@ package com.yahoo.jdisc.http.core; import com.ning.http.client.RequestBuilder; import com.yahoo.jdisc.HeaderFields; -import org.jboss.netty.handler.codec.http.HttpChunkTrailer; -import org.jboss.netty.handler.codec.http.HttpHeaders; -import org.jboss.netty.handler.codec.http.HttpMessage; -import org.jboss.netty.handler.codec.http.HttpResponse; +import com.yahoo.jdisc.http.HttpHeaders; import java.io.ByteArrayOutputStream; import java.nio.charset.StandardCharsets; @@ -27,24 +24,12 @@ public class HeaderFieldsUtil { HttpHeaders.Names.CONTENT_LENGTH, HttpHeaders.Names.TRANSFER_ENCODING)); - public static void copyHeaders(com.yahoo.jdisc.Response src, HttpResponse dst) { - copyHeaderFields(src.headers(), newSimpleHeaders(dst)); - } - public static void copyHeaders(com.yahoo.jdisc.Request src, RequestBuilder dst) { - copyHeaderFields(src.headers(), newSimpleHeaders(dst)); - } - - public static void copyTrailers(com.yahoo.jdisc.Response src, HttpResponse dst) { - copyTrailers(src, newSimpleHeaders(dst)); - } - - public static void copyTrailers(com.yahoo.jdisc.Response src, HttpChunkTrailer dst) { - copyTrailers(src, newSimpleHeaders(dst)); + copyHeaderFields(src.headers(), dst::addHeader); } public static void copyTrailers(com.yahoo.jdisc.Request src, RequestBuilder dst) { - copyTrailers(src, newSimpleHeaders(dst)); + copyTrailers(src, dst::addHeader); } public static void copyTrailers(com.yahoo.jdisc.Request src, ByteArrayOutputStream dst) { @@ -62,17 +47,6 @@ public class HeaderFieldsUtil { } } - @SuppressWarnings("SynchronizationOnLocalVariableOrMethodParameter") - public static void copyTrailers(com.yahoo.jdisc.Response src, SimpleHeaders dst) { - if (!(src instanceof com.yahoo.jdisc.http.HttpResponse)) { - return; - } - final HeaderFields trailers = ((com.yahoo.jdisc.http.HttpResponse)src).trailers(); - synchronized (trailers) { - copyHeaderFields(trailers, dst); - } - } - private static void copyHeaderFields(HeaderFields src, SimpleHeaders dst) { for (Map.Entry<String, List<String>> entry : src.entrySet()) { String key = entry.getKey(); @@ -88,16 +62,6 @@ public class HeaderFieldsUtil { } } - private static SimpleHeaders newSimpleHeaders(final RequestBuilder dst) { - return new SimpleHeaders() { - - @Override - public void addHeader(String name, String value) { - dst.addHeader(name, value); - } - }; - } - private static SimpleHeaders newSimpleHeaders(final ByteArrayOutputStream dst) { return new SimpleHeaders() { @@ -115,28 +79,7 @@ public class HeaderFieldsUtil { }; } - private static SimpleHeaders newSimpleHeaders(final HttpMessage dst) { - return new SimpleHeaders() { - - @Override - public void addHeader(String name, String value) { - dst.addHeader(name, value); - } - }; - } - - private static SimpleHeaders newSimpleHeaders(final HttpChunkTrailer dst) { - return new SimpleHeaders() { - - @Override - public void addHeader(String name, String value) { - dst.addHeader(name, value); - } - }; - } - - private static interface SimpleHeaders { - - public void addHeader(String name, String value); + private interface SimpleHeaders { + void addHeader(String name, String value); } } |