DATAREDIS-956 - Polishing.

Add author tags. Provide override for clientName(…) in LettucePoolingClientConfigurationBuilder. Extend Javadoc. Add and simplify tests.

Original pull request: #446.
This commit is contained in:
Mark Paluch
2019-04-18 11:38:17 +02:00
parent e3b903ce36
commit 647cf25d2b
2 changed files with 34 additions and 9 deletions

View File

@@ -22,6 +22,7 @@ import io.lettuce.core.resource.ClientResources;
import java.time.Duration; import java.time.Duration;
import org.apache.commons.pool2.impl.GenericObjectPoolConfig; import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
import org.springframework.util.Assert; import org.springframework.util.Assert;
/** /**
@@ -63,6 +64,10 @@ public interface LettucePoolingClientConfiguration extends LettuceClientConfigur
* <dd>{@link ClientOptions} with enabled {@link io.lettuce.core.TimeoutOptions}</dd> * <dd>{@link ClientOptions} with enabled {@link io.lettuce.core.TimeoutOptions}</dd>
* <dt>Client Resources</dt> * <dt>Client Resources</dt>
* <dd>none</dd> * <dd>none</dd>
* <dt>Client name</dt>
* <dd>none</dd>
* <dt>Read From</dt>
* <dd>none</dd>
* <dt>Connect Timeout</dt> * <dt>Connect Timeout</dt>
* <dd>60 Seconds</dd> * <dd>60 Seconds</dd>
* <dt>Shutdown Timeout</dt> * <dt>Shutdown Timeout</dt>
@@ -82,6 +87,7 @@ public interface LettucePoolingClientConfiguration extends LettuceClientConfigur
/** /**
* @author Mark Paluch * @author Mark Paluch
* @author Christoph Strobl * @author Christoph Strobl
* @author Longlong Zhao
*/ */
class LettucePoolingClientConfigurationBuilder extends LettuceClientConfigurationBuilder { class LettucePoolingClientConfigurationBuilder extends LettuceClientConfigurationBuilder {
@@ -167,6 +173,16 @@ public interface LettucePoolingClientConfiguration extends LettuceClientConfigur
return this; return this;
} }
/*
* (non-Javadoc)
* @see org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration.LettuceClientConfigurationBuilder#clientName(String)
*/
@Override
public LettucePoolingClientConfigurationBuilder clientName(String clientName) {
super.clientName(clientName);
return this;
}
/** /**
* Set the {@link GenericObjectPoolConfig} used by the driver. * Set the {@link GenericObjectPoolConfig} used by the driver.
* *

View File

@@ -32,6 +32,7 @@ import org.junit.Test;
* *
* @author Mark Paluch * @author Mark Paluch
* @author Christoph Strobl * @author Christoph Strobl
* @author Longlong Zhao
*/ */
public class LettucePoolingClientConfigurationUnitTests { public class LettucePoolingClientConfigurationUnitTests {
@@ -88,20 +89,28 @@ public class LettucePoolingClientConfigurationUnitTests {
@Test // DATAREDIS-956 @Test // DATAREDIS-956
public void shouldConfigureReadFrom() { public void shouldConfigureReadFrom() {
ClientOptions clientOptions = ClientOptions.create();
ClientResources sharedClientResources = LettuceTestClientResources.getSharedClientResources();
GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig(); GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();
LettucePoolingClientConfiguration configuration = LettucePoolingClientConfiguration.builder() // LettucePoolingClientConfiguration configuration = LettucePoolingClientConfiguration.builder() //
.poolConfig(poolConfig) // .poolConfig(poolConfig) //
.clientOptions(clientOptions) // .readFrom(ReadFrom.MASTER_PREFERRED) //
.clientResources(sharedClientResources) // .build();
.readFrom(ReadFrom.MASTER_PREFERRED) //
.build();
assertThat(configuration.getPoolConfig()).isEqualTo(poolConfig); 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); assertThat(configuration.getReadFrom().orElse(ReadFrom.MASTER)).isEqualTo(ReadFrom.MASTER_PREFERRED);
} }
@Test // DATAREDIS-956
public void shouldConfigureClientName() {
GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();
LettucePoolingClientConfiguration configuration = LettucePoolingClientConfiguration.builder() //
.poolConfig(poolConfig) //
.clientName("clientName") //
.build();
assertThat(configuration.getPoolConfig()).isEqualTo(poolConfig);
assertThat(configuration.getClientName()).contains("clientName");
}
} }