17
17
18
18
package org .openqa .selenium .remote .http ;
19
19
20
+ import org .openqa .selenium .Credentials ;
21
+ import org .openqa .selenium .internal .Require ;
22
+
20
23
import java .io .UncheckedIOException ;
21
24
import java .net .MalformedURLException ;
22
25
import java .net .Proxy ;
25
28
import java .net .URL ;
26
29
import java .time .Duration ;
27
30
28
- import org .openqa .selenium .Credentials ;
29
- import org .openqa .selenium .internal .Require ;
30
-
31
31
public class ClientConfig {
32
32
33
- private static final Filter DEFAULT_FILTER = new AddSeleniumUserAgent ().andThen (new RetryRequest ());
33
+ private static final Filter RETRY_FILTER = new RetryRequest ();
34
+ private static final Filter SELENIUM_USER_AGENT_FILTER = new AddSeleniumUserAgent ();
35
+ private static final Filter DEFAULT_FILTERS = SELENIUM_USER_AGENT_FILTER .andThen (RETRY_FILTER );
34
36
private final URI baseUri ;
35
37
private final Duration connectionTimeout ;
36
38
private final Duration readTimeout ;
@@ -39,12 +41,12 @@ public class ClientConfig {
39
41
private final Credentials credentials ;
40
42
41
43
private ClientConfig (
42
- URI baseUri ,
43
- Duration connectionTimeout ,
44
- Duration readTimeout ,
45
- Filter filters ,
46
- Proxy proxy ,
47
- Credentials credentials ) {
44
+ URI baseUri ,
45
+ Duration connectionTimeout ,
46
+ Duration readTimeout ,
47
+ Filter filters ,
48
+ Proxy proxy ,
49
+ Credentials credentials ) {
48
50
this .baseUri = baseUri ;
49
51
this .connectionTimeout = Require .nonNegative ("Connection timeout" , connectionTimeout );
50
52
this .readTimeout = Require .nonNegative ("Read timeout" , readTimeout );
@@ -58,7 +60,7 @@ public static ClientConfig defaultConfig() {
58
60
null ,
59
61
Duration .ofSeconds (10 ),
60
62
Duration .ofMinutes (3 ),
61
- DEFAULT_FILTER ,
63
+ DEFAULT_FILTERS ,
62
64
null ,
63
65
null );
64
66
}
@@ -111,14 +113,25 @@ public Duration readTimeout() {
111
113
return readTimeout ;
112
114
}
113
115
116
+ public ClientConfig filter (Filter filter ) {
117
+ return new ClientConfig (
118
+ baseUri ,
119
+ connectionTimeout ,
120
+ readTimeout ,
121
+ Require .nonNull ("Filter" , filter ),
122
+ proxy ,
123
+ credentials );
124
+ }
125
+
114
126
public ClientConfig withFilter (Filter filter ) {
127
+ Require .nonNull ("Filter" , filter );
115
128
return new ClientConfig (
116
- baseUri ,
117
- connectionTimeout ,
118
- readTimeout ,
119
- filter == null ? DEFAULT_FILTER : filter .andThen (DEFAULT_FILTER ),
120
- proxy ,
121
- credentials );
129
+ baseUri ,
130
+ connectionTimeout ,
131
+ readTimeout ,
132
+ filter .andThen (DEFAULT_FILTERS ),
133
+ proxy ,
134
+ credentials );
122
135
}
123
136
124
137
public Filter filter () {
0 commit comments