|
17 | 17 |
|
18 | 18 | package org.openqa.selenium.remote.internal;
|
19 | 19 |
|
20 |
| -import static java.util.concurrent.TimeUnit.MINUTES; |
| 20 | +import static java.util.concurrent.TimeUnit.MILLISECONDS; |
21 | 21 |
|
22 | 22 | import com.google.common.base.Strings;
|
23 | 23 |
|
|
35 | 35 |
|
36 | 36 | import java.io.IOException;
|
37 | 37 | import java.net.URL;
|
| 38 | +import java.time.Duration; |
| 39 | +import java.util.Objects; |
38 | 40 | import java.util.Optional;
|
39 |
| -import java.util.concurrent.TimeUnit; |
40 | 41 |
|
41 | 42 | public class OkHttpClient implements HttpClient {
|
42 | 43 |
|
@@ -118,15 +119,30 @@ public void close() {
|
118 | 119 |
|
119 | 120 | public static class Factory implements HttpClient.Factory {
|
120 | 121 |
|
121 |
| - private ConnectionPool pool = new ConnectionPool(); |
| 122 | + private final ConnectionPool pool = new ConnectionPool(); |
| 123 | + private final long connectionTimeout; |
| 124 | + private final long readTimeout; |
| 125 | + |
| 126 | + public Factory() { |
| 127 | + this(Duration.ofMinutes(2), Duration.ofHours(3)); |
| 128 | + } |
| 129 | + |
| 130 | + public Factory(Duration connectionTimeout, Duration readTimeout) { |
| 131 | + Objects.requireNonNull(connectionTimeout, "Connection timeout cannot be null"); |
| 132 | + Objects.requireNonNull(readTimeout, "Read timeout cannot be null"); |
| 133 | + |
| 134 | + this.connectionTimeout = connectionTimeout.toMillis(); |
| 135 | + this.readTimeout = readTimeout.toMillis(); |
| 136 | + } |
122 | 137 |
|
123 | 138 | @Override
|
124 | 139 | public HttpClient createClient(URL url) {
|
125 | 140 | okhttp3.OkHttpClient.Builder client = new okhttp3.OkHttpClient.Builder()
|
126 | 141 | .connectionPool(pool)
|
127 | 142 | .followRedirects(true)
|
128 | 143 | .followSslRedirects(true)
|
129 |
| - .readTimeout(0, MINUTES); |
| 144 | + .readTimeout(readTimeout, MILLISECONDS) |
| 145 | + .connectTimeout(connectionTimeout, MILLISECONDS); |
130 | 146 |
|
131 | 147 | String info = url.getUserInfo();
|
132 | 148 | if (!Strings.isNullOrEmpty(info)) {
|
|
0 commit comments