DATAREDIS-525 - Upgrade to lettuce 5.0.0.Beta1.

- Replace deprecated method usage by using newly introduced API.
- Improve converter names, remove unused code, fix generics.

Original pull request: #229.
This commit is contained in:
Mark Paluch
2016-10-26 10:48:12 +02:00
parent d257ae1074
commit 62b1354e02
30 changed files with 757 additions and 863 deletions

View File

@@ -20,7 +20,6 @@ import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import com.lambdaworks.redis.RedisAsyncConnection;
import com.lambdaworks.redis.RedisClient;
import com.lambdaworks.redis.RedisException;
import com.lambdaworks.redis.api.StatefulRedisConnection;
@@ -77,15 +76,15 @@ public class AuthenticatingRedisClientTests {
@Test
public void connectAsync() {
RedisAsyncConnection<String, String> conn = client.connectAsync();
conn.ping();
StatefulRedisConnection<String, String> conn = client.connect();
conn.sync().ping();
conn.close();
}
@Test
public void codecConnectAsync() {
RedisAsyncConnection<byte[], byte[]> conn = client.connectAsync(LettuceConnection.CODEC);
conn.ping();
StatefulRedisConnection<byte[], byte[]> conn = client.connect(LettuceConnection.CODEC);
conn.sync().ping();
conn.close();
}

View File

@@ -260,7 +260,7 @@ public class LettuceClusterConnectionTests implements ClusterConnectionTests {
clusterConnection.rename(KEY_1_BYTES, KEY_2_BYTES);
assertThat(nativeConnection.exists(KEY_1), is(false));
assertThat(nativeConnection.exists(KEY_1), is(0L));
assertThat(nativeConnection.get(KEY_2), is(VALUE_1));
}
@@ -274,7 +274,7 @@ public class LettuceClusterConnectionTests implements ClusterConnectionTests {
clusterConnection.rename(SAME_SLOT_KEY_1_BYTES, SAME_SLOT_KEY_2_BYTES);
assertThat(nativeConnection.exists(SAME_SLOT_KEY_1), is(false));
assertThat(nativeConnection.exists(SAME_SLOT_KEY_1), is(0L));
assertThat(nativeConnection.get(SAME_SLOT_KEY_2), is(VALUE_1));
}
@@ -288,7 +288,7 @@ public class LettuceClusterConnectionTests implements ClusterConnectionTests {
assertThat(clusterConnection.renameNX(KEY_1_BYTES, KEY_2_BYTES), is(Boolean.TRUE));
assertThat(nativeConnection.exists(KEY_1), is(false));
assertThat(nativeConnection.exists(KEY_1), is(0L));
assertThat(nativeConnection.get(KEY_2), is(VALUE_1));
}
@@ -317,7 +317,7 @@ public class LettuceClusterConnectionTests implements ClusterConnectionTests {
assertThat(clusterConnection.renameNX(SAME_SLOT_KEY_1_BYTES, SAME_SLOT_KEY_2_BYTES), is(Boolean.TRUE));
assertThat(nativeConnection.exists(SAME_SLOT_KEY_1), is(false));
assertThat(nativeConnection.exists(SAME_SLOT_KEY_1), is(0L));
assertThat(nativeConnection.get(SAME_SLOT_KEY_2), is(VALUE_1));
}
@@ -529,7 +529,7 @@ public class LettuceClusterConnectionTests implements ClusterConnectionTests {
nativeConnection.lpush(KEY_1, VALUE_2, VALUE_1);
assertThat(clusterConnection.sort(KEY_1_BYTES, new DefaultSortParameters().alpha(), KEY_2_BYTES), is(1L));
assertThat(nativeConnection.exists(KEY_2), is(true));
assertThat(nativeConnection.exists(KEY_2), is(1L));
}
/**
@@ -951,7 +951,7 @@ public class LettuceClusterConnectionTests implements ClusterConnectionTests {
clusterConnection.rPushX(KEY_1_BYTES, VALUE_1_BYTES);
assertThat(nativeConnection.exists(KEY_1), is(false));
assertThat(nativeConnection.exists(KEY_1), is(0L));
}
/**
@@ -962,7 +962,7 @@ public class LettuceClusterConnectionTests implements ClusterConnectionTests {
clusterConnection.lPushX(KEY_1_BYTES, VALUE_1_BYTES);
assertThat(nativeConnection.exists(KEY_1), is(false));
assertThat(nativeConnection.exists(KEY_1), is(0L));
}
/**
@@ -1141,7 +1141,7 @@ public class LettuceClusterConnectionTests implements ClusterConnectionTests {
nativeConnection.lpush(KEY_1, VALUE_1, VALUE_2);
assertThat(clusterConnection.bRPopLPush(0, KEY_1_BYTES, KEY_2_BYTES), is(VALUE_1_BYTES));
assertThat(nativeConnection.exists(KEY_2), is(true));
assertThat(nativeConnection.exists(KEY_2), is(1L));
}
/**
@@ -1153,7 +1153,7 @@ public class LettuceClusterConnectionTests implements ClusterConnectionTests {
nativeConnection.lpush(SAME_SLOT_KEY_1, VALUE_1, VALUE_2);
assertThat(clusterConnection.bRPopLPush(0, SAME_SLOT_KEY_1_BYTES, SAME_SLOT_KEY_2_BYTES), is(VALUE_1_BYTES));
assertThat(nativeConnection.exists(SAME_SLOT_KEY_2), is(true));
assertThat(nativeConnection.exists(SAME_SLOT_KEY_2), is(1L));
}
/**
@@ -1165,7 +1165,7 @@ public class LettuceClusterConnectionTests implements ClusterConnectionTests {
nativeConnection.lpush(SAME_SLOT_KEY_1, VALUE_1, VALUE_2);
assertThat(clusterConnection.rPopLPush(SAME_SLOT_KEY_1_BYTES, SAME_SLOT_KEY_2_BYTES), is(VALUE_1_BYTES));
assertThat(nativeConnection.exists(SAME_SLOT_KEY_2), is(true));
assertThat(nativeConnection.exists(SAME_SLOT_KEY_2), is(1L));
}
/**
@@ -1911,7 +1911,7 @@ public class LettuceClusterConnectionTests implements ClusterConnectionTests {
clusterConnection.hMSet(KEY_1_BYTES, hashes);
assertThat(nativeConnection.hmget(KEY_1, KEY_2, KEY_3), hasItems(VALUE_1, VALUE_2));
assertThat(clusterConnection.hMGet(KEY_1_BYTES, KEY_2_BYTES, KEY_3_BYTES), hasItems(VALUE_1_BYTES, VALUE_2_BYTES));
}
/**
@@ -2407,7 +2407,7 @@ public class LettuceClusterConnectionTests implements ClusterConnectionTests {
clusterConnection.set(KEY_1_BYTES, VALUE_1_BYTES, Expiration.seconds(1), SetOption.upsert());
assertThat(nativeConnection.exists(KEY_1), is(true));
assertThat(nativeConnection.exists(KEY_1), is(1L));
assertThat(nativeConnection.ttl(KEY_1), is(1L));
}
@@ -2419,7 +2419,7 @@ public class LettuceClusterConnectionTests implements ClusterConnectionTests {
clusterConnection.set(KEY_1_BYTES, VALUE_1_BYTES, Expiration.milliseconds(500), SetOption.upsert());
assertThat(nativeConnection.exists(KEY_1), is(true));
assertThat(nativeConnection.exists(KEY_1), is(1L));
assertThat(nativeConnection.pttl(KEY_1).doubleValue(), is(closeTo(500d, 499d)));
}
@@ -2441,7 +2441,7 @@ public class LettuceClusterConnectionTests implements ClusterConnectionTests {
clusterConnection.set(KEY_1_BYTES, VALUE_1_BYTES, Expiration.persistent(), SetOption.ifAbsent());
assertThat(nativeConnection.exists(KEY_1), is(true));
assertThat(nativeConnection.exists(KEY_1), is(1L));
assertThat(nativeConnection.ttl(KEY_1), is(-1L));
}
@@ -2453,7 +2453,7 @@ public class LettuceClusterConnectionTests implements ClusterConnectionTests {
clusterConnection.set(KEY_1_BYTES, VALUE_1_BYTES, Expiration.seconds(1), SetOption.ifAbsent());
assertThat(nativeConnection.exists(KEY_1), is(true));
assertThat(nativeConnection.exists(KEY_1), is(1L));
assertThat(nativeConnection.ttl(KEY_1), is(1L));
}
@@ -2467,7 +2467,7 @@ public class LettuceClusterConnectionTests implements ClusterConnectionTests {
clusterConnection.set(KEY_1_BYTES, VALUE_2_BYTES, Expiration.seconds(1), SetOption.ifAbsent());
assertThat(nativeConnection.exists(KEY_1), is(true));
assertThat(nativeConnection.exists(KEY_1), is(1L));
assertThat(nativeConnection.ttl(KEY_1), is(-1L));
assertThat(nativeConnection.get(KEY_1), is(equalTo(VALUE_1)));
@@ -2483,7 +2483,7 @@ public class LettuceClusterConnectionTests implements ClusterConnectionTests {
clusterConnection.set(KEY_1_BYTES, VALUE_2_BYTES, Expiration.seconds(1), SetOption.ifPresent());
assertThat(nativeConnection.exists(KEY_1), is(true));
assertThat(nativeConnection.exists(KEY_1), is(1L));
assertThat(nativeConnection.ttl(KEY_1), is(1L));
assertThat(nativeConnection.get(KEY_1), is(equalTo(VALUE_2)));
@@ -2497,7 +2497,7 @@ public class LettuceClusterConnectionTests implements ClusterConnectionTests {
clusterConnection.set(KEY_1_BYTES, VALUE_1_BYTES, Expiration.seconds(1), SetOption.ifPresent());
assertThat(nativeConnection.exists(KEY_1), is(false));
assertThat(nativeConnection.exists(KEY_1), is(0L));
}
/**

View File

@@ -20,6 +20,7 @@ import static org.hamcrest.core.IsEqual.*;
import static org.hamcrest.core.IsNull.*;
import static org.junit.Assert.*;
import com.lambdaworks.redis.api.reactive.BaseRedisReactiveCommands;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
@@ -339,7 +340,7 @@ public class LettuceConnectionFactoryTests {
ConnectionFactoryTracker.add(factory);
assertThat(factory.getReactiveConnection()
.execute(cmd -> QueryExecutionConverters.RxJava1ObservableToMonoConverter.INSTANCE.convert(cmd.ping()))
.execute(BaseRedisReactiveCommands::ping)
.blockFirst(), is("PONG"));
}
}

View File

@@ -16,15 +16,18 @@
package org.springframework.data.redis.connection.lettuce;
import static org.hamcrest.core.Is.is;
import static org.junit.Assume.assumeThat;
import static org.hamcrest.core.Is.*;
import static org.junit.Assume.*;
import com.lambdaworks.redis.cluster.api.sync.RedisClusterCommands;
import org.junit.After;
import org.junit.Before;
import org.junit.ClassRule;
import org.springframework.data.redis.test.util.LettuceRedisClusterClientProvider;
import com.lambdaworks.redis.api.sync.RedisCommands;
import com.lambdaworks.redis.cluster.api.sync.RedisAdvancedClusterCommands;
import com.lambdaworks.redis.cluster.api.sync.RedisClusterCommands;
/**
* @author Christoph Strobl
*/
@@ -45,12 +48,19 @@ public abstract class LettuceReactiveClusterCommandsTestsBase {
@After
public void tearDown() {
if(nativeCommands != null) {
if (nativeCommands != null) {
nativeCommands.flushall();
nativeCommands.close();
if (nativeCommands instanceof RedisCommands) {
((RedisCommands) nativeCommands).getStatefulConnection().close();
}
if (nativeCommands instanceof RedisAdvancedClusterCommands) {
((RedisAdvancedClusterCommands) nativeCommands).getStatefulConnection().close();
}
}
if(connection != null) {
if (connection != null) {
connection.close();
}
}

View File

@@ -65,7 +65,7 @@ public class LettuceReactiveClusterStringCommandsTests extends LettuceReactiveCl
assertThat(connection.stringCommands().mSetNX(map).block(), is(false));
assertThat(nativeCommands.exists(SAME_SLOT_KEY_1), is(false));
assertThat(nativeCommands.exists(SAME_SLOT_KEY_1), is(0L));
assertThat(nativeCommands.get(SAME_SLOT_KEY_2), is(equalTo(VALUE_2)));
}

View File

@@ -15,35 +15,33 @@
*/
package org.springframework.data.redis.connection.lettuce;
import static org.hamcrest.core.Is.is;
import static org.junit.Assume.assumeThat;
import static org.hamcrest.core.Is.*;
import static org.junit.Assume.*;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
import java.util.Arrays;
import java.util.List;
import com.lambdaworks.redis.AbstractRedisClient;
import com.lambdaworks.redis.cluster.RedisClusterClient;
import com.lambdaworks.redis.cluster.api.sync.RedisClusterCommands;
import org.hamcrest.core.Is;
import org.junit.After;
import org.junit.Assume;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.springframework.data.redis.test.util.LettuceRedisClientProvider;
import org.springframework.data.redis.test.util.LettuceRedisClusterClientProvider;
import com.lambdaworks.redis.AbstractRedisClient;
import com.lambdaworks.redis.RedisClient;
import com.lambdaworks.redis.api.sync.RedisCommands;
import org.springframework.data.redis.test.util.LettuceRedisClusterClientProvider;
import com.lambdaworks.redis.cluster.RedisClusterClient;
import com.lambdaworks.redis.cluster.api.sync.RedisAdvancedClusterCommands;
import com.lambdaworks.redis.cluster.api.sync.RedisClusterCommands;
/**
* @author Christoph Strobl
*/
@RunWith(Parameterized.class)
public class LettuceReactiveCommandsTestsBase {
public abstract class LettuceReactiveCommandsTestsBase {
static final String KEY_1 = "key-1";
static final String KEY_2 = "key-2";
@@ -78,13 +76,15 @@ public class LettuceReactiveCommandsTestsBase {
static final ByteBuffer VALUE_3_BBUFFER = ByteBuffer.wrap(VALUE_3_BYTES);
@Parameterized.Parameter(value = 0) public Object clientProvider;
@Parameterized.Parameter(value = 1) public Object displayName;
LettuceReactiveRedisConnection connection;
RedisClusterCommands<String, String> nativeCommands;
@Parameterized.Parameters
public static List<Object> parameters() {
return Arrays.asList(LettuceRedisClientProvider.local(), LettuceRedisClusterClientProvider.local());
@Parameterized.Parameters(name = "{1}")
public static List<Object[]> parameters() {
return Arrays.asList(new Object[] { LettuceRedisClientProvider.local(), "Standalone" },
new Object[] { LettuceRedisClusterClientProvider.local(), "Cluster" });
}
@Before
@@ -114,7 +114,14 @@ public class LettuceReactiveCommandsTestsBase {
if (nativeCommands != null) {
flushAll();
nativeCommands.close();
if (nativeCommands instanceof RedisCommands) {
((RedisCommands) nativeCommands).getStatefulConnection().close();
}
if (nativeCommands instanceof RedisAdvancedClusterCommands) {
((RedisAdvancedClusterCommands) nativeCommands).getStatefulConnection().close();
}
}
if (connection != null) {

View File

@@ -119,8 +119,8 @@ public class LettuceReactiveKeyCommandsTests extends LettuceReactiveCommandsTest
nativeCommands.set(KEY_1, VALUE_2);
assertThat(connection.keyCommands().rename(KEY_1_BBUFFER, KEY_2_BBUFFER).block(), is(true));
assertThat(nativeCommands.exists(KEY_2), is(true));
assertThat(nativeCommands.exists(KEY_1), is(false));
assertThat(nativeCommands.exists(KEY_2), is(1L));
assertThat(nativeCommands.exists(KEY_1), is(0L));
}
/**
@@ -141,8 +141,8 @@ public class LettuceReactiveKeyCommandsTests extends LettuceReactiveCommandsTest
assertThat(connection.keyCommands().rename(KEY_1_BBUFFER, KEY_2_BBUFFER).block(), is(true));
assertThat(nativeCommands.exists(KEY_2), is(true));
assertThat(nativeCommands.exists(KEY_1), is(false));
assertThat(nativeCommands.exists(KEY_2), is(1L));
assertThat(nativeCommands.exists(KEY_1), is(0L));
}
/**

View File

@@ -309,7 +309,7 @@ public class LettuceReactiveStringCommandsTests extends LettuceReactiveCommandsT
assertThat(connection.stringCommands().mSetNX(map).block(), is(false));
assertThat(nativeCommands.exists(KEY_1), is(false));
assertThat(nativeCommands.exists(KEY_1), is(0L));
assertThat(nativeCommands.get(KEY_2), is(equalTo(VALUE_2)));
}

View File

@@ -30,6 +30,7 @@ import org.springframework.data.redis.test.util.LettuceRedisClientProvider;
/**
* @author Christoph Strobl
* @author Mark Paluch
*/
public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTestsBase {
@@ -568,7 +569,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
/**
* @see DATAREDIS-525
*/
@Test(expected = UnsupportedOperationException.class)
@Test
public void zRevRangeByLex() {
nativeCommands.zadd(KEY_1, 0D, "a");
@@ -584,7 +585,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
ByteBuffer.wrap("a".getBytes())));
assertThat(connection.zSetCommands().zRevRangeByLex(KEY_1_BBUFFER, new Range<>("c", "", false, true)).block(),
IsIterableContainingInOrder.contains(ByteBuffer.wrap("a".getBytes()), ByteBuffer.wrap("b".getBytes())));
IsIterableContainingInOrder.contains(ByteBuffer.wrap("b".getBytes()), ByteBuffer.wrap("a".getBytes())));
assertThat(connection.zSetCommands().zRevRangeByLex(KEY_1_BBUFFER, new Range<>("g", "aaa", false, true)).block(),
IsIterableContainingInOrder.contains(ByteBuffer.wrap("f".getBytes()), ByteBuffer.wrap("e".getBytes()),

View File

@@ -19,6 +19,7 @@ import org.junit.rules.ExternalResource;
import com.lambdaworks.redis.RedisClient;
import com.lambdaworks.redis.RedisURI;
import org.springframework.data.redis.connection.lettuce.LettuceTestClientResources;
/**
* @author Christoph Strobl
@@ -39,7 +40,7 @@ public class LettuceRedisClientProvider extends ExternalResource {
throwable.printStackTrace();
}
client = RedisClient.create(RedisURI.builder().withHost(host).withPort(port).build());
client = RedisClient.create(LettuceTestClientResources.getSharedClientResources(), RedisURI.builder().withHost(host).withPort(port).build());
}
@Override

View File

@@ -31,16 +31,16 @@
*/
package org.springframework.data.redis.test.util;
import org.junit.rules.ExternalResource;
import org.springframework.data.redis.connection.lettuce.LettuceTestClientResources;
import com.lambdaworks.redis.RedisURI;
import com.lambdaworks.redis.cluster.RedisClusterClient;
import com.lambdaworks.redis.cluster.api.StatefulRedisClusterConnection;
import com.lambdaworks.redis.cluster.api.sync.RedisClusterCommands;
import org.junit.rules.ExternalResource;
import com.lambdaworks.redis.RedisClient;
import com.lambdaworks.redis.RedisURI;
/**
* @author Christoph Strobl
* @author Mark Paluch
*/
public class LettuceRedisClusterClientProvider extends ExternalResource {
@@ -50,7 +50,7 @@ public class LettuceRedisClusterClientProvider extends ExternalResource {
RedisClusterClient client;
@Override
protected void before() {
protected void before() {
try {
super.before();
@@ -58,7 +58,8 @@ public class LettuceRedisClusterClientProvider extends ExternalResource {
throwable.printStackTrace();
}
client = RedisClusterClient.create(RedisURI.builder().withHost(host).withPort(port).build());
client = RedisClusterClient.create(LettuceTestClientResources.getSharedClientResources(),
RedisURI.builder().withHost(host).withPort(port).build());
}
@Override
@@ -70,7 +71,7 @@ public class LettuceRedisClusterClientProvider extends ExternalResource {
public RedisClusterClient getClient() {
if(client == null) {
if (client == null) {
before();
}
return client;
@@ -78,7 +79,7 @@ public class LettuceRedisClusterClientProvider extends ExternalResource {
public void destroy() {
if(client != null) {
if (client != null) {
after();
}
}