Merge pull request #540 from xetorthio/closeable-support

Closeable support
This commit is contained in:
Jonathan Leibiusky
2014-02-11 12:35:34 -05:00
5 changed files with 36 additions and 2 deletions

View File

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

View File

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

View File

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

View File

@@ -41,4 +41,11 @@ public class ConnectionTest extends Assert {
client.setTimeoutInfinite(); client.setTimeoutInfinite();
} }
@Test
public void checkCloseable() {
client.setHost("localhost");
client.setPort(6379);
client.connect();
client.close();
}
} }

View File

@@ -8,6 +8,7 @@ import java.util.Map;
import org.junit.Test; import org.junit.Test;
import redis.clients.jedis.BinaryJedis;
import redis.clients.jedis.Jedis; import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisShardInfo; import redis.clients.jedis.JedisShardInfo;
import redis.clients.jedis.Protocol; import redis.clients.jedis.Protocol;
@@ -91,4 +92,12 @@ public class JedisTest extends JedisCommandTestBase {
assertEquals("PONG", jedis.ping()); assertEquals("PONG", jedis.ping());
assertEquals("bar", jedis.get("foo")); assertEquals("bar", jedis.get("foo"));
} }
@Test
public void checkCloseable() {
jedis.close();
BinaryJedis bj = new BinaryJedis("localhost");
bj.connect();
bj.close();
}
} }