diff --git a/build.gradle b/build.gradle
index 7baab7a62..07aa953fa 100644
--- a/build.gradle
+++ b/build.gradle
@@ -32,7 +32,7 @@ dependencies {
compile "org.slf4j:jcl-over-slf4j:$slf4jVersion"
testRuntime "log4j:log4j:$log4jVersion"
testRuntime "org.slf4j:slf4j-log4j12:$slf4jVersion"
-
+
// Spring Framework
compile("org.springframework:spring-core:$springVersion") {
exclude module: "commons-logging"
@@ -44,9 +44,10 @@ dependencies {
// Redis Drivers
compile "redis.clients:jedis:$jedisVersion"
compile("com.github.spullara.redis:client:$srpVersion", optional)
- compile("org.jredis:jredis-anthonylauzon:$jredisVersion", optional)
+ compile("org.jredis:jredis-core-api:$jredisVersion", optional)
+ compile("org.jredis:jredis-core-ri:$jredisVersion", optional)
compile("com.lambdaworks:lettuce:$lettuceVersion", optional)
-
+
// Mappers
compile("org.codehaus.jackson:jackson-mapper-asl:$jacksonVersion", optional)
compile("commons-beanutils:commons-beanutils-core:1.8.3", optional)
@@ -60,13 +61,13 @@ dependencies {
}
sourceCompatibility = 1.5
-targetCompatibility = 1.5
+targetCompatibility = 1.5
javadoc {
ext.srcDir = file("${projectDir}/docs/src/api")
destinationDir = file("${buildDir}/api")
ext.tmpDir = file("${buildDir}/api-work")
-
+
configure(options) {
stylesheetFile = file("${srcDir}/spring-javadoc.css")
overview = "${srcDir}/overview.html"
@@ -77,16 +78,16 @@ javadoc {
groups = [
'Spring Data Redis Support' : ['org.springframework.data.redis*'],
]
-
+
links = [
"http://static.springframework.org/spring/docs/3.1.x/javadoc-api",
"http://download.oracle.com/javase/6/docs/api",
"http://jackson.codehaus.org/1.8.2/javadoc"
]
-
+
exclude "org/springframework/data/redis/config/**"
}
-
+
title = "${rootProject.description} ${version} API"
}
@@ -149,7 +150,7 @@ task schemaZip(type: Zip) {
description = "Builds -${classifier} archive containing all XSDs for deployment"
def Properties schemas = new Properties();
-
+
sourceSets.main.resources.find {
it.path.endsWith('META-INF' + File.separator + 'spring.schemas')
}?.withInputStream { schemas.load(it) }
@@ -162,7 +163,7 @@ task schemaZip(type: Zip) {
it.path.replace('\\', '/').endsWith(schemas.get(key))
}
assert xsdFile != null
-
+
into (shortName) {
from xsdFile.path
rename { String fileName -> alias }
diff --git a/docs/src/reference/docbook/reference/redis.xml b/docs/src/reference/docbook/reference/redis.xml
index e250815bb..7c19e705e 100644
--- a/docs/src/reference/docbook/reference/redis.xml
+++ b/docs/src/reference/docbook/reference/redis.xml
@@ -120,8 +120,6 @@
JRedis is another popular, open-source connector supported by Spring Data Redis through the
org.springframework.data.redis.connection.jredis package.
- Since JRedis itself did not support Redis 2.x commands at the time of SDR's first release, Spring Data Redis uses a fork available
- here.
A typical JRedis configuration can looks like this:
@@ -138,13 +136,6 @@
As one can note, the configuration is quite similar to the Jedis one.
- Currently, JRedis does not have support for binary keys. This forces the JredisConnection to perform encoding internally
- (through base64 schema). In practice, this means it's safe to read/write arbitrary data however
- the Redis key stored values will differ from the decoded ones, even in the simplest cases, since everything (no matter the format) is encoded. This will not be
- the case for Redis values.
- This issue is currently being addressed in the JRedis project and once fixed, will be incorporated by Spring Data Redis.
-
-
diff --git a/gradle.properties b/gradle.properties
index e2db81a9f..4ee05313d 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,6 +1,6 @@
slf4jVersion=1.6.6
junitVersion=4.8.1
-jredisVersion=03122010
+jredisVersion=06052013
jedisVersion=2.1.0
springVersion=3.1.4.RELEASE
log4jVersion=1.2.17
diff --git a/src/main/java/org/springframework/data/redis/connection/jredis/JredisConnection.java b/src/main/java/org/springframework/data/redis/connection/jredis/JredisConnection.java
index 8e7a2d2fd..e65ffff6c 100644
--- a/src/main/java/org/springframework/data/redis/connection/jredis/JredisConnection.java
+++ b/src/main/java/org/springframework/data/redis/connection/jredis/JredisConnection.java
@@ -31,7 +31,6 @@ import org.jredis.Query.Support;
import org.jredis.RedisException;
import org.jredis.Sort;
import org.jredis.protocol.Command;
-import org.jredis.ri.alphazero.JRedisService;
import org.jredis.ri.alphazero.JRedisSupport;
import org.springframework.dao.DataAccessException;
import org.springframework.data.redis.RedisSystemException;
@@ -48,14 +47,17 @@ import org.springframework.util.ReflectionUtils;
* {@code RedisConnection} implementation on top of JRedis library.
*
* @author Costin Leau
+ * @author Jennifer Hickey
*/
public class JredisConnection implements RedisConnection {
private static final Method SERVICE_REQUEST;
private final JRedis jredis;
- private final boolean isPool;
+ private final JredisPool pool;
private boolean isClosed = false;
+ /** flag indicating whether the connection needs to be dropped or not */
+ private boolean broken = false;
static {
SERVICE_REQUEST = ReflectionUtils.findMethod(JRedisSupport.class, "serviceRequest", Command.class,
@@ -69,13 +71,17 @@ public class JredisConnection implements RedisConnection {
* @param jredis JRedis connection
*/
public JredisConnection(JRedis jredis) {
+ this(jredis, null);
+ }
+
+ public JredisConnection(JRedis jredis, JredisPool pool) {
Assert.notNull(jredis, "a not-null instance required");
this.jredis = jredis;
- // required since Jredis combines the pool and the connection under the same interface/class
- this.isPool = (jredis instanceof JRedisService);
+ this.pool = pool;
}
protected DataAccessException convertJredisAccessException(Exception ex) {
+ broken = true;
if (ex instanceof RedisException) {
return JredisUtils.convertJredisAccessException((RedisException) ex);
}
@@ -105,17 +111,22 @@ public class JredisConnection implements RedisConnection {
public void close() throws RedisSystemException {
isClosed = true;
- // don't actually close the connection
- // if a pool is used
- if (!isPool) {
- try {
- jredis.quit();
- } catch (Exception ex) {
- throw convertJredisAccessException(ex);
+ if (pool != null) {
+ if (!broken) {
+ pool.returnResource(jredis);
+ }else {
+ pool.returnBrokenResource(jredis);
}
+ return;
}
- }
+ try {
+ jredis.quit();
+ } catch (Exception ex) {
+ throw convertJredisAccessException(ex);
+ }
+
+ }
public JRedis getNativeConnection() {
return jredis;
@@ -148,7 +159,7 @@ public class JredisConnection implements RedisConnection {
public List sort(byte[] key, SortParameters params) {
- Sort sort = jredis.sort(JredisUtils.decode(key));
+ Sort sort = jredis.sort(key);
JredisUtils.applySortingParams(sort, params, null);
try {
return sort.exec();
@@ -159,7 +170,7 @@ public class JredisConnection implements RedisConnection {
public Long sort(byte[] key, SortParameters params, byte[] storeKey) {
- Sort sort = jredis.sort(JredisUtils.decode(key));
+ Sort sort = jredis.sort(key);
JredisUtils.applySortingParams(sort, params, storeKey);
try {
return Support.unpackValue(sort.exec());
@@ -171,7 +182,7 @@ public class JredisConnection implements RedisConnection {
public Long dbSize() {
try {
- return jredis.dbsize();
+ return (Long)jredis.dbsize();
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -258,7 +269,7 @@ public class JredisConnection implements RedisConnection {
public Long lastSave() {
try {
- return jredis.lastsave();
+ return (Long)jredis.lastsave();
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -282,7 +293,7 @@ public class JredisConnection implements RedisConnection {
public Long del(byte[]... keys) {
try {
- return jredis.del(JredisUtils.decodeMultiple(keys));
+ return jredis.del(keys);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -305,7 +316,7 @@ public class JredisConnection implements RedisConnection {
public Boolean exists(byte[] key) {
try {
- return jredis.exists(JredisUtils.decode(key));
+ return jredis.exists(key);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -314,7 +325,7 @@ public class JredisConnection implements RedisConnection {
public Boolean expire(byte[] key, long seconds) {
try {
- return jredis.expire(JredisUtils.decode(key), (int) seconds);
+ return jredis.expire(key, (int) seconds);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -323,7 +334,7 @@ public class JredisConnection implements RedisConnection {
public Boolean expireAt(byte[] key, long unixTime) {
try {
- return jredis.expireat(JredisUtils.decode(key), unixTime);
+ return jredis.expireat(key, unixTime);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -332,7 +343,7 @@ public class JredisConnection implements RedisConnection {
public Set keys(byte[] pattern) {
try {
- return JredisUtils.convertToSet(jredis.keys(JredisUtils.decode(pattern)));
+ return new LinkedHashSet(jredis.keys(pattern));
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -352,7 +363,7 @@ public class JredisConnection implements RedisConnection {
public Boolean move(byte[] key, int dbIndex) {
try {
- return jredis.move(JredisUtils.decode(key), dbIndex);
+ return jredis.move(key, dbIndex);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -361,7 +372,7 @@ public class JredisConnection implements RedisConnection {
public byte[] randomKey() {
try {
- return JredisUtils.encode(jredis.randomkey());
+ return jredis.randomkey();
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -370,7 +381,7 @@ public class JredisConnection implements RedisConnection {
public void rename(byte[] oldName, byte[] newName) {
try {
- jredis.rename(JredisUtils.decode(oldName), JredisUtils.decode(newName));
+ jredis.rename(oldName, newName);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -379,7 +390,7 @@ public class JredisConnection implements RedisConnection {
public Boolean renameNX(byte[] oldName, byte[] newName) {
try {
- return jredis.renamenx(JredisUtils.decode(oldName), JredisUtils.decode(newName));
+ return jredis.renamenx(oldName, newName);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -393,7 +404,7 @@ public class JredisConnection implements RedisConnection {
public Long ttl(byte[] key) {
try {
- return jredis.ttl(JredisUtils.decode(key));
+ return jredis.ttl(key);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -402,7 +413,7 @@ public class JredisConnection implements RedisConnection {
public DataType type(byte[] key) {
try {
- return JredisUtils.convertDataType(jredis.type(JredisUtils.decode(key)));
+ return JredisUtils.convertDataType(jredis.type(key));
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -425,7 +436,7 @@ public class JredisConnection implements RedisConnection {
public byte[] get(byte[] key) {
try {
- return jredis.get(JredisUtils.decode(key));
+ return jredis.get(key);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -434,7 +445,7 @@ public class JredisConnection implements RedisConnection {
public void set(byte[] key, byte[] value) {
try {
- jredis.set(JredisUtils.decode(key), value);
+ jredis.set(key, value);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -443,7 +454,7 @@ public class JredisConnection implements RedisConnection {
public byte[] getSet(byte[] key, byte[] value) {
try {
- return jredis.getset(JredisUtils.decode(key), value);
+ return jredis.getset(key, value);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -452,7 +463,7 @@ public class JredisConnection implements RedisConnection {
public Long append(byte[] key, byte[] value) {
try {
- return jredis.append(JredisUtils.decode(key), value);
+ return jredis.append(key, value);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -461,7 +472,7 @@ public class JredisConnection implements RedisConnection {
public List mGet(byte[]... keys) {
try {
- return jredis.mget(JredisUtils.decodeMultiple(keys));
+ return jredis.mget(keys);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -470,7 +481,7 @@ public class JredisConnection implements RedisConnection {
public void mSet(Map tuple) {
try {
- jredis.mset(JredisUtils.decodeMap(tuple));
+ jredis.mset(tuple);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -479,7 +490,7 @@ public class JredisConnection implements RedisConnection {
public void mSetNX(Map tuple) {
try {
- jredis.msetnx(JredisUtils.decodeMap(tuple));
+ jredis.msetnx(tuple);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -493,7 +504,7 @@ public class JredisConnection implements RedisConnection {
public Boolean setNX(byte[] key, byte[] value) {
try {
- return jredis.setnx(JredisUtils.decode(key), value);
+ return jredis.setnx(key, value);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -502,7 +513,7 @@ public class JredisConnection implements RedisConnection {
public byte[] getRange(byte[] key, long start, long end) {
try {
- return jredis.substr(JredisUtils.decode(key), start, end);
+ return jredis.substr(key, start, end);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -511,7 +522,7 @@ public class JredisConnection implements RedisConnection {
public Long decr(byte[] key) {
try {
- return jredis.decr(JredisUtils.decode(key));
+ return jredis.decr(key);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -520,7 +531,7 @@ public class JredisConnection implements RedisConnection {
public Long decrBy(byte[] key, long value) {
try {
- return jredis.decrby(JredisUtils.decode(key), (int) value);
+ return jredis.decrby(key, (int) value);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -529,7 +540,7 @@ public class JredisConnection implements RedisConnection {
public Long incr(byte[] key) {
try {
- return jredis.incr(JredisUtils.decode(key));
+ return jredis.incr(key);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -538,7 +549,7 @@ public class JredisConnection implements RedisConnection {
public Long incrBy(byte[] key, long value) {
try {
- return jredis.incrby(JredisUtils.decode(key), (int) value);
+ return jredis.incrby(key, (int) value);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -546,12 +557,20 @@ public class JredisConnection implements RedisConnection {
public Boolean getBit(byte[] key, long offset) {
- throw new UnsupportedOperationException();
+ try {
+ return jredis.getbit(key, (int)offset);
+ } catch(Exception ex) {
+ throw convertJredisAccessException(ex);
+ }
}
public void setBit(byte[] key, long offset, boolean value) {
- throw new UnsupportedOperationException();
+ try {
+ jredis.setbit(key, (int) offset, value);
+ } catch (Exception ex) {
+ throw convertJredisAccessException(ex);
+ }
}
@@ -581,7 +600,7 @@ public class JredisConnection implements RedisConnection {
public byte[] lIndex(byte[] key, long index) {
try {
- return jredis.lindex(JredisUtils.decode(key), index);
+ return jredis.lindex(key, index);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -590,7 +609,7 @@ public class JredisConnection implements RedisConnection {
public Long lLen(byte[] key) {
try {
- return jredis.llen(JredisUtils.decode(key));
+ return jredis.llen(key);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -599,7 +618,7 @@ public class JredisConnection implements RedisConnection {
public byte[] lPop(byte[] key) {
try {
- return jredis.lpop(JredisUtils.decode(key));
+ return jredis.lpop(key);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -608,7 +627,7 @@ public class JredisConnection implements RedisConnection {
public Long lPush(byte[] key, byte[] value) {
try {
- jredis.lpush(JredisUtils.decode(key), value);
+ jredis.lpush(key, value);
return null;
} catch (Exception ex) {
throw convertJredisAccessException(ex);
@@ -618,7 +637,7 @@ public class JredisConnection implements RedisConnection {
public List lRange(byte[] key, long start, long end) {
try {
- List lrange = jredis.lrange(JredisUtils.decode(key), start, end);
+ List lrange = jredis.lrange(key, start, end);
return lrange;
} catch (Exception ex) {
@@ -629,7 +648,7 @@ public class JredisConnection implements RedisConnection {
public Long lRem(byte[] key, long count, byte[] value) {
try {
- return jredis.lrem(JredisUtils.decode(key), value, (int) count);
+ return jredis.lrem(key, value, (int) count);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -638,7 +657,7 @@ public class JredisConnection implements RedisConnection {
public void lSet(byte[] key, long index, byte[] value) {
try {
- jredis.lset(JredisUtils.decode(key), index, value);
+ jredis.lset(key, index, value);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -647,7 +666,7 @@ public class JredisConnection implements RedisConnection {
public void lTrim(byte[] key, long start, long end) {
try {
- jredis.ltrim(JredisUtils.decode(key), start, end);
+ jredis.ltrim(key, start, end);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -656,7 +675,7 @@ public class JredisConnection implements RedisConnection {
public byte[] rPop(byte[] key) {
try {
- return jredis.rpop(JredisUtils.decode(key));
+ return jredis.rpop(key);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -665,7 +684,7 @@ public class JredisConnection implements RedisConnection {
public byte[] rPopLPush(byte[] srcKey, byte[] dstKey) {
try {
- return jredis.rpoplpush(JredisUtils.decode(srcKey), JredisUtils.decode(dstKey));
+ return jredis.rpoplpush(srcKey, dstKey);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -674,7 +693,7 @@ public class JredisConnection implements RedisConnection {
public Long rPush(byte[] key, byte[] value) {
try {
- jredis.rpush(JredisUtils.decode(key), value);
+ jredis.rpush(key, value);
return null;
} catch (Exception ex) {
throw convertJredisAccessException(ex);
@@ -709,7 +728,7 @@ public class JredisConnection implements RedisConnection {
public Boolean sAdd(byte[] key, byte[] value) {
try {
- return jredis.sadd(JredisUtils.decode(key), value);
+ return jredis.sadd(key, value);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -718,7 +737,7 @@ public class JredisConnection implements RedisConnection {
public Long sCard(byte[] key) {
try {
- return jredis.scard(JredisUtils.decode(key));
+ return jredis.scard(key);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -726,8 +745,8 @@ public class JredisConnection implements RedisConnection {
public Set sDiff(byte[]... keys) {
- String destKey = JredisUtils.decode(keys[0]);
- String[] sets = JredisUtils.decodeMultiple(Arrays.copyOfRange(keys, 1, keys.length));
+ byte[] destKey = keys[0];
+ byte[][] sets = Arrays.copyOfRange(keys, 1, keys.length);
try {
List result = jredis.sdiff(destKey, sets);
@@ -739,11 +758,8 @@ public class JredisConnection implements RedisConnection {
public Long sDiffStore(byte[] destKey, byte[]... keys) {
- String destSet = JredisUtils.decode(destKey);
- String[] sets = JredisUtils.decodeMultiple(keys);
-
try {
- jredis.sdiffstore(destSet, sets);
+ jredis.sdiffstore(destKey, keys);
return Long.valueOf(-1);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
@@ -752,8 +768,8 @@ public class JredisConnection implements RedisConnection {
public Set sInter(byte[]... keys) {
- String set1 = JredisUtils.decode(keys[0]);
- String[] sets = JredisUtils.decodeMultiple(Arrays.copyOfRange(keys, 1, keys.length));
+ byte[] set1 = keys[0];
+ byte[][] sets = Arrays.copyOfRange(keys, 1, keys.length);
try {
List result = jredis.sinter(set1, sets);
@@ -765,11 +781,8 @@ public class JredisConnection implements RedisConnection {
public Long sInterStore(byte[] destKey, byte[]... keys) {
- String destSet = JredisUtils.decode(destKey);
- String[] sets = JredisUtils.decodeMultiple(keys);
-
try {
- jredis.sinterstore(destSet, sets);
+ jredis.sinterstore(destKey, keys);
return Long.valueOf(-1);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
@@ -779,7 +792,7 @@ public class JredisConnection implements RedisConnection {
public Boolean sIsMember(byte[] key, byte[] value) {
try {
- return jredis.sismember(JredisUtils.decode(key), value);
+ return jredis.sismember(key, value);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -788,7 +801,7 @@ public class JredisConnection implements RedisConnection {
public Set sMembers(byte[] key) {
try {
- return new LinkedHashSet(jredis.smembers(JredisUtils.decode(key)));
+ return new LinkedHashSet(jredis.smembers(key));
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -797,7 +810,7 @@ public class JredisConnection implements RedisConnection {
public Boolean sMove(byte[] srcKey, byte[] destKey, byte[] value) {
try {
- return jredis.smove(JredisUtils.decode(srcKey), JredisUtils.decode(destKey), value);
+ return jredis.smove(srcKey, destKey, value);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -806,7 +819,7 @@ public class JredisConnection implements RedisConnection {
public byte[] sPop(byte[] key) {
try {
- return jredis.spop(JredisUtils.decode(key));
+ return jredis.spop(key);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -815,7 +828,7 @@ public class JredisConnection implements RedisConnection {
public byte[] sRandMember(byte[] key) {
try {
- return jredis.srandmember(JredisUtils.decode(key));
+ return jredis.srandmember(key);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -824,7 +837,7 @@ public class JredisConnection implements RedisConnection {
public Boolean sRem(byte[] key, byte[] value) {
try {
- return jredis.srem(JredisUtils.decode(key), value);
+ return jredis.srem(key, value);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -832,8 +845,8 @@ public class JredisConnection implements RedisConnection {
public Set sUnion(byte[]... keys) {
- String set1 = JredisUtils.decode(keys[0]);
- String[] sets = JredisUtils.decodeMultiple(Arrays.copyOfRange(keys, 1, keys.length));
+ byte[] set1 = keys[0];
+ byte[][] sets = Arrays.copyOfRange(keys, 1, keys.length);
try {
return new LinkedHashSet(jredis.sunion(set1, sets));
@@ -844,11 +857,8 @@ public class JredisConnection implements RedisConnection {
public Long sUnionStore(byte[] destKey, byte[]... keys) {
- String destSet = JredisUtils.decode(destKey);
- String[] sets = JredisUtils.decodeMultiple(keys);
-
try {
- jredis.sunionstore(destSet, sets);
+ jredis.sunionstore(destKey, keys);
return Long.valueOf(-1);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
@@ -863,7 +873,7 @@ public class JredisConnection implements RedisConnection {
public Boolean zAdd(byte[] key, double score, byte[] value) {
try {
- return jredis.zadd(JredisUtils.decode(key), score, value);
+ return jredis.zadd(key, score, value);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -872,7 +882,7 @@ public class JredisConnection implements RedisConnection {
public Long zCard(byte[] key) {
try {
- return jredis.zcard(JredisUtils.decode(key));
+ return jredis.zcard(key);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -881,7 +891,7 @@ public class JredisConnection implements RedisConnection {
public Long zCount(byte[] key, double min, double max) {
try {
- return jredis.zcount(JredisUtils.decode(key), min, max);
+ return jredis.zcount(key, min, max);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -890,7 +900,7 @@ public class JredisConnection implements RedisConnection {
public Double zIncrBy(byte[] key, double increment, byte[] value) {
try {
- return jredis.zincrby(JredisUtils.decode(key), increment, value);
+ return jredis.zincrby(key, increment, value);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -909,7 +919,7 @@ public class JredisConnection implements RedisConnection {
public Set zRange(byte[] key, long start, long end) {
try {
- return new LinkedHashSet(jredis.zrange(JredisUtils.decode(key), start, end));
+ return new LinkedHashSet(jredis.zrange(key, start, end));
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -923,7 +933,7 @@ public class JredisConnection implements RedisConnection {
public Set zRangeByScore(byte[] key, double min, double max) {
try {
- return new LinkedHashSet(jredis.zrangebyscore(JredisUtils.decode(key), min, max));
+ return new LinkedHashSet(jredis.zrangebyscore(key, min, max));
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -967,7 +977,7 @@ public class JredisConnection implements RedisConnection {
public Long zRank(byte[] key, byte[] value) {
try {
- return jredis.zrank(JredisUtils.decode(key), value);
+ return jredis.zrank(key, value);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -976,7 +986,7 @@ public class JredisConnection implements RedisConnection {
public Boolean zRem(byte[] key, byte[] value) {
try {
- return jredis.zrem(JredisUtils.decode(key), value);
+ return jredis.zrem(key, value);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -985,7 +995,7 @@ public class JredisConnection implements RedisConnection {
public Long zRemRange(byte[] key, long start, long end) {
try {
- return jredis.zremrangebyrank(JredisUtils.decode(key), start, end);
+ return jredis.zremrangebyrank(key, start, end);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -994,7 +1004,7 @@ public class JredisConnection implements RedisConnection {
public Long zRemRangeByScore(byte[] key, double min, double max) {
try {
- return jredis.zremrangebyscore(JredisUtils.decode(key), min, max);
+ return jredis.zremrangebyscore(key, min, max);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -1003,7 +1013,7 @@ public class JredisConnection implements RedisConnection {
public Set zRevRange(byte[] key, long start, long end) {
try {
- return new LinkedHashSet(jredis.zrevrange(JredisUtils.decode(key), start, end));
+ return new LinkedHashSet(jredis.zrevrange(key, start, end));
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -1017,7 +1027,7 @@ public class JredisConnection implements RedisConnection {
public Long zRevRank(byte[] key, byte[] value) {
try {
- return jredis.zrevrank(JredisUtils.decode(key), value);
+ return jredis.zrevrank(key, value);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -1026,7 +1036,7 @@ public class JredisConnection implements RedisConnection {
public Double zScore(byte[] key, byte[] value) {
try {
- return jredis.zscore(JredisUtils.decode(key), value);
+ return jredis.zscore(key, value);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -1050,7 +1060,7 @@ public class JredisConnection implements RedisConnection {
public Boolean hDel(byte[] key, byte[] field) {
try {
- return jredis.hdel(JredisUtils.decode(key), JredisUtils.decode(field));
+ return jredis.hdel(key, field);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -1059,7 +1069,7 @@ public class JredisConnection implements RedisConnection {
public Boolean hExists(byte[] key, byte[] field) {
try {
- return jredis.hexists(JredisUtils.decode(key), JredisUtils.decode(field));
+ return jredis.hexists(key, field);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -1068,7 +1078,7 @@ public class JredisConnection implements RedisConnection {
public byte[] hGet(byte[] key, byte[] field) {
try {
- return jredis.hget(JredisUtils.decode(key), JredisUtils.decode(field));
+ return jredis.hget(key, field);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -1077,7 +1087,7 @@ public class JredisConnection implements RedisConnection {
public Map hGetAll(byte[] key) {
try {
- return JredisUtils.encodeMap(jredis.hgetall(JredisUtils.decode(key)));
+ return jredis.hgetall(key);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -1091,7 +1101,7 @@ public class JredisConnection implements RedisConnection {
public Set hKeys(byte[] key) {
try {
- return new LinkedHashSet(JredisUtils.convertToSet(jredis.hkeys(JredisUtils.decode(key))));
+ return new LinkedHashSet(jredis.hkeys(key));
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -1100,7 +1110,7 @@ public class JredisConnection implements RedisConnection {
public Long hLen(byte[] key) {
try {
- return jredis.hlen(JredisUtils.decode(key));
+ return jredis.hlen(key);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -1119,7 +1129,7 @@ public class JredisConnection implements RedisConnection {
public Boolean hSet(byte[] key, byte[] field, byte[] value) {
try {
- return jredis.hset(JredisUtils.decode(key), JredisUtils.decode(field), value);
+ return jredis.hset(key, field, value);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
@@ -1133,7 +1143,7 @@ public class JredisConnection implements RedisConnection {
public List hVals(byte[] key) {
try {
- return jredis.hvals(JredisUtils.decode(key));
+ return jredis.hvals(key);
} catch (Exception ex) {
throw convertJredisAccessException(ex);
}
diff --git a/src/main/java/org/springframework/data/redis/connection/jredis/JredisConnectionFactory.java b/src/main/java/org/springframework/data/redis/connection/jredis/JredisConnectionFactory.java
index 787293fc6..bf470a934 100644
--- a/src/main/java/org/springframework/data/redis/connection/jredis/JredisConnectionFactory.java
+++ b/src/main/java/org/springframework/data/redis/connection/jredis/JredisConnectionFactory.java
@@ -17,10 +17,9 @@ package org.springframework.data.redis.connection.jredis;
import org.jredis.ClientRuntimeException;
import org.jredis.connector.Connection;
-import org.jredis.connector.ConnectionSpec;
import org.jredis.connector.Connection.Socket.Property;
+import org.jredis.connector.ConnectionSpec;
import org.jredis.ri.alphazero.JRedisClient;
-import org.jredis.ri.alphazero.JRedisService;
import org.jredis.ri.alphazero.connection.DefaultConnectionSpec;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
@@ -34,6 +33,7 @@ import org.springframework.util.StringUtils;
* Connection factory using creating JRedis based connections.
*
* @author Costin Leau
+ * @author Jennifer Hickey
*/
public class JredisConnectionFactory implements InitializingBean, DisposableBean, RedisConnectionFactory {
@@ -43,13 +43,8 @@ public class JredisConnectionFactory implements InitializingBean, DisposableBean
private int port = DEFAULT_REDIS_PORT;
private String password = null;
private int timeout;
-
- private boolean usePool = true;
private int dbIndex = DEFAULT_REDIS_DB;
-
- private JRedisService pool = null;
- // taken from JRedis code
- private int poolSize = 5;
+ private JredisPool pool;
private static final int DEFAULT_REDIS_PORT = 6379;
private static final int DEFAULT_REDIS_DB = 0;
@@ -71,10 +66,13 @@ public class JredisConnectionFactory implements InitializingBean, DisposableBean
public JredisConnectionFactory(ConnectionSpec connectionSpec) {
this.connectionSpec = connectionSpec;
}
-
+ public JredisConnectionFactory(JredisPool pool) {
+ this.pool = pool;
+ }
+
public void afterPropertiesSet() {
- if (connectionSpec == null) {
+ if (connectionSpec == null && pool == null) {
Assert.hasText(hostName);
connectionSpec = DefaultConnectionSpec.newSpec(hostName, port, dbIndex, DEFAULT_REDIS_PASSWORD);
connectionSpec.setConnectionFlag(Connection.Flag.RELIABLE, false);
@@ -87,29 +85,25 @@ public class JredisConnectionFactory implements InitializingBean, DisposableBean
connectionSpec.setSocketProperty(Property.SO_TIMEOUT, timeout);
}
}
-
- if (usePool) {
- int size = getPoolSize();
- pool = new JRedisService(connectionSpec, size);
- }
}
-
-
- public void destroy() {
- if (usePool && pool != null) {
- pool.quit();
+ public void destroy() throws Exception {
+ if(pool != null) {
+ pool.destroy();
pool = null;
}
}
-
-
public RedisConnection getConnection() {
- return postProcessConnection(new JredisConnection((usePool ? pool : new JRedisClient(connectionSpec))));
+ JredisConnection connection;
+ if(pool != null) {
+ connection = new JredisConnection(pool.getResource(), pool);
+ }else {
+ connection = new JredisConnection(new JRedisClient(connectionSpec), null);
+ }
+ return postProcessConnection(connection);
}
-
/**
* Post process a newly retrieved connection. Useful for decorating or executing
* initialization commands on a new connection.
@@ -186,44 +180,6 @@ public class JredisConnectionFactory implements InitializingBean, DisposableBean
this.password = password;
}
- /**
- * Indicates the use of a connection pool.
- *
- * @return Returns the use of connection pooling.
- */
- public boolean getUsePool() {
- return usePool;
- }
-
- /**
- * Turns on or off the use of connection pooling.
- *
- * @param usePool The usePool to set.
- */
- public void setUsePool(boolean usePool) {
- this.usePool = usePool;
- }
-
- /**
- * Returns the pool size of this factory.
- *
- * @return Returns the poolSize
- */
- public int getPoolSize() {
- return poolSize;
- }
-
- /**
- * Sets the connection pool size of the underlying factory.
- *
- * @param poolSize The poolSize to set.
- */
- public void setPoolSize(int poolSize) {
- Assert.isTrue(poolSize > 0, "pool size needs to be bigger then zero");
- this.poolSize = poolSize;
- usePool = true;
- }
-
/**
* Returns the index of the database.
*
diff --git a/src/main/java/org/springframework/data/redis/connection/jredis/JredisPool.java b/src/main/java/org/springframework/data/redis/connection/jredis/JredisPool.java
new file mode 100644
index 000000000..ecae162ac
--- /dev/null
+++ b/src/main/java/org/springframework/data/redis/connection/jredis/JredisPool.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2011-2013 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.data.redis.connection.jredis;
+
+import org.jredis.ClientRuntimeException;
+import org.jredis.JRedis;
+
+/**
+ * Pool of {@link JRedis} connection objects.
+ *
+ * @author Jennifer Hickey
+ *
+ */
+public interface JredisPool {
+
+ /**
+ *
+ * @return A {@link JRedis} connection, if available. Throws a
+ * {@link ClientRuntimeException} if a connection cannot be borrowed
+ * from the pool
+ */
+ JRedis getResource();
+
+ /**
+ *
+ * @param resource
+ * A broken {@link JRedis} connection that should be invalidated
+ */
+ void returnBrokenResource(final JRedis resource);
+
+ /**
+ *
+ * @param resource
+ * A {@link JRedis} connection to return to the pool
+ */
+ void returnResource(final JRedis resource);
+
+ /**
+ * Destroys the connection pool
+ */
+ void destroy();
+
+}
diff --git a/src/main/java/org/springframework/data/redis/connection/jredis/JredisUtils.java b/src/main/java/org/springframework/data/redis/connection/jredis/JredisUtils.java
index 224bf37a7..f6cbef95e 100644
--- a/src/main/java/org/springframework/data/redis/connection/jredis/JredisUtils.java
+++ b/src/main/java/org/springframework/data/redis/connection/jredis/JredisUtils.java
@@ -16,28 +16,28 @@
package org.springframework.data.redis.connection.jredis;
-import java.util.Collection;
import java.util.Map;
import java.util.Properties;
-import java.util.Set;
import org.jredis.ClientRuntimeException;
import org.jredis.RedisException;
import org.jredis.RedisType;
import org.jredis.Sort;
+import org.jredis.connector.NotConnectedException;
import org.springframework.dao.DataAccessException;
import org.springframework.dao.InvalidDataAccessApiUsageException;
import org.springframework.dao.InvalidDataAccessResourceUsageException;
+import org.springframework.data.redis.RedisConnectionFailureException;
import org.springframework.data.redis.connection.DataType;
import org.springframework.data.redis.connection.SortParameters;
import org.springframework.data.redis.connection.SortParameters.Order;
import org.springframework.data.redis.connection.SortParameters.Range;
-import org.springframework.data.redis.connection.util.DecodeUtils;
/**
* Helper class featuring methods for JRedis connection handling, providing support for exception translation.
*
* @author Costin Leau
+ * @author Jennifer Hickey
*/
public abstract class JredisUtils {
@@ -58,6 +58,9 @@ public abstract class JredisUtils {
* @return converted exception
*/
public static DataAccessException convertJredisAccessException(ClientRuntimeException ex) {
+ if (ex instanceof NotConnectedException) {
+ return new RedisConnectionFailureException(ex.getMessage(), ex);
+ }
return new InvalidDataAccessResourceUsageException(ex.getMessage(), ex);
}
@@ -80,41 +83,17 @@ public abstract class JredisUtils {
return null;
}
- static String decode(byte[] bytes) {
- return DecodeUtils.decode(bytes);
- }
-
- static byte[] encode(String string) {
- return DecodeUtils.encode(string);
- }
-
- static String[] decodeMultiple(byte[]... bytes) {
- return DecodeUtils.decodeMultiple(bytes);
- }
-
- static Map encodeMap(Map map) {
- return DecodeUtils.encodeMap(map);
- }
-
- static Map decodeMap(Map tuple) {
- return DecodeUtils.decodeMap(tuple);
- }
-
- static Set convertToSet(Collection keys) {
- return DecodeUtils.convertToSet(keys);
- }
-
static Sort applySortingParams(Sort jredisSort, SortParameters params, byte[] storeKey) {
if (params != null) {
byte[] byPattern = params.getByPattern();
if (byPattern != null) {
- jredisSort.BY(decode(byPattern));
+ jredisSort.BY(byPattern);
}
byte[][] getPattern = params.getGetPattern();
if (getPattern != null && getPattern.length > 0) {
for (byte[] bs : getPattern) {
- jredisSort.GET(decode(bs));
+ jredisSort.GET(bs);
}
}
Range limit = params.getLimit();
@@ -132,7 +111,7 @@ public abstract class JredisUtils {
}
if (storeKey != null) {
- jredisSort.STORE(decode(storeKey));
+ jredisSort.STORE(storeKey);
}
diff --git a/src/test/java/org/springframework/data/redis/connection/AbstractConnectionIntegrationTests.java b/src/test/java/org/springframework/data/redis/connection/AbstractConnectionIntegrationTests.java
index dcf2fc5ce..2c01f11a9 100644
--- a/src/test/java/org/springframework/data/redis/connection/AbstractConnectionIntegrationTests.java
+++ b/src/test/java/org/springframework/data/redis/connection/AbstractConnectionIntegrationTests.java
@@ -206,7 +206,6 @@ public abstract class AbstractConnectionIntegrationTests {
@Test
public void testNullKey() throws Exception {
- connection.decr(EMPTY_ARRAY);
try {
connection.decr((String) null);
fail("Decrement should fail with null key");
@@ -230,7 +229,6 @@ public abstract class AbstractConnectionIntegrationTests {
@Test
public void testHashNullKey() throws Exception {
byte[] key = UUID.randomUUID().toString().getBytes();
- connection.hExists(key, EMPTY_ARRAY);
try {
connection.hExists(key, null);
fail("hExists should fail with null key");
diff --git a/src/test/java/org/springframework/data/redis/connection/jredis/JRedisConnectionIntegrationTests.java b/src/test/java/org/springframework/data/redis/connection/jredis/JRedisConnectionIntegrationTests.java
index 193c41f72..cd56b6d24 100644
--- a/src/test/java/org/springframework/data/redis/connection/jredis/JRedisConnectionIntegrationTests.java
+++ b/src/test/java/org/springframework/data/redis/connection/jredis/JRedisConnectionIntegrationTests.java
@@ -17,19 +17,19 @@
package org.springframework.data.redis.connection.jredis;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
import java.util.Arrays;
import org.jredis.protocol.BulkResponse;
import org.junit.After;
-import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.dao.DataAccessException;
+import org.springframework.data.redis.RedisConnectionFailureException;
import org.springframework.data.redis.connection.AbstractConnectionIntegrationTests;
import org.springframework.data.redis.connection.DefaultSortParameters;
-import org.springframework.data.redis.connection.DefaultStringRedisConnection;
import org.springframework.data.redis.connection.SortParameters.Order;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@@ -45,13 +45,6 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@ContextConfiguration
public class JRedisConnectionIntegrationTests extends AbstractConnectionIntegrationTests {
-
- @Before
- public void setUp() {
- byteConnection = connectionFactory.getConnection();
- connection = new DefaultStringRedisConnection(byteConnection);
- }
-
@After
public void tearDown() {
try {
@@ -66,22 +59,6 @@ public class JRedisConnectionIntegrationTests extends AbstractConnectionIntegrat
connection = null;
}
- @Ignore("nulls are encoded to empty strings")
- public void testNullKey() throws Exception {
- }
-
- @Ignore("nulls are encoded to empty strings")
- public void testNullValue() throws Exception {
- }
-
- @Ignore("nulls are encoded to empty strings")
- public void testHashNullKey() throws Exception {
- }
-
- @Ignore("nulls are encoded to empty strings")
- public void testHashNullValue() throws Exception {
- }
-
@Ignore("Pub/Sub not supported")
public void testPubSubWithPatterns() {
}
@@ -90,17 +67,22 @@ public class JRedisConnectionIntegrationTests extends AbstractConnectionIntegrat
public void testPubSubWithNamedChannels() {
}
- @Ignore("DATAREDIS-129 Key search does not work with regex")
- public void testKeys() throws Exception {
+ @Ignore("https://github.com/alphazero/jredis/issues/64 Protocol error: expected '$' got '*' on mset")
+ public void testMSet() {
}
- @Ignore("DATAREDIS-171 JRedis StringIndexOutOfBoundsException in info() method in Redis 2.6")
- public void testInfo() throws Exception {
+ @Ignore("https://github.com/alphazero/jredis/issues/64 Protocol error: expected '$' got '*' on mset")
+ public void testMSetNx() {
}
- @Test(expected = UnsupportedOperationException.class)
- public void testBitSet() throws Exception {
- super.testBitSet();
+ @Test
+ public void testConnectionClosesWhenNotPooled() {
+ connection.close();
+ try {
+ connection.ping();
+ fail("Expected RedisConnectionFailureException trying to use a closed connection");
+ } catch (RedisConnectionFailureException e) {
+ }
}
@Test(expected = UnsupportedOperationException.class)
@@ -273,7 +255,6 @@ public class JRedisConnectionIntegrationTests extends AbstractConnectionIntegrat
super.testZRevRangeByScoreWithScoresOffsetCount();
}
-
// Jredis returns null for rPush
@Test
public void testSort() {
@@ -289,10 +270,9 @@ public class JRedisConnectionIntegrationTests extends AbstractConnectionIntegrat
connection.rPush("sortlist", "foo");
connection.rPush("sortlist", "bar");
connection.rPush("sortlist", "baz");
- assertEquals(Long.valueOf(3), connection.sort("sortlist", new DefaultSortParameters(null,
- Order.ASC, true), "newlist"));
- assertEquals(Arrays.asList(new String[] { "bar", "baz", "foo" }),
- connection.lRange("newlist", 0, 9));
+ assertEquals(Long.valueOf(3),
+ connection.sort("sortlist", new DefaultSortParameters(null, Order.ASC, true), "newlist"));
+ assertEquals(Arrays.asList(new String[] { "bar", "baz", "foo" }), connection.lRange("newlist", 0, 9));
}
@Test
@@ -309,8 +289,7 @@ public class JRedisConnectionIntegrationTests extends AbstractConnectionIntegrat
connection.rPush("PopList", "world");
connection.rPush("PopList", "hello");
assertEquals(Long.valueOf(2), connection.lRem("PopList", 2, "hello"));
- assertEquals(Arrays.asList(new String[] { "big", "world" }),
- connection.lRange("PopList", 0, -1));
+ assertEquals(Arrays.asList(new String[] { "big", "world" }), connection.lRange("PopList", 0, -1));
}
@Test
@@ -329,8 +308,7 @@ public class JRedisConnectionIntegrationTests extends AbstractConnectionIntegrat
connection.rPush("PopList", "big");
connection.rPush("PopList", "world");
connection.lTrim("PopList", 1, -1);
- assertEquals(Arrays.asList(new String[] { "big", "world" }),
- connection.lRange("PopList", 0, -1));
+ assertEquals(Arrays.asList(new String[] { "big", "world" }), connection.lRange("PopList", 0, -1));
}
@Test
@@ -347,8 +325,7 @@ public class JRedisConnectionIntegrationTests extends AbstractConnectionIntegrat
connection.rPush("pop2", "hey");
assertEquals("world", connection.rPopLPush("PopList", "pop2"));
assertEquals(Arrays.asList(new String[] { "hello" }), connection.lRange("PopList", 0, -1));
- assertEquals(Arrays.asList(new String[] { "world", "hey" }),
- connection.lRange("pop2", 0, -1));
+ assertEquals(Arrays.asList(new String[] { "world", "hey" }), connection.lRange("pop2", 0, -1));
}
@Test
@@ -361,14 +338,13 @@ public class JRedisConnectionIntegrationTests extends AbstractConnectionIntegrat
public void testLPush() throws Exception {
connection.lPush("testlist", "bar");
connection.lPush("testlist", "baz");
- assertEquals(Arrays.asList(new String[] { "baz", "bar" }),
- connection.lRange("testlist", 0, -1));
+ assertEquals(Arrays.asList(new String[] { "baz", "bar" }), connection.lRange("testlist", 0, -1));
}
@Test
public void testExecute() {
connection.set("foo", "bar");
- BulkResponse response = (BulkResponse) connection.execute("GET", JredisUtils.decode("foo".getBytes()));
+ BulkResponse response = (BulkResponse) connection.execute("GET", "foo".getBytes());
assertEquals("bar", stringSerializer.deserialize(response.getBulkData()));
}
diff --git a/src/test/java/org/springframework/data/redis/support/atomic/AtomicCountersParam.java b/src/test/java/org/springframework/data/redis/support/atomic/AtomicCountersParam.java
index 19ded6fe5..cce786acf 100644
--- a/src/test/java/org/springframework/data/redis/support/atomic/AtomicCountersParam.java
+++ b/src/test/java/org/springframework/data/redis/support/atomic/AtomicCountersParam.java
@@ -40,7 +40,6 @@ public abstract class AtomicCountersParam {
// JRedis
JredisConnectionFactory jredisConnFactory = new JredisConnectionFactory();
- jredisConnFactory.setUsePool(true);
jredisConnFactory.setPort(SettingsUtils.getPort());
jredisConnFactory.setHostName(SettingsUtils.getHost());
jredisConnFactory.afterPropertiesSet();
diff --git a/src/test/java/org/springframework/data/redis/support/collections/CollectionTestParams.java b/src/test/java/org/springframework/data/redis/support/collections/CollectionTestParams.java
index 771686698..d47b70812 100644
--- a/src/test/java/org/springframework/data/redis/support/collections/CollectionTestParams.java
+++ b/src/test/java/org/springframework/data/redis/support/collections/CollectionTestParams.java
@@ -81,7 +81,6 @@ public abstract class CollectionTestParams {
// jredis
JredisConnectionFactory jredisConnFactory = new JredisConnectionFactory();
- jredisConnFactory.setUsePool(true);
jredisConnFactory.setPort(SettingsUtils.getPort());
jredisConnFactory.setHostName(SettingsUtils.getHost());
diff --git a/src/test/java/org/springframework/data/redis/support/collections/RedisMapTests.java b/src/test/java/org/springframework/data/redis/support/collections/RedisMapTests.java
index c3b1f07cb..b0eb2973b 100644
--- a/src/test/java/org/springframework/data/redis/support/collections/RedisMapTests.java
+++ b/src/test/java/org/springframework/data/redis/support/collections/RedisMapTests.java
@@ -89,7 +89,6 @@ public class RedisMapTests extends AbstractRedisMapTests