src/jdk.incubator.httpclient/share/classes/jdk/incubator/http/internal/websocket/BuilderImpl.java
branchhttp-client-branch
changeset 55821 fa0fc03c0853
parent 55764 34d7cc00f87a
child 55824 b922df193260
equal deleted inserted replaced
55820:76d033c9908f 55821:fa0fc03c0853
    29 import jdk.incubator.http.WebSocket;
    29 import jdk.incubator.http.WebSocket;
    30 import jdk.incubator.http.WebSocket.Builder;
    30 import jdk.incubator.http.WebSocket.Builder;
    31 import jdk.incubator.http.WebSocket.Listener;
    31 import jdk.incubator.http.WebSocket.Listener;
    32 import jdk.incubator.http.internal.common.Pair;
    32 import jdk.incubator.http.internal.common.Pair;
    33 
    33 
       
    34 import java.net.ProxySelector;
    34 import java.net.URI;
    35 import java.net.URI;
    35 import java.time.Duration;
    36 import java.time.Duration;
    36 import java.util.Collection;
    37 import java.util.Collection;
    37 import java.util.LinkedList;
    38 import java.util.LinkedList;
    38 import java.util.List;
    39 import java.util.List;
       
    40 import java.util.Optional;
    39 import java.util.concurrent.CompletableFuture;
    41 import java.util.concurrent.CompletableFuture;
    40 
    42 
    41 import static java.lang.String.format;
    43 import static java.lang.String.format;
    42 import static java.util.Objects.requireNonNull;
    44 import static java.util.Objects.requireNonNull;
    43 import static jdk.incubator.http.internal.common.Pair.pair;
    45 import static jdk.incubator.http.internal.common.Pair.pair;
    47     private final HttpClient client;
    49     private final HttpClient client;
    48     private final URI uri;
    50     private final URI uri;
    49     private final Listener listener;
    51     private final Listener listener;
    50     private final Collection<Pair<String, String>> headers = new LinkedList<>();
    52     private final Collection<Pair<String, String>> headers = new LinkedList<>();
    51     private final Collection<String> subprotocols = new LinkedList<>();
    53     private final Collection<String> subprotocols = new LinkedList<>();
       
    54     private final Optional<ProxySelector> proxySelector;
    52     private Duration timeout;
    55     private Duration timeout;
    53 
    56 
    54     public BuilderImpl(HttpClient client, URI uri, Listener listener) {
    57     public BuilderImpl(HttpClient client, URI uri, Listener listener, ProxySelector proxySelector) {
    55         this.client = requireNonNull(client, "client");
    58         this.client = requireNonNull(client, "client");
    56         this.uri = checkURI(requireNonNull(uri, "uri"));
    59         this.uri = checkURI(requireNonNull(uri, "uri"));
    57         this.listener = requireNonNull(listener, "listener");
    60         this.listener = requireNonNull(listener, "listener");
       
    61         this.proxySelector = Optional.ofNullable(proxySelector);
       
    62         // if the proxy selector was supplied by the user, it should be present
       
    63         // on the client and should be the same than what we get as argument.
       
    64         assert !client.proxy().isPresent() || client.proxy().get() == proxySelector;
    58     }
    65     }
    59 
    66 
    60     private static IllegalArgumentException newIAE(String message, Object... args) {
    67     private static IllegalArgumentException newIAE(String message, Object... args) {
    61         return new IllegalArgumentException(format(message, args));
    68         return new IllegalArgumentException(format(message, args));
    62     }
    69     }
   121     Collection<Pair<String, String>> getHeaders() { return headers; }
   128     Collection<Pair<String, String>> getHeaders() { return headers; }
   122 
   129 
   123     Collection<String> getSubprotocols() { return subprotocols; }
   130     Collection<String> getSubprotocols() { return subprotocols; }
   124 
   131 
   125     Duration getConnectTimeout() { return timeout; }
   132     Duration getConnectTimeout() { return timeout; }
       
   133 
       
   134     Optional<ProxySelector> proxySelector() { return proxySelector; }
   126 }
   135 }