diff --git a/pom.xml b/pom.xml
index b22b17954..ddc3b5f38 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,7 +21,7 @@
1.9.2
1.4.8
2.2
- 4.2.2.Final
+ 5.0.0.Beta1
2.9.0
1.01
@@ -35,12 +35,6 @@
${pool}
-
- com.google.guava
- guava
- ${guava}
-
-
diff --git a/src/main/java/org/springframework/data/redis/connection/ReactiveZSetCommands.java b/src/main/java/org/springframework/data/redis/connection/ReactiveZSetCommands.java
index 7c8fdb0bf..3aa1490d5 100644
--- a/src/main/java/org/springframework/data/redis/connection/ReactiveZSetCommands.java
+++ b/src/main/java/org/springframework/data/redis/connection/ReactiveZSetCommands.java
@@ -21,6 +21,7 @@ import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
+import com.lambdaworks.redis.Range.Boundary;
import org.reactivestreams.Publisher;
import org.springframework.data.domain.Range;
import org.springframework.data.domain.Sort.Direction;
@@ -37,72 +38,11 @@ import reactor.core.publisher.Mono;
/**
* @author Christoph Strobl
+ * @author Mark Paluch
* @since 2.0
*/
public interface ReactiveZSetCommands {
- /**
- * @author Christoph Strobl
- */
- class AgrumentConverters {
-
- public static Object lowerBoundArgOf(Range> range) {
- return rangeToLowerBoundArgumentConverter(false).convert(range);
- }
-
- public static Object upperBoundArgOf(Range> range) {
- return rangeToLowerBoundArgumentConverter(true).convert(range);
- }
-
- public static Converter, Object> rangeToLowerBoundArgumentConverter(Boolean upper) {
-
- return (source) -> {
-
- // TODO: fix range exclusion pattern when DATACMNS-920 is resolved
- DirectFieldAccessFallbackBeanWrapper bw = new DirectFieldAccessFallbackBeanWrapper(source);
-
- Boolean inclusive = upper ? Boolean.valueOf(bw.getPropertyValue("upperInclusive").toString())
- : Boolean.valueOf(bw.getPropertyValue("lowerInclusive").toString());
- Object value = upper ? source.getUpperBound() : source.getLowerBound();
-
- if (value instanceof Double) {
-
- Object converted = doubleToRangeConverter().convert((Double) value);
- if (!(converted instanceof String) && !inclusive) {
- return "(" + converted.toString();
- }
- return converted;
- }
-
- if (value instanceof String) {
- if (!StringUtils.hasText((String) value)) {
- return upper ? "+" : "-";
- }
- if (ObjectUtils.nullSafeEquals(value, "+") || ObjectUtils.nullSafeEquals(value, "-")) {
- return value;
- }
- return (inclusive ? "[" : "(") + value.toString();
- }
-
- return inclusive ? value : "(" + value;
- };
- }
-
- public static Converter doubleToRangeConverter() {
-
- return (source) -> {
- if (source.equals(Double.NEGATIVE_INFINITY)) {
- return "-inf";
- }
- if (source.equals(Double.POSITIVE_INFINITY)) {
- return "+inf";
- }
- return source;
- };
- }
-
- }
-
/**
* @author Christoph Strobl
*/
diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/AuthenticatingRedisClient.java b/src/main/java/org/springframework/data/redis/connection/lettuce/AuthenticatingRedisClient.java
index ffb2dd3ef..f279e882d 100644
--- a/src/main/java/org/springframework/data/redis/connection/lettuce/AuthenticatingRedisClient.java
+++ b/src/main/java/org/springframework/data/redis/connection/lettuce/AuthenticatingRedisClient.java
@@ -50,15 +50,6 @@ public class AuthenticatingRedisClient extends RedisClient {
return super.connect(codec);
}
- /*
- * (non-Javadoc)
- * @see com.lambdaworks.redis.RedisClient#connectAsync(com.lambdaworks.redis.codec.RedisCodec)
- */
- @Override
- public RedisAsyncCommands connectAsync(RedisCodec codec) {
- return super.connectAsync(codec);
- }
-
/*
* (non-Javadoc)
* @see com.lambdaworks.redis.RedisClient#connectPubSub(com.lambdaworks.redis.codec.RedisCodec)
diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnection.java b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnection.java
index d02fb69ce..60fd7b226 100644
--- a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnection.java
+++ b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnection.java
@@ -18,21 +18,12 @@ package org.springframework.data.redis.connection.lettuce;
import static com.lambdaworks.redis.protocol.CommandType.*;
import java.lang.reflect.Constructor;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.Map.Entry;
-import java.util.Properties;
-import java.util.Queue;
-import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
import org.springframework.beans.BeanUtils;
import org.springframework.core.convert.converter.Converter;
@@ -47,17 +38,7 @@ import org.springframework.data.geo.Point;
import org.springframework.data.redis.ExceptionTranslationStrategy;
import org.springframework.data.redis.FallbackExceptionTranslationStrategy;
import org.springframework.data.redis.RedisConnectionFailureException;
-import org.springframework.data.redis.connection.AbstractRedisConnection;
-import org.springframework.data.redis.connection.DataType;
-import org.springframework.data.redis.connection.FutureResult;
-import org.springframework.data.redis.connection.MessageListener;
-import org.springframework.data.redis.connection.RedisNode;
-import org.springframework.data.redis.connection.RedisPipelineException;
-import org.springframework.data.redis.connection.RedisSentinelConnection;
-import org.springframework.data.redis.connection.RedisSubscribedConnectionException;
-import org.springframework.data.redis.connection.ReturnType;
-import org.springframework.data.redis.connection.SortParameters;
-import org.springframework.data.redis.connection.Subscription;
+import org.springframework.data.redis.connection.*;
import org.springframework.data.redis.connection.convert.Converters;
import org.springframework.data.redis.connection.convert.ListConverter;
import org.springframework.data.redis.connection.convert.TransactionResultConverter;
@@ -73,23 +54,7 @@ import org.springframework.util.Assert;
import org.springframework.util.ClassUtils;
import org.springframework.util.ObjectUtils;
-import com.lambdaworks.redis.AbstractRedisClient;
-import com.lambdaworks.redis.GeoArgs;
-import com.lambdaworks.redis.GeoCoordinates;
-import com.lambdaworks.redis.GeoWithin;
-import com.lambdaworks.redis.KeyScanCursor;
-import com.lambdaworks.redis.LettuceFutures;
-import com.lambdaworks.redis.MapScanCursor;
-import com.lambdaworks.redis.RedisClient;
-import com.lambdaworks.redis.RedisException;
-import com.lambdaworks.redis.RedisFuture;
-import com.lambdaworks.redis.RedisURI;
-import com.lambdaworks.redis.ScanArgs;
-import com.lambdaworks.redis.ScoredValue;
-import com.lambdaworks.redis.ScoredValueScanCursor;
-import com.lambdaworks.redis.SortArgs;
-import com.lambdaworks.redis.ValueScanCursor;
-import com.lambdaworks.redis.ZStoreArgs;
+import com.lambdaworks.redis.*;
import com.lambdaworks.redis.api.StatefulConnection;
import com.lambdaworks.redis.api.StatefulRedisConnection;
import com.lambdaworks.redis.api.async.RedisAsyncCommands;
@@ -101,20 +66,7 @@ import com.lambdaworks.redis.cluster.api.async.RedisClusterAsyncCommands;
import com.lambdaworks.redis.cluster.api.sync.RedisClusterCommands;
import com.lambdaworks.redis.codec.ByteArrayCodec;
import com.lambdaworks.redis.codec.RedisCodec;
-import com.lambdaworks.redis.output.BooleanOutput;
-import com.lambdaworks.redis.output.ByteArrayOutput;
-import com.lambdaworks.redis.output.CommandOutput;
-import com.lambdaworks.redis.output.DateOutput;
-import com.lambdaworks.redis.output.DoubleOutput;
-import com.lambdaworks.redis.output.IntegerOutput;
-import com.lambdaworks.redis.output.KeyListOutput;
-import com.lambdaworks.redis.output.KeyValueOutput;
-import com.lambdaworks.redis.output.MapOutput;
-import com.lambdaworks.redis.output.MultiOutput;
-import com.lambdaworks.redis.output.StatusOutput;
-import com.lambdaworks.redis.output.ValueListOutput;
-import com.lambdaworks.redis.output.ValueOutput;
-import com.lambdaworks.redis.output.ValueSetOutput;
+import com.lambdaworks.redis.output.*;
import com.lambdaworks.redis.protocol.Command;
import com.lambdaworks.redis.protocol.CommandArgs;
import com.lambdaworks.redis.protocol.CommandType;
@@ -859,12 +811,18 @@ public class LettuceConnection extends AbstractRedisConnection {
isMulti = false;
try {
if (isPipelined()) {
- pipeline(new LettuceResult(((RedisAsyncCommands) getAsyncDedicatedConnection()).exec(),
- new LettuceTransactionResultConverter(new LinkedList>(txResults),
- LettuceConverters.exceptionConverter())));
+ RedisFuture exec = ((RedisAsyncCommands) getAsyncDedicatedConnection()).exec();
+
+ LettuceTransactionResultConverter resultConverter = new LettuceTransactionResultConverter(
+ new LinkedList>(txResults), LettuceConverters.exceptionConverter());
+
+ pipeline(new LettuceResult(exec,
+ source -> resultConverter.convert(LettuceConverters.transactionResultUnwrapper().convert(source))));
return null;
}
- List