summaryrefslogtreecommitdiffstats
path: root/jdisc_http_service/src/main
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@yahoo-inc.com>2017-04-21 13:37:41 +0200
committerBjørn Christian Seime <bjorncs@yahoo-inc.com>2017-04-21 13:49:42 +0200
commit30cd1687c29f6159d799e859ba8c6cb4d74c381e (patch)
tree8d469acb2862c8198ecc5070a0746396ef45a6fc /jdisc_http_service/src/main
parent4077f420c5fb5f6d2dcbd42bbd6bc2bf6c40094b (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.java13
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/core/HeaderFieldsUtil.java67
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);
}
}