Implement Closeable for Jedis, BinaryJedis etc.

This allows a Jedis object to participate in try-with-resources when
using Java 7+. This change is fully backwards compatible to Java 6 and
previous releases of the Jedis client.
This commit is contained in:
Henning Schmiedehausen
2014-02-07 13:39:41 -08:00
parent 51a4bf9a56
commit 7449619fca
3 changed files with 20 additions and 2 deletions

View File

@@ -948,6 +948,12 @@ public class BinaryClient extends Connection {
super.disconnect();
}
@Override
public void close() {
db = 0;
super.close();
}
public void resetState() {
if (isInMulti())
discard();

View File

@@ -2,6 +2,7 @@ package redis.clients.jedis;
import static redis.clients.jedis.Protocol.toByteArray;
import java.io.Closeable;
import java.net.URI;
import java.util.ArrayList;
import java.util.HashSet;
@@ -19,7 +20,7 @@ import redis.clients.util.SafeEncoder;
public class BinaryJedis implements BasicCommands, BinaryJedisCommands,
MultiKeyBinaryCommands, AdvancedBinaryJedisCommands,
BinaryScriptingCommands {
BinaryScriptingCommands, Closeable {
protected Client client = null;
public BinaryJedis(final String host) {
@@ -1735,6 +1736,11 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands,
return client.getStatusCodeReply();
}
@Override
public void close() {
client.close();
}
/**
* Sort a Set or a List.
* <p>

View File

@@ -1,5 +1,6 @@
package redis.clients.jedis;
import java.io.Closeable;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;
@@ -15,7 +16,7 @@ import redis.clients.util.RedisInputStream;
import redis.clients.util.RedisOutputStream;
import redis.clients.util.SafeEncoder;
public class Connection {
public class Connection implements Closeable {
private String host;
private int port = Protocol.DEFAULT_PORT;
private Socket socket;
@@ -143,6 +144,11 @@ public class Connection {
}
}
@Override
public void close() {
disconnect();
}
public void disconnect() {
if (isConnected()) {
try {