moved codec registartion to CommandAsyncService

pull/1552/head
Rui Gu 7 years ago
parent 67a2f119fd
commit 7c2dfebbaa

@ -158,7 +158,7 @@ public class Redisson implements RedissonClient {
public static RedissonClient create(Config config) { public static RedissonClient create(Config config) {
Redisson redisson = new Redisson(config); Redisson redisson = new Redisson(config);
if (config.isReferenceEnabled()) { if (config.isReferenceEnabled()) {
redisson.enableRedissonReferenceSupport(config); redisson.enableRedissonReferenceSupport();
} }
return redisson; return redisson;
} }
@ -186,7 +186,7 @@ public class Redisson implements RedissonClient {
public static RedissonReactiveClient createReactive(Config config) { public static RedissonReactiveClient createReactive(Config config) {
RedissonReactive react = new RedissonReactive(config); RedissonReactive react = new RedissonReactive(config);
if (config.isReferenceEnabled()) { if (config.isReferenceEnabled()) {
react.enableRedissonReferenceSupport(config); react.enableRedissonReferenceSupport();
} }
return react; return react;
} }
@ -664,10 +664,8 @@ public class Redisson implements RedissonClient {
return connectionManager.isShuttingDown(); return connectionManager.isShuttingDown();
} }
protected void enableRedissonReferenceSupport(Config config) { protected void enableRedissonReferenceSupport() {
this.connectionManager.getCommandExecutor().enableRedissonReferenceSupport(this); this.connectionManager.getCommandExecutor().enableRedissonReferenceSupport(this);
Codec codec = config.getCodec();
config.getReferenceCodecProvider().registerCodec((Class<Codec>) codec.getClass(), codec);
} }
@Override @Override

@ -389,10 +389,8 @@ public class RedissonReactive implements RedissonReactiveClient {
return connectionManager.isShuttingDown(); return connectionManager.isShuttingDown();
} }
protected void enableRedissonReferenceSupport(Config config) { protected void enableRedissonReferenceSupport() {
this.commandExecutor.enableRedissonReferenceSupport(this); this.commandExecutor.enableRedissonReferenceSupport(this);
Codec codec = config.getCodec();
config.getReferenceCodecProvider().registerCodec((Class<Codec>) codec.getClass(), codec);
} }
@Override @Override

@ -55,6 +55,8 @@ import org.redisson.client.protocol.RedisCommands;
import org.redisson.client.protocol.ScoredEntry; import org.redisson.client.protocol.ScoredEntry;
import org.redisson.client.protocol.decoder.ListScanResult; import org.redisson.client.protocol.decoder.ListScanResult;
import org.redisson.client.protocol.decoder.MapScanResult; import org.redisson.client.protocol.decoder.MapScanResult;
import org.redisson.codec.ReferenceCodecProvider;
import org.redisson.config.Config;
import org.redisson.config.MasterSlaveServersConfig; import org.redisson.config.MasterSlaveServersConfig;
import org.redisson.connection.ConnectionManager; import org.redisson.connection.ConnectionManager;
import org.redisson.connection.MasterSlaveEntry; import org.redisson.connection.MasterSlaveEntry;
@ -102,6 +104,7 @@ public class CommandAsyncService implements CommandAsyncExecutor {
public CommandAsyncExecutor enableRedissonReferenceSupport(RedissonClient redisson) { public CommandAsyncExecutor enableRedissonReferenceSupport(RedissonClient redisson) {
if (redisson != null) { if (redisson != null) {
this.redisson = redisson; this.redisson = redisson;
enableRedissonReferenceSupport(redisson.getConfig());
this.redissonReactive = null; this.redissonReactive = null;
} }
return this; return this;
@ -111,11 +114,18 @@ public class CommandAsyncService implements CommandAsyncExecutor {
public CommandAsyncExecutor enableRedissonReferenceSupport(RedissonReactiveClient redissonReactive) { public CommandAsyncExecutor enableRedissonReferenceSupport(RedissonReactiveClient redissonReactive) {
if (redissonReactive != null) { if (redissonReactive != null) {
this.redissonReactive = redissonReactive; this.redissonReactive = redissonReactive;
enableRedissonReferenceSupport(redissonReactive.getConfig());
this.redisson = null; this.redisson = null;
} }
return this; return this;
} }
private void enableRedissonReferenceSupport(Config config) {
Codec codec = config.getCodec();
ReferenceCodecProvider codecProvider = config.getReferenceCodecProvider();
codecProvider.registerCodec((Class<Codec>) codec.getClass(), codec);
}
@Override @Override
public boolean isRedissonReferenceSupportEnabled() { public boolean isRedissonReferenceSupportEnabled() {
return redisson != null || redissonReactive != null; return redisson != null || redissonReactive != null;

Loading…
Cancel
Save