diff --git a/.gitignore b/.gitignore
index 0f61eb300..0761c3396 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,3 +10,5 @@
/*.cmd
nb-configuration.xml
+
+nbactions-unit-test.xml
diff --git a/.travis.yml b/.travis.yml
index c6dad00aa..4e4e6554a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -20,9 +20,189 @@ jdk:
- oraclejdk8
env:
matrix:
- - REDIS_VERSION=3.0.7
- - REDIS_VERSION=2.8.24
- - REDIS_VERSION=3.2.0-rc3
+ # Current
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.ConcurrentRedissonSortedSetTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedisClientTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonAtomicDoubleTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonAtomicLongReactiveTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonAtomicLongTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonBatchTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonBitSetReactiveTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonBitSetTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonBlockingDequeTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonBlockingQueueReactiveTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonBlockingQueueTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonBloomFilterTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonBucketReactiveTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonBucketTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonBucketsTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonCodecTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonConcurrentMapTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonCountDownLatchConcurrentTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonCountDownLatchTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonDequeReactiveTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonDequeTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonGeoTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonHyperLogLogReactiveTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonHyperLogLogTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonKeysReactiveTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonKeysTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonLexSortedSetReactiveTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonLexSortedSetTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonListMultimapCacheTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonListMultimapTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonListReactiveTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonListTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonLockTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonMapCacheReactiveTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonMapCacheTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonMapReactiveTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonMapTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonMultiLockTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonQueueReactiveTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonQueueTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonReadWriteLockTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonRemoteServiceTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonScoredSortedSetReactiveTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonScoredSortedSetTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonScriptReactiveTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonScriptTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonSemaphoreTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonSetCacheReactiveTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonSetCacheTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonSetMultimapCacheTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonSetMultimapTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonSetReactiveTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonSetTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonSortedSetTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonTopicPatternTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonTopicTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.RedissonTwoLockedThread
+# - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.TimeoutTest
+ - REDIS_VERSION=3.2.0 REDISSON_TEST=org.redisson.spring.cache.RedissonSpringCacheTest
+ # Legacy
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.ConcurrentRedissonSortedSetTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedisClientTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonAtomicDoubleTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonAtomicLongReactiveTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonAtomicLongTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonBatchTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonBitSetReactiveTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonBitSetTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonBlockingDequeTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonBlockingQueueReactiveTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonBlockingQueueTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonBloomFilterTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonBucketReactiveTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonBucketTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonBucketsTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonCodecTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonConcurrentMapTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonCountDownLatchConcurrentTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonCountDownLatchTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonDequeReactiveTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonDequeTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonGeoTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonHyperLogLogReactiveTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonHyperLogLogTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonKeysReactiveTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonKeysTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonLexSortedSetReactiveTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonLexSortedSetTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonListMultimapCacheTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonListMultimapTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonListReactiveTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonListTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonLockTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonMapCacheReactiveTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonMapCacheTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonMapReactiveTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonMapTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonMultiLockTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonQueueReactiveTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonQueueTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonReadWriteLockTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonRemoteServiceTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonScoredSortedSetReactiveTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonScoredSortedSetTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonScriptReactiveTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonScriptTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonSemaphoreTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonSetCacheReactiveTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonSetCacheTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonSetMultimapCacheTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonSetMultimapTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonSetReactiveTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonSetTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonSortedSetTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonTopicPatternTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonTopicTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.RedissonTwoLockedThread
+# - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.TimeoutTest
+ - REDIS_VERSION=3.0.7 REDISSON_TEST=org.redisson.spring.cache.RedissonSpringCacheTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.ConcurrentRedissonSortedSetTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedisClientTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonAtomicDoubleTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonAtomicLongReactiveTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonAtomicLongTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonBatchTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonBitSetReactiveTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonBitSetTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonBlockingDequeTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonBlockingQueueReactiveTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonBlockingQueueTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonBloomFilterTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonBucketReactiveTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonBucketTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonBucketsTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonCodecTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonConcurrentMapTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonCountDownLatchConcurrentTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonCountDownLatchTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonDequeReactiveTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonDequeTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonGeoTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonHyperLogLogReactiveTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonHyperLogLogTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonKeysReactiveTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonKeysTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonLexSortedSetReactiveTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonLexSortedSetTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonListMultimapCacheTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonListMultimapTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonListReactiveTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonListTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonLockTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonMapCacheReactiveTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonMapCacheTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonMapReactiveTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonMapTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonMultiLockTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonQueueReactiveTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonQueueTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonReadWriteLockTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonRemoteServiceTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonScoredSortedSetReactiveTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonScoredSortedSetTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonScriptReactiveTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonScriptTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonSemaphoreTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonSetCacheReactiveTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonSetCacheTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonSetMultimapCacheTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonSetMultimapTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonSetReactiveTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonSetTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonSortedSetTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonTopicPatternTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonTopicTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.RedissonTwoLockedThread
+# - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.TimeoutTest
+ - REDIS_VERSION=2.8.24 REDISSON_TEST=org.redisson.spring.cache.RedissonSpringCacheTest
+ # Unstable
cache:
directories:
- $HOME/.m2
@@ -37,4 +217,5 @@ before_script:
- $REDIS_BIN/redis-cli PING
- export REDIS_VERSION="$(redis-cli INFO SERVER | sed -n 2p)"
- echo $REDIS_VERSION
-script: mvn -DargLine="-DredisBinary=$REDIS_BIN/redis-server -DtravisEnv=true" -Punit-test -Ptravis clean verify
+ - redis-cli SHUTDOWN NOSAVE
+script: mvn -Dtest=$REDISSON_TEST -Dsurefire.rerunFailingTestsCount=5 -DargLine="-Xmx2g -DredisBinary=$REDIS_BIN/redis-server -DtravisEnv=true" -Punit-test clean test -e -X
diff --git a/pom.xml b/pom.xml
index 974c60071..eb52323e7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -352,6 +352,14 @@
org.apache.maven.plugins
maven-surefire-plugin
2.19.1
+
+
+
+ listener
+ org.redisson.RedissonTestRunListener
+
+
+
diff --git a/src/main/java/org/redisson/client/RedisClient.java b/src/main/java/org/redisson/client/RedisClient.java
index 32e5445aa..b22ac2512 100644
--- a/src/main/java/org/redisson/client/RedisClient.java
+++ b/src/main/java/org/redisson/client/RedisClient.java
@@ -37,9 +37,12 @@ import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.SocketChannel;
import io.netty.channel.socket.nio.NioSocketChannel;
import io.netty.util.concurrent.Future;
+import io.netty.util.concurrent.GenericFutureListener;
import io.netty.util.concurrent.GlobalEventExecutor;
import io.netty.util.concurrent.ImmediateEventExecutor;
import io.netty.util.concurrent.Promise;
+import java.util.Map;
+import org.redisson.client.protocol.RedisCommands;
public class RedisClient {
@@ -150,6 +153,37 @@ public class RedisClient {
return channels.close();
}
+ /**
+ * Execute INFO SERVER operation.
+ *
+ * @return Map extracted from each response line splitting by ':' symbol
+ */
+ public Map serverInfo() {
+ try {
+ return serverInfoAsync().sync().get();
+ } catch (Exception e) {
+ throw new RedisConnectionException("Unable to retrieve server into from: " + addr, e);
+ }
+ }
+
+ /**
+ * Asynchronously execute INFO SERVER operation.
+ *
+ * @return A future for a map extracted from each response line splitting by
+ * ':' symbol
+ */
+ public Future