From ce13c0a718af8ae1e613c64d648dad6044518542 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kjetil=20=C3=98rbekk?= Date: Tue, 31 Jan 2012 14:28:17 +0100 Subject: Reuse HTTP connections. --- .../java/com/orbekk/same/ConnectionManagerImpl.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/same/src/main/java/com/orbekk/same/ConnectionManagerImpl.java b/same/src/main/java/com/orbekk/same/ConnectionManagerImpl.java index 92b7588..2767003 100644 --- a/same/src/main/java/com/orbekk/same/ConnectionManagerImpl.java +++ b/same/src/main/java/com/orbekk/same/ConnectionManagerImpl.java @@ -7,6 +7,9 @@ import com.orbekk.paxos.PaxosService; import java.net.MalformedURLException; import java.net.URL; +import java.util.HashMap; +import java.util.Map; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -18,6 +21,8 @@ import org.slf4j.LoggerFactory; public class ConnectionManagerImpl implements ConnectionManager { private int connectionTimeout; private int readTimeout; + private Map connectionCache = + new HashMap(); private Logger logger = LoggerFactory.getLogger(getClass()); @@ -30,11 +35,19 @@ public class ConnectionManagerImpl implements ConnectionManager { this.readTimeout = readTimeout; } + private MyJsonRpcHttpClient getConnection(String url) + throws MalformedURLException { + if (!connectionCache.containsKey(url)) { + connectionCache.put(url, new MyJsonRpcHttpClient(new URL(url), + connectionTimeout, readTimeout)); + } + return connectionCache.get(url); + } + private T getClassProxy(String url, Class clazz) { T service = null; try { - MyJsonRpcHttpClient client = new MyJsonRpcHttpClient(new URL(url), - connectionTimeout, readTimeout); + MyJsonRpcHttpClient client = getConnection(url); service = ProxyUtil.createProxy( this.getClass().getClassLoader(), clazz, -- cgit v1.2.3