From 990a8d07f650aa54c231aae688e444cc6264685e Mon Sep 17 00:00:00 2001 From: Saikiran Daripelli Date: Thu, 16 Mar 2017 16:06:38 +0530 Subject: [PATCH] Adding support to supply custom connection manager --- .../main/java/org/redisson/config/Config.java | 16 ++++++++++++++++ .../java/org/redisson/config/ConfigSupport.java | 4 +++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/redisson/src/main/java/org/redisson/config/Config.java b/redisson/src/main/java/org/redisson/config/Config.java index e5c74e387..9fbc62282 100644 --- a/redisson/src/main/java/org/redisson/config/Config.java +++ b/redisson/src/main/java/org/redisson/config/Config.java @@ -26,6 +26,7 @@ import org.redisson.client.codec.Codec; import org.redisson.codec.CodecProvider; import org.redisson.codec.DefaultCodecProvider; import org.redisson.codec.JsonJacksonCodec; +import org.redisson.connection.ConnectionManager; import org.redisson.liveobject.provider.DefaultResolverProvider; import org.redisson.liveobject.provider.ResolverProvider; @@ -50,6 +51,8 @@ public class Config { private ElasticacheServersConfig elasticacheServersConfig; private ReplicatedServersConfig replicatedServersConfig; + + private ConnectionManager connectionManager; /** * Threads amount shared between all redis node clients @@ -122,6 +125,9 @@ public class Config { if (oldConf.getReplicatedServersConfig() != null) { setReplicatedServersConfig(new ReplicatedServersConfig(oldConf.getReplicatedServersConfig())); } + if (oldConf.getConnectionManager() != null) { + useCustomServers(oldConf.getConnectionManager()); + } } @@ -296,6 +302,15 @@ public class Config { void setReplicatedServersConfig(ReplicatedServersConfig replicatedServersConfig) { this.replicatedServersConfig = replicatedServersConfig; } + + ConnectionManager getConnectionManager() { + return connectionManager; + } + + public void useCustomServers(ConnectionManager connectionManager) { + this.connectionManager = connectionManager; + } + /** * Init single server configuration. @@ -447,6 +462,7 @@ public class Config { throw new IllegalStateException("Replication servers config already used!"); } } + /** * Activates an unix socket if servers binded to loopback interface. diff --git a/redisson/src/main/java/org/redisson/config/ConfigSupport.java b/redisson/src/main/java/org/redisson/config/ConfigSupport.java index 7c55bb5e4..9e48cc479 100644 --- a/redisson/src/main/java/org/redisson/config/ConfigSupport.java +++ b/redisson/src/main/java/org/redisson/config/ConfigSupport.java @@ -265,7 +265,9 @@ public class ConfigSupport { } else if (configCopy.getReplicatedServersConfig() != null) { validate(configCopy.getReplicatedServersConfig()); 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!"); } }