Skip to content

Commit 41cf86b

Browse files
fabienrenaudMichael Nitschinger
authored andcommitted
SPY-187: Expose a few more attributes of MemcachedClient
Motivation ---------- Extending MemcachedClient to access some of its protected attributes is not always desirable as it makes harder writing mocks for unit testing. Modifications ------------- MemcachedClient now exposes operationTimeout, mconn, tcService and executorService. Result ------ One does not have to extend MemcachedClient any more to write custom commands. Change-Id: I81932da64d4492512dcf1a11fe1161203fa70c5e Reviewed-on: http://review.couchbase.org/51546 Reviewed-by: Michael Nitschinger <michael.nitschinger@couchbase.com> Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
1 parent ce08f50 commit 41cf86b

File tree

2 files changed

+48
-31
lines changed

2 files changed

+48
-31
lines changed

src/main/java/net/spy/memcached/MemcachedClient.java

Lines changed: 43 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -23,32 +23,6 @@
2323

2424
package net.spy.memcached;
2525

26-
import java.io.IOException;
27-
import java.net.InetSocketAddress;
28-
import java.net.SocketAddress;
29-
import java.text.MessageFormat;
30-
import java.util.ArrayList;
31-
import java.util.Arrays;
32-
import java.util.Collection;
33-
import java.util.HashMap;
34-
import java.util.Iterator;
35-
import java.util.List;
36-
import java.util.Map;
37-
import java.util.Set;
38-
import java.util.concurrent.CancellationException;
39-
import java.util.concurrent.ConcurrentHashMap;
40-
import java.util.concurrent.ConcurrentLinkedQueue;
41-
import java.util.concurrent.ConcurrentMap;
42-
import java.util.concurrent.CountDownLatch;
43-
import java.util.concurrent.ExecutionException;
44-
import java.util.concurrent.ExecutorService;
45-
import java.util.concurrent.Future;
46-
import java.util.concurrent.TimeUnit;
47-
import java.util.concurrent.TimeoutException;
48-
import java.util.concurrent.atomic.AtomicInteger;
49-
import java.util.concurrent.atomic.AtomicLong;
50-
import java.util.concurrent.atomic.AtomicReference;
51-
5226
import net.spy.memcached.auth.AuthDescriptor;
5327
import net.spy.memcached.auth.AuthThreadMonitor;
5428
import net.spy.memcached.compat.SpyObject;
@@ -74,12 +48,37 @@
7448
import net.spy.memcached.ops.StoreOperation;
7549
import net.spy.memcached.ops.StoreType;
7650
import net.spy.memcached.ops.TimedOutOperationStatus;
77-
import net.spy.memcached.protocol.ascii.AsciiOperationFactory;
7851
import net.spy.memcached.protocol.binary.BinaryOperationFactory;
7952
import net.spy.memcached.transcoders.TranscodeService;
8053
import net.spy.memcached.transcoders.Transcoder;
8154
import net.spy.memcached.util.StringUtils;
8255

56+
import java.io.IOException;
57+
import java.net.InetSocketAddress;
58+
import java.net.SocketAddress;
59+
import java.text.MessageFormat;
60+
import java.util.ArrayList;
61+
import java.util.Arrays;
62+
import java.util.Collection;
63+
import java.util.HashMap;
64+
import java.util.Iterator;
65+
import java.util.List;
66+
import java.util.Map;
67+
import java.util.Set;
68+
import java.util.concurrent.CancellationException;
69+
import java.util.concurrent.ConcurrentHashMap;
70+
import java.util.concurrent.ConcurrentLinkedQueue;
71+
import java.util.concurrent.ConcurrentMap;
72+
import java.util.concurrent.CountDownLatch;
73+
import java.util.concurrent.ExecutionException;
74+
import java.util.concurrent.ExecutorService;
75+
import java.util.concurrent.Future;
76+
import java.util.concurrent.TimeUnit;
77+
import java.util.concurrent.TimeoutException;
78+
import java.util.concurrent.atomic.AtomicInteger;
79+
import java.util.concurrent.atomic.AtomicLong;
80+
import java.util.concurrent.atomic.AtomicReference;
81+
8382
/**
8483
* Client to a memcached server.
8584
*
@@ -2628,8 +2627,25 @@ public void connectionLost(SocketAddress sa) {
26282627
// Don't care.
26292628
}
26302629

2630+
public long getOperationTimeout() {
2631+
return operationTimeout;
2632+
}
2633+
2634+
public MemcachedConnection getConnection() {
2635+
return mconn;
2636+
}
2637+
2638+
public TranscodeService getTranscoderService() {
2639+
return tcService;
2640+
}
2641+
2642+
public ExecutorService getExecutorService() {
2643+
return executorService;
2644+
}
2645+
26312646
@Override
26322647
public String toString() {
26332648
return connFactory.toString();
26342649
}
26352650
}
2651+

src/main/java/net/spy/memcached/MemcachedClientIF.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@
2323

2424
package net.spy.memcached;
2525

26+
import net.spy.memcached.internal.BulkFuture;
27+
import net.spy.memcached.internal.OperationFuture;
28+
import net.spy.memcached.transcoders.Transcoder;
29+
2630
import java.net.SocketAddress;
2731
import java.util.Collection;
2832
import java.util.Iterator;
@@ -32,10 +36,6 @@
3236
import java.util.concurrent.Future;
3337
import java.util.concurrent.TimeUnit;
3438

35-
import net.spy.memcached.internal.BulkFuture;
36-
import net.spy.memcached.internal.OperationFuture;
37-
import net.spy.memcached.transcoders.Transcoder;
38-
3939
/**
4040
* This interface is provided as a helper for testing clients of the
4141
* MemcachedClient.
@@ -240,4 +240,5 @@ CountDownLatch broadcastOp(final BroadcastOpFactory of,
240240
* @return the union of all SASL mechanisms supported by the servers.
241241
*/
242242
Set<String> listSaslMechanisms();
243+
243244
}

0 commit comments

Comments
 (0)