Adding support to supply custom connection manager

pull/809/head
Saikiran Daripelli 8 years ago
parent 1537bba3cb
commit 990a8d07f6

@ -26,6 +26,7 @@ import org.redisson.client.codec.Codec;
import org.redisson.codec.CodecProvider; import org.redisson.codec.CodecProvider;
import org.redisson.codec.DefaultCodecProvider; import org.redisson.codec.DefaultCodecProvider;
import org.redisson.codec.JsonJacksonCodec; import org.redisson.codec.JsonJacksonCodec;
import org.redisson.connection.ConnectionManager;
import org.redisson.liveobject.provider.DefaultResolverProvider; import org.redisson.liveobject.provider.DefaultResolverProvider;
import org.redisson.liveobject.provider.ResolverProvider; import org.redisson.liveobject.provider.ResolverProvider;
@ -51,6 +52,8 @@ public class Config {
private ReplicatedServersConfig replicatedServersConfig; private ReplicatedServersConfig replicatedServersConfig;
private ConnectionManager connectionManager;
/** /**
* Threads amount shared between all redis node clients * Threads amount shared between all redis node clients
*/ */
@ -122,6 +125,9 @@ public class Config {
if (oldConf.getReplicatedServersConfig() != null) { if (oldConf.getReplicatedServersConfig() != null) {
setReplicatedServersConfig(new ReplicatedServersConfig(oldConf.getReplicatedServersConfig())); setReplicatedServersConfig(new ReplicatedServersConfig(oldConf.getReplicatedServersConfig()));
} }
if (oldConf.getConnectionManager() != null) {
useCustomServers(oldConf.getConnectionManager());
}
} }
@ -297,6 +303,15 @@ public class Config {
this.replicatedServersConfig = replicatedServersConfig; this.replicatedServersConfig = replicatedServersConfig;
} }
ConnectionManager getConnectionManager() {
return connectionManager;
}
public void useCustomServers(ConnectionManager connectionManager) {
this.connectionManager = connectionManager;
}
/** /**
* Init single server configuration. * Init single server configuration.
* *
@ -448,6 +463,7 @@ public class Config {
} }
} }
/** /**
* Activates an unix socket if servers binded to loopback interface. * Activates an unix socket if servers binded to loopback interface.
* Also used for epoll transport activation. * Also used for epoll transport activation.

@ -265,7 +265,9 @@ public class ConfigSupport {
} else if (configCopy.getReplicatedServersConfig() != null) { } else if (configCopy.getReplicatedServersConfig() != null) {
validate(configCopy.getReplicatedServersConfig()); validate(configCopy.getReplicatedServersConfig());
return new ReplicatedConnectionManager(configCopy.getReplicatedServersConfig(), configCopy); return new ReplicatedConnectionManager(configCopy.getReplicatedServersConfig(), configCopy);
} else { } else if (configCopy.getConnectionManager() != null) {
return configCopy.getConnectionManager();
}else {
throw new IllegalArgumentException("server(s) address(es) not defined!"); throw new IllegalArgumentException("server(s) address(es) not defined!");
} }
} }

Loading…
Cancel
Save