--- a/src/java.net.http/share/classes/jdk/internal/net/http/HttpRequestImpl.java Mon May 28 17:22:37 2018 +0100
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/HttpRequestImpl.java Fri May 25 16:13:11 2018 +0100
@@ -41,7 +41,7 @@
import java.net.http.HttpClient;
import java.net.http.HttpHeaders;
import java.net.http.HttpRequest;
-import jdk.internal.net.http.common.HttpHeadersImpl;
+import jdk.internal.net.http.common.HttpHeadersBuilder;
import jdk.internal.net.http.common.Utils;
import jdk.internal.net.http.websocket.WebSocketRequest;
@@ -50,7 +50,7 @@
class HttpRequestImpl extends HttpRequest implements WebSocketRequest {
private final HttpHeaders userHeaders;
- private final HttpHeadersImpl systemHeaders;
+ private final HttpHeadersBuilder systemHeadersBuilder;
private final URI uri;
private volatile Proxy proxy; // ensure safe publishing
private final InetSocketAddress authority; // only used when URI not specified
@@ -78,8 +78,8 @@
public HttpRequestImpl(HttpRequestBuilderImpl builder) {
String method = builder.method();
this.method = method == null ? "GET" : method;
- this.userHeaders = ImmutableHeaders.of(builder.headers().map(), ALLOWED_HEADERS);
- this.systemHeaders = new HttpHeadersImpl();
+ this.userHeaders = HttpHeaders.of(builder.headersBuilder().map(), ALLOWED_HEADERS);
+ this.systemHeadersBuilder = new HttpHeadersBuilder();
this.uri = builder.uri();
assert uri != null;
this.proxy = null;
@@ -106,21 +106,21 @@
"uri must be non null");
Duration timeout = request.timeout().orElse(null);
this.method = method == null ? "GET" : method;
- this.userHeaders = ImmutableHeaders.validate(request.headers());
+ this.userHeaders = HttpHeaders.of(request.headers().map(), Utils.VALIDATE_USER_HEADER);
if (request instanceof HttpRequestImpl) {
// all cases exception WebSocket should have a new system headers
this.isWebSocket = ((HttpRequestImpl) request).isWebSocket;
if (isWebSocket) {
- this.systemHeaders = ((HttpRequestImpl) request).systemHeaders;
+ this.systemHeadersBuilder = ((HttpRequestImpl)request).systemHeadersBuilder;
} else {
- this.systemHeaders = new HttpHeadersImpl();
+ this.systemHeadersBuilder = new HttpHeadersBuilder();
}
} else {
HttpRequestBuilderImpl.checkURI(requestURI);
checkTimeout(timeout);
- this.systemHeaders = new HttpHeadersImpl();
+ this.systemHeadersBuilder = new HttpHeadersBuilder();
}
- this.systemHeaders.setHeader("User-Agent", USER_AGENT);
+ this.systemHeadersBuilder.setHeader("User-Agent", USER_AGENT);
this.uri = requestURI;
if (isWebSocket) {
// WebSocket determines and sets the proxy itself
@@ -169,8 +169,8 @@
this.method = method == null? "GET" : method;
this.userHeaders = other.userHeaders;
this.isWebSocket = other.isWebSocket;
- this.systemHeaders = new HttpHeadersImpl();
- this.systemHeaders.setHeader("User-Agent", USER_AGENT);
+ this.systemHeadersBuilder = new HttpHeadersBuilder();
+ this.systemHeadersBuilder.setHeader("User-Agent", USER_AGENT);
this.uri = uri;
this.proxy = other.proxy;
this.expectContinue = other.expectContinue;
@@ -189,8 +189,8 @@
// to the connection pool (we might need to revisit this constructor later)
assert "CONNECT".equalsIgnoreCase(method);
this.method = method;
- this.systemHeaders = new HttpHeadersImpl();
- this.userHeaders = ImmutableHeaders.of(headers);
+ this.systemHeadersBuilder = new HttpHeadersBuilder();
+ this.userHeaders = headers;
this.uri = URI.create("socket://" + authority.getHostString() + ":"
+ Integer.toString(authority.getPort()) + "/");
this.proxy = null;
@@ -218,14 +218,14 @@
* parent.
*/
static HttpRequestImpl createPushRequest(HttpRequestImpl parent,
- HttpHeadersImpl headers)
+ HttpHeaders headers)
throws IOException
{
return new HttpRequestImpl(parent, headers);
}
// only used for push requests
- private HttpRequestImpl(HttpRequestImpl parent, HttpHeadersImpl headers)
+ private HttpRequestImpl(HttpRequestImpl parent, HttpHeaders headers)
throws IOException
{
this.method = headers.firstValue(":method")
@@ -240,8 +240,8 @@
sb.append(scheme).append("://").append(authority).append(path);
this.uri = URI.create(sb.toString());
this.proxy = null;
- this.userHeaders = ImmutableHeaders.of(headers.map(), ALLOWED_HEADERS);
- this.systemHeaders = parent.systemHeaders;
+ this.userHeaders = HttpHeaders.of(headers.map(), ALLOWED_HEADERS);
+ this.systemHeadersBuilder = parent.systemHeadersBuilder;
this.expectContinue = parent.expectContinue;
this.secure = parent.secure;
this.requestPublisher = parent.requestPublisher;
@@ -264,9 +264,9 @@
InetSocketAddress authority() { return authority; }
void setH2Upgrade(Http2ClientImpl h2client) {
- systemHeaders.setHeader("Connection", "Upgrade, HTTP2-Settings");
- systemHeaders.setHeader("Upgrade", "h2c");
- systemHeaders.setHeader("HTTP2-Settings", h2client.getSettingsString());
+ systemHeadersBuilder.setHeader("Connection", "Upgrade, HTTP2-Settings");
+ systemHeadersBuilder.setHeader("Upgrade", "h2c");
+ systemHeadersBuilder.setHeader("HTTP2-Settings", h2client.getSettingsString());
}
@Override
@@ -332,18 +332,18 @@
HttpHeaders getUserHeaders() { return userHeaders; }
- HttpHeadersImpl getSystemHeaders() { return systemHeaders; }
+ HttpHeadersBuilder getSystemHeadersBuilder() { return systemHeadersBuilder; }
@Override
public Optional<HttpClient.Version> version() { return version; }
void addSystemHeader(String name, String value) {
- systemHeaders.addHeader(name, value);
+ systemHeadersBuilder.addHeader(name, value);
}
@Override
public void setSystemHeader(String name, String value) {
- systemHeaders.setHeader(name, value);
+ systemHeadersBuilder.setHeader(name, value);
}
InetSocketAddress getAddress() {