diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/DefaultLettuceClientConfiguration.java b/src/main/java/org/springframework/data/redis/connection/lettuce/DefaultLettuceClientConfiguration.java index 62439de47..be6197b21 100644 --- a/src/main/java/org/springframework/data/redis/connection/lettuce/DefaultLettuceClientConfiguration.java +++ b/src/main/java/org/springframework/data/redis/connection/lettuce/DefaultLettuceClientConfiguration.java @@ -29,6 +29,7 @@ import org.springframework.lang.Nullable; * * @author Mark Paluch * @author Christoph Strobl + * @author Yanming Zhou * @since 2.0 */ class DefaultLettuceClientConfiguration implements LettuceClientConfiguration { @@ -46,9 +47,7 @@ class DefaultLettuceClientConfiguration implements LettuceClientConfiguration { DefaultLettuceClientConfiguration(boolean useSsl, boolean verifyPeer, boolean startTls, @Nullable ClientResources clientResources, @Nullable ClientOptions clientOptions, @Nullable String clientName, - @Nullable ReadFrom readFrom, - Duration timeout, Duration shutdownTimeout, - @Nullable Duration shutdownQuietPeriod) { + @Nullable ReadFrom readFrom, Duration timeout, Duration shutdownTimeout, @Nullable Duration shutdownQuietPeriod) { this.useSsl = useSsl; this.verifyPeer = verifyPeer; diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/DefaultLettucePoolingClientConfiguration.java b/src/main/java/org/springframework/data/redis/connection/lettuce/DefaultLettucePoolingClientConfiguration.java index 9a20607eb..eb301bb94 100644 --- a/src/main/java/org/springframework/data/redis/connection/lettuce/DefaultLettucePoolingClientConfiguration.java +++ b/src/main/java/org/springframework/data/redis/connection/lettuce/DefaultLettucePoolingClientConfiguration.java @@ -29,6 +29,7 @@ import org.apache.commons.pool2.impl.GenericObjectPoolConfig; * * @author Mark Paluch * @author Christoph Strobl + * @author Yanming Zhou * @since 2.0 */ class DefaultLettucePoolingClientConfiguration implements LettucePoolingClientConfiguration { diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceClientConfiguration.java b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceClientConfiguration.java index 4d822fcec..920563072 100644 --- a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceClientConfiguration.java +++ b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceClientConfiguration.java @@ -42,10 +42,12 @@ import org.springframework.util.Assert; *
  • Optional {@link ReadFrom}. Enables Master/Replica operations if configured.
  • *
  • Client {@link Duration timeout}
  • *
  • Shutdown {@link Duration timeout}
  • + *
  • Shutdown quiet {@link Duration period}
  • * * * @author Mark Paluch * @author Christoph Strobl + * @author Yanming Zhou * @since 2.0 * @see org.springframework.data.redis.connection.RedisStandaloneConfiguration * @see org.springframework.data.redis.connection.RedisSentinelConfiguration @@ -141,6 +143,8 @@ public interface LettuceClientConfiguration { *
    60 Seconds
    *
    Shutdown Timeout
    *
    100 Milliseconds
    + *
    Shutdown Quiet Period
    + *
    100 Milliseconds
    * * * @return a {@link LettuceClientConfiguration} with defaults. @@ -273,7 +277,7 @@ public interface LettuceClientConfiguration { } /** - * Configure a shutdown timeout. + * Configure the shutdown quiet period. * * @param shutdownQuietPeriod must not be {@literal null}. * @return {@literal this} builder. 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 23fc6921d..d8655701e 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 @@ -29,6 +29,7 @@ import org.springframework.util.Assert; * * @author Mark Paluch * @author Christoph Strobl + * @author Yanming Zhou * @since 2.0 */ public interface LettucePoolingClientConfiguration extends LettuceClientConfiguration { @@ -65,6 +66,8 @@ public interface LettucePoolingClientConfiguration extends LettuceClientConfigur *
    60 Seconds
    *
    Shutdown Timeout
    *
    100 Milliseconds
    + *
    Shutdown Quiet Period
    + *
    100 Milliseconds
    *
    pool config
    *
    default {@link GenericObjectPoolConfig}
    * diff --git a/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceClientConfigurationUnitTests.java b/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceClientConfigurationUnitTests.java index 3c43bf41b..6b212392e 100644 --- a/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceClientConfigurationUnitTests.java +++ b/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceClientConfigurationUnitTests.java @@ -29,6 +29,7 @@ import org.junit.Test; * * @author Mark Paluch * @author Christoph Strobl + * @author Yanming Zhou */ public class LettuceClientConfigurationUnitTests { @@ -77,6 +78,16 @@ public class LettuceClientConfigurationUnitTests { assertThat(configuration.getShutdownQuietPeriod()).isEqualTo(Duration.ofMinutes(5)); } + @Test // DATAREDIS-881 + public void shutdownQuietPeriodShouldDefaultToTimeout() { + + LettuceClientConfiguration configuration = LettuceClientConfiguration.builder() + .shutdownTimeout(Duration.ofSeconds(42)).build(); + + assertThat(configuration.getShutdownTimeout()).isEqualTo(Duration.ofSeconds(42)); + assertThat(configuration.getShutdownQuietPeriod()).isEqualTo(Duration.ofSeconds(42)); + } + @Test(expected = IllegalArgumentException.class) // DATAREDIS-576 public void clientConfigurationThrowsExceptionForNullClientName() { LettuceClientConfiguration.builder().clientName(null);