DATAREDIS-667 - Introduce LettuceConnectionProvider.
We now create and release Lettuce connections using LettuceConnectionProvider. Connection providers encapsulate the underlying client and expose only creation and release methods. A connection provider can provide connections for Standalone or Cluster connections or wrap a LettucePool. Previously we used RedisClient and RedisClusterClient directly which required context propagation (pooling/non-pooling) conditional code to obtain the appropriate connection type. Original Pull Request: #262
This commit is contained in:
committed by
Christoph Strobl
parent
5c37948219
commit
5ac7f8eb19
@@ -29,6 +29,7 @@ import org.springframework.data.redis.test.util.LettuceRedisClusterClientProvide
|
||||
|
||||
/**
|
||||
* @author Christoph Strobl
|
||||
* @author Mark Paluch
|
||||
*/
|
||||
public abstract class LettuceReactiveClusterCommandsTestsBase {
|
||||
|
||||
@@ -41,7 +42,8 @@ public abstract class LettuceReactiveClusterCommandsTestsBase {
|
||||
public void before() {
|
||||
assumeThat(clientProvider.test(), is(true));
|
||||
nativeCommands = clientProvider.getClient().connect().sync();
|
||||
connection = new LettuceReactiveRedisClusterConnection(clientProvider.getClient());
|
||||
connection = new LettuceReactiveRedisClusterConnection(
|
||||
new ClusterConnectionProvider(clientProvider.getClient(), LettuceReactiveRedisConnection.CODEC));
|
||||
}
|
||||
|
||||
@After
|
||||
@@ -63,5 +65,4 @@ public abstract class LettuceReactiveClusterCommandsTestsBase {
|
||||
connection.close();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -39,6 +39,7 @@ import org.springframework.data.redis.test.util.LettuceRedisClusterClientProvide
|
||||
|
||||
/**
|
||||
* @author Christoph Strobl
|
||||
* @author Mark Paluch
|
||||
*/
|
||||
@RunWith(Parameterized.class)
|
||||
public abstract class LettuceReactiveCommandsTestsBase {
|
||||
@@ -100,11 +101,13 @@ public abstract class LettuceReactiveCommandsTestsBase {
|
||||
|
||||
if (abstractRedisClient instanceof RedisClient) {
|
||||
nativeCommands = ((RedisClient) abstractRedisClient).connect().sync();
|
||||
connection = new LettuceReactiveRedisConnection(abstractRedisClient);
|
||||
connection = new LettuceReactiveRedisConnection(
|
||||
new StandaloneConnectionProvider(((RedisClient) abstractRedisClient), LettuceReactiveRedisConnection.CODEC));
|
||||
|
||||
} else if (abstractRedisClient instanceof RedisClusterClient) {
|
||||
nativeCommands = ((RedisClusterClient) abstractRedisClient).connect().sync();
|
||||
connection = new LettuceReactiveRedisClusterConnection((RedisClusterClient) abstractRedisClient);
|
||||
connection = new LettuceReactiveRedisClusterConnection(new ClusterConnectionProvider(
|
||||
((RedisClusterClient) abstractRedisClient), LettuceReactiveRedisConnection.CODEC));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user