Skip to content

Commit cf215de

Browse files
authored
Default ClientOptions.timeoutOptions to TimeoutOptions.enabled() (#2927)
* Default ClientOptions.timeoutOptions to TimeoutOptions.enabled() * Update ConnectionFailureIntegrationTests * Update ClientOptionsIntegrationTests, RedisClusterSetupTest, AtMostOneceTest * Update AtLeastOnceTest
1 parent bc84058 commit cf215de

File tree

6 files changed

+48
-23
lines changed

6 files changed

+48
-23
lines changed

src/main/java/io/lettuce/core/ClientOptions.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public class ClientOptions implements Serializable {
6767

6868
public static final boolean DEFAULT_SUSPEND_RECONNECT_PROTO_FAIL = false;
6969

70-
public static final TimeoutOptions DEFAULT_TIMEOUT_OPTIONS = TimeoutOptions.create();
70+
public static final TimeoutOptions DEFAULT_TIMEOUT_OPTIONS = TimeoutOptions.enabled();
7171

7272
private final boolean autoReconnect;
7373

src/test/java/io/lettuce/core/ClientOptionsIntegrationTests.java

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,8 @@ void variousClientOptions() {
9292
@Test
9393
void requestQueueSize() {
9494

95-
client.setOptions(ClientOptions.builder().requestQueueSize(10).build());
95+
client.setOptions(ClientOptions.builder().requestQueueSize(10)
96+
.timeoutOptions(TimeoutOptions.builder().timeoutCommands(false).build()).build());
9697

9798
StatefulRedisConnection<String, String> connection = client.connect();
9899
getConnectionWatchdog(connection).setListenOnChannelInactive(false);
@@ -115,7 +116,8 @@ void requestQueueSize() {
115116
@Test
116117
void requestQueueSizeAppliedForReconnect() {
117118

118-
client.setOptions(ClientOptions.builder().requestQueueSize(10).build());
119+
client.setOptions(ClientOptions.builder().requestQueueSize(10)
120+
.timeoutOptions(TimeoutOptions.builder().timeoutCommands(false).build()).build());
119121

120122
RedisAsyncCommands<String, String> connection = client.connect().async();
121123
testHitRequestQueueLimit(connection);
@@ -127,7 +129,7 @@ void testHitRequestQueueLimitReconnectWithAuthCommand() {
127129
WithPassword.run(client, () -> {
128130

129131
client.setOptions(ClientOptions.builder().protocolVersion(ProtocolVersion.RESP2).pingBeforeActivateConnection(false)
130-
.requestQueueSize(10).build());
132+
.requestQueueSize(10).timeoutOptions(TimeoutOptions.builder().timeoutCommands(false).build()).build());
131133

132134
RedisAsyncCommands<String, String> connection = client.connect().async();
133135
connection.auth(passwd);
@@ -142,7 +144,7 @@ void testHitRequestQueueLimitReconnectWithAuthUsernamePasswordCommand() {
142144
WithPassword.run(client, () -> {
143145

144146
client.setOptions(ClientOptions.builder().protocolVersion(ProtocolVersion.RESP2).pingBeforeActivateConnection(false)
145-
.requestQueueSize(10).build());
147+
.requestQueueSize(10).timeoutOptions(TimeoutOptions.builder().timeoutCommands(false).build()).build());
146148

147149
RedisAsyncCommands<String, String> connection = client.connect().async();
148150
connection.auth(username, passwd);
@@ -154,7 +156,9 @@ void testHitRequestQueueLimitReconnectWithAuthUsernamePasswordCommand() {
154156
void testHitRequestQueueLimitReconnectWithUriAuth() {
155157

156158
WithPassword.run(client, () -> {
157-
client.setOptions(ClientOptions.builder().requestQueueSize(10).build());
159+
client.setOptions(ClientOptions.builder().requestQueueSize(10)
160+
.timeoutOptions(TimeoutOptions.builder().timeoutCommands(false).build()).build());
161+
;
158162

159163
RedisURI redisURI = RedisURI.create(host, port);
160164
redisURI.setPassword(passwd);
@@ -169,7 +173,8 @@ void testHitRequestQueueLimitReconnectWithUriAuthPingCommand() {
169173

170174
WithPassword.run(client, () -> {
171175

172-
client.setOptions(ClientOptions.builder().requestQueueSize(10).build());
176+
client.setOptions(ClientOptions.builder().requestQueueSize(10)
177+
.timeoutOptions(TimeoutOptions.builder().timeoutCommands(false).build()).build());
173178

174179
RedisURI redisURI = RedisURI.create(host, port);
175180
redisURI.setPassword(passwd);
@@ -207,7 +212,8 @@ private void testHitRequestQueueLimit(RedisAsyncCommands<String, String> connect
207212
@Test
208213
void requestQueueSizeOvercommittedReconnect() {
209214

210-
client.setOptions(ClientOptions.builder().requestQueueSize(10).build());
215+
client.setOptions(ClientOptions.builder().requestQueueSize(10)
216+
.timeoutOptions(TimeoutOptions.builder().timeoutCommands(false).build()).build());
211217

212218
StatefulRedisConnection<String, String> connection = client.connect();
213219
ConnectionWatchdog watchdog = getConnectionWatchdog(connection);
@@ -262,8 +268,8 @@ void disconnectedWithoutReconnect() {
262268
@Test
263269
void disconnectedRejectCommands() {
264270

265-
client.setOptions(
266-
ClientOptions.builder().disconnectedBehavior(ClientOptions.DisconnectedBehavior.REJECT_COMMANDS).build());
271+
client.setOptions(ClientOptions.builder().disconnectedBehavior(ClientOptions.DisconnectedBehavior.REJECT_COMMANDS)
272+
.timeoutOptions(TimeoutOptions.builder().timeoutCommands(false).build()).build());
267273

268274
RedisAsyncCommands<String, String> connection = client.connect().async();
269275

@@ -471,7 +477,8 @@ void timeoutExpiresBatchedCommands() {
471477

472478
@Test
473479
void pingBeforeConnectWithQueuedCommandsAndReconnect() throws Exception {
474-
480+
client.setOptions(
481+
ClientOptions.builder().timeoutOptions(TimeoutOptions.builder().timeoutCommands(false).build()).build());
475482
StatefulRedisConnection<String, String> controlConnection = client.connect();
476483

477484
StatefulRedisConnection<String, String> redisConnection = client.connect(RedisURI.create("redis://localhost:6479/5"));
@@ -513,6 +520,8 @@ void authenticatedPingBeforeConnectWithQueuedCommandsAndReconnect() {
513520
WithPassword.run(client, () -> {
514521

515522
RedisURI redisURI = RedisURI.Builder.redis(host, port).withPassword(passwd).withDatabase(5).build();
523+
client.setOptions(
524+
ClientOptions.builder().timeoutOptions(TimeoutOptions.builder().timeoutCommands(false).build()).build());
516525
StatefulRedisConnection<String, String> controlConnection = client.connect(redisURI);
517526

518527
StatefulRedisConnection<String, String> redisConnection = client.connect(redisURI);

src/test/java/io/lettuce/core/cluster/RedisClusterSetupTest.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import java.util.function.Supplier;
3232
import java.util.stream.Collectors;
3333

34+
import io.lettuce.core.TimeoutOptions;
3435
import org.junit.jupiter.api.AfterAll;
3536
import org.junit.jupiter.api.AfterEach;
3637
import org.junit.jupiter.api.BeforeAll;
@@ -303,10 +304,12 @@ public void slotMigrationShouldUseAsking() {
303304
public void disconnectedConnectionRejectTest() throws Exception {
304305

305306
clusterClient.setOptions(ClusterClientOptions.builder().topologyRefreshOptions(PERIODIC_REFRESH_ENABLED)
306-
.disconnectedBehavior(ClientOptions.DisconnectedBehavior.REJECT_COMMANDS).build());
307+
.disconnectedBehavior(ClientOptions.DisconnectedBehavior.REJECT_COMMANDS)
308+
.timeoutOptions(TimeoutOptions.builder().timeoutCommands(false).build()).build());
307309
RedisAdvancedClusterAsyncCommands<String, String> clusterConnection = clusterClient.connect().async();
308-
clusterClient.setOptions(ClusterClientOptions.builder()
309-
.disconnectedBehavior(ClientOptions.DisconnectedBehavior.REJECT_COMMANDS).build());
310+
clusterClient.setOptions(
311+
ClusterClientOptions.builder().disconnectedBehavior(ClientOptions.DisconnectedBehavior.REJECT_COMMANDS)
312+
.timeoutOptions(TimeoutOptions.builder().timeoutCommands(false).build()).build());
310313
ClusterSetup.setup2Masters(clusterHelper);
311314

312315
assertRoutedExecution(clusterConnection);
@@ -330,9 +333,11 @@ public void disconnectedConnectionRejectTest() throws Exception {
330333
@Test
331334
public void atLeastOnceForgetNodeFailover() throws Exception {
332335

333-
clusterClient.setOptions(ClusterClientOptions.builder().topologyRefreshOptions(PERIODIC_REFRESH_ENABLED).build());
336+
clusterClient.setOptions(ClusterClientOptions.builder().topologyRefreshOptions(PERIODIC_REFRESH_ENABLED)
337+
.timeoutOptions(TimeoutOptions.builder().timeoutCommands(false).build()).build());
334338
RedisAdvancedClusterAsyncCommands<String, String> clusterConnection = clusterClient.connect().async();
335-
clusterClient.setOptions(ClusterClientOptions.create());
339+
clusterClient.setOptions(
340+
ClusterClientOptions.builder().timeoutOptions(TimeoutOptions.builder().timeoutCommands(false).build()).build());
336341
ClusterSetup.setup2Masters(clusterHelper);
337342

338343
assertRoutedExecution(clusterConnection);

src/test/java/io/lettuce/core/protocol/ConnectionFailureIntegrationTests.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,8 @@ void invalidFirstByte() throws Exception {
8989
@Test
9090
void failOnReconnect() throws Exception {
9191

92-
ClientOptions clientOptions = ClientOptions.builder().suspendReconnectOnProtocolFailure(true).build();
92+
ClientOptions clientOptions = ClientOptions.builder().suspendReconnectOnProtocolFailure(true)
93+
.timeoutOptions(TimeoutOptions.builder().timeoutCommands(false).build()).build();
9394
client.setOptions(clientOptions);
9495

9596
RandomResponseServer ts = getRandomResponseServer();
@@ -133,7 +134,8 @@ void failOnReconnect() throws Exception {
133134
@Test
134135
void failOnReconnectShouldSendEvents() throws Exception {
135136

136-
client.setOptions(ClientOptions.builder().suspendReconnectOnProtocolFailure(false).build());
137+
client.setOptions(ClientOptions.builder().suspendReconnectOnProtocolFailure(false)
138+
.timeoutOptions(TimeoutOptions.builder().timeoutCommands(false).build()).build());
137139

138140
RandomResponseServer ts = getRandomResponseServer();
139141

@@ -181,7 +183,8 @@ void failOnReconnectShouldSendEvents() throws Exception {
181183
@Test
182184
void cancelCommandsOnReconnectFailure() throws Exception {
183185

184-
client.setOptions(ClientOptions.builder().cancelCommandsOnReconnectFailure(true).build());
186+
client.setOptions(ClientOptions.builder().cancelCommandsOnReconnectFailure(true)
187+
.timeoutOptions(TimeoutOptions.builder().timeoutCommands(false).build()).build());
185188

186189
RandomResponseServer ts = getRandomResponseServer();
187190

@@ -235,7 +238,8 @@ void emitEventOnReconnectFailure() throws Exception {
235238
RedisURI redisUri = RedisURI.create(defaultRedisUri.toURI());
236239
RedisClient client = RedisClient.create(clientResources);
237240

238-
client.setOptions(ClientOptions.builder().build());
241+
client.setOptions(
242+
ClientOptions.builder().timeoutOptions(TimeoutOptions.builder().timeoutCommands(false).build()).build());
239243

240244
try {
241245
RedisAsyncCommandsImpl<String, String> connection = (RedisAsyncCommandsImpl<String, String>) client
@@ -329,7 +333,8 @@ public void afterChannelInitialized(Channel channel) {
329333

330334
RedisURI redisUri = RedisURI.create(TestSettings.host(), TestSettings.port());
331335
RedisClient client = RedisClient.create(clientResources, redisUri);
332-
client.setOptions(ClientOptions.builder().pingBeforeActivateConnection(true).build());
336+
client.setOptions(ClientOptions.builder().pingBeforeActivateConnection(true)
337+
.timeoutOptions(TimeoutOptions.builder().timeoutCommands(false).build()).build());
333338

334339
StatefulRedisConnection<String, String> connection = client.connect();
335340

@@ -365,6 +370,8 @@ public void afterChannelInitialized(Channel channel) {
365370
void closingDisconnectedConnectionShouldDisableConnectionWatchdog() {
366371

367372
client.setOptions(ClientOptions.create());
373+
client.setOptions(
374+
ClientOptions.builder().timeoutOptions(TimeoutOptions.builder().timeoutCommands(false).build()).build());
368375

369376
RedisURI redisUri = RedisURI.Builder.redis(TestSettings.host(), TestSettings.port()).withTimeout(Duration.ofMinutes(10))
370377
.build();

src/test/java/io/lettuce/core/reliability/AtLeastOnceTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import java.util.concurrent.ExecutionException;
99
import java.util.concurrent.TimeUnit;
1010

11+
import io.lettuce.core.TimeoutOptions;
1112
import org.junit.jupiter.api.BeforeEach;
1213
import org.junit.jupiter.api.Test;
1314

@@ -44,7 +45,8 @@ class AtLeastOnceTest extends AbstractRedisClientTest {
4445

4546
@BeforeEach
4647
void before() {
47-
client.setOptions(ClientOptions.builder().autoReconnect(true).build());
48+
client.setOptions(ClientOptions.builder().autoReconnect(true)
49+
.timeoutOptions(TimeoutOptions.builder().timeoutCommands(false).build()).build());
4850

4951
// needs to be increased on slow systems...perhaps...
5052
client.setDefaultTimeout(3, TimeUnit.SECONDS);

src/test/java/io/lettuce/core/reliability/AtMostOnceTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import java.util.concurrent.ExecutionException;
1010
import java.util.concurrent.TimeUnit;
1111

12+
import io.lettuce.core.TimeoutOptions;
1213
import org.junit.jupiter.api.BeforeEach;
1314
import org.junit.jupiter.api.Test;
1415

@@ -46,7 +47,8 @@ class AtMostOnceTest extends AbstractRedisClientTest {
4647

4748
@BeforeEach
4849
void before() {
49-
client.setOptions(ClientOptions.builder().autoReconnect(false).build());
50+
client.setOptions(ClientOptions.builder().autoReconnect(false)
51+
.timeoutOptions(TimeoutOptions.builder().timeoutCommands(false).build()).build());
5052

5153
// needs to be increased on slow systems...perhaps...
5254
client.setDefaultTimeout(3, TimeUnit.SECONDS);

0 commit comments

Comments
 (0)