diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/LettucePoolingClientConfiguration.java b/src/main/java/org/springframework/data/redis/connection/lettuce/LettucePoolingClientConfiguration.java index 01986f6df..51b09994d 100644 --- a/src/main/java/org/springframework/data/redis/connection/lettuce/LettucePoolingClientConfiguration.java +++ b/src/main/java/org/springframework/data/redis/connection/lettuce/LettucePoolingClientConfiguration.java @@ -16,6 +16,7 @@ package org.springframework.data.redis.connection.lettuce; import io.lettuce.core.ClientOptions; +import io.lettuce.core.ReadFrom; import io.lettuce.core.resource.ClientResources; import java.time.Duration; @@ -156,6 +157,16 @@ public interface LettucePoolingClientConfiguration extends LettuceClientConfigur return this; } + /* + * (non-Javadoc) + * @see org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration.LettuceClientConfigurationBuilder#readFrom(io.lettuce.core.ReadFrom) + */ + @Override + public LettucePoolingClientConfigurationBuilder readFrom(ReadFrom readFrom) { + super.readFrom(readFrom); + return this; + } + /** * Set the {@link GenericObjectPoolConfig} used by the driver. * diff --git a/src/test/java/org/springframework/data/redis/connection/lettuce/LettucePoolingClientConfigurationUnitTests.java b/src/test/java/org/springframework/data/redis/connection/lettuce/LettucePoolingClientConfigurationUnitTests.java index be2ae1181..1f6c70c78 100644 --- a/src/test/java/org/springframework/data/redis/connection/lettuce/LettucePoolingClientConfigurationUnitTests.java +++ b/src/test/java/org/springframework/data/redis/connection/lettuce/LettucePoolingClientConfigurationUnitTests.java @@ -18,6 +18,7 @@ package org.springframework.data.redis.connection.lettuce; import static org.assertj.core.api.Assertions.*; import io.lettuce.core.ClientOptions; +import io.lettuce.core.ReadFrom; import io.lettuce.core.TimeoutOptions; import io.lettuce.core.resource.ClientResources; @@ -83,4 +84,24 @@ public class LettucePoolingClientConfigurationUnitTests { assertThat(configuration.getShutdownTimeout()).isEqualTo(Duration.ofHours(2)); assertThat(configuration.getShutdownQuietPeriod()).isEqualTo(Duration.ofMinutes(5)); } + + @Test // DATAREDIS-956 + public void shouldConfigureReadFrom() { + + ClientOptions clientOptions = ClientOptions.create(); + ClientResources sharedClientResources = LettuceTestClientResources.getSharedClientResources(); + GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig(); + + LettucePoolingClientConfiguration configuration = LettucePoolingClientConfiguration.builder() // + .poolConfig(poolConfig) // + .clientOptions(clientOptions) // + .clientResources(sharedClientResources) // + .readFrom(ReadFrom.MASTER_PREFERRED) // + .build(); + + assertThat(configuration.getPoolConfig()).isEqualTo(poolConfig); + assertThat(configuration.getClientOptions()).contains(clientOptions); + assertThat(configuration.getClientResources()).contains(sharedClientResources); + assertThat(configuration.getReadFrom().orElse(ReadFrom.MASTER)).isEqualTo(ReadFrom.MASTER_PREFERRED); + } }