Merge pull request #809 from SaikiranDaripelli/master

Adding support to supply custom connection manager
pull/812/head
Nikita Koksharov 8 years ago committed by GitHub
commit fafd66fd0e

@ -26,6 +26,8 @@ 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.connection.ReplicatedConnectionManager;
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 +53,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 +126,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 +304,28 @@ public class Config {
this.replicatedServersConfig = replicatedServersConfig; this.replicatedServersConfig = replicatedServersConfig;
} }
/**
* Returns the connection manager if supplied via
* {@link #useCustomServers(ConnectionManager)}
*
* @return ConnectionManager
*/
ConnectionManager getConnectionManager() {
return connectionManager;
}
/**
* This is an extension point to supply custom connection manager.
*
* @see ReplicatedConnectionManager on how to implement a connection
* manager.
* @param connectionManager
*/
public void useCustomServers(ConnectionManager connectionManager) {
this.connectionManager = connectionManager;
}
/** /**
* Init single server configuration. * Init single server configuration.
* *
@ -448,6 +477,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,6 +265,8 @@ 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 if (configCopy.getConnectionManager() != null) {
return configCopy.getConnectionManager();
}else { }else {
throw new IllegalArgumentException("server(s) address(es) not defined!"); throw new IllegalArgumentException("server(s) address(es) not defined!");
} }

Loading…
Cancel
Save