diff --git a/redisson/src/main/java/org/redisson/Redisson.java b/redisson/src/main/java/org/redisson/Redisson.java index 957fca848..0a7216f3b 100755 --- a/redisson/src/main/java/org/redisson/Redisson.java +++ b/redisson/src/main/java/org/redisson/Redisson.java @@ -70,8 +70,6 @@ import org.redisson.config.Config; import org.redisson.config.ConfigSupport; import org.redisson.connection.ConnectionManager; import org.redisson.codec.CodecProvider; -import org.redisson.codec.DefaultCodecProvider; -import org.redisson.liveobject.provider.DefaultResolverProvider; import org.redisson.liveobject.provider.ResolverProvider; import org.redisson.pubsub.SemaphorePubSub; @@ -499,11 +497,6 @@ public class Redisson implements RedissonClient { return new RedissonLiveObjectService(this, liveObjectClassCache, codecProvider, resolverProvider); } - @Override - public RLiveObjectService getLiveObjectService(CodecProvider codecProvider, ResolverProvider resolverProvider) { - return new RedissonLiveObjectService(this, liveObjectClassCache, codecProvider, resolverProvider); - } - @Override public void shutdown() { connectionManager.shutdown(); diff --git a/redisson/src/main/java/org/redisson/RedissonLiveObjectService.java b/redisson/src/main/java/org/redisson/RedissonLiveObjectService.java index 83ee7b82c..922e2b75c 100644 --- a/redisson/src/main/java/org/redisson/RedissonLiveObjectService.java +++ b/redisson/src/main/java/org/redisson/RedissonLiveObjectService.java @@ -325,7 +325,7 @@ public class RedissonLiveObjectService implements RLiveObjectService { .or(ElementMatchers.isSetter())) .and(ElementMatchers.isPublic())) .intercept(MethodDelegation.to( - new AccessorInterceptor(redisson, codecProvider, resolverProvider))) + new AccessorInterceptor(redisson))) .make().load(getClass().getClassLoader(), ClassLoadingStrategy.Default.WRAPPER) .getLoaded(); diff --git a/redisson/src/main/java/org/redisson/api/RedissonClient.java b/redisson/src/main/java/org/redisson/api/RedissonClient.java index 915ddd305..18f731007 100755 --- a/redisson/src/main/java/org/redisson/api/RedissonClient.java +++ b/redisson/src/main/java/org/redisson/api/RedissonClient.java @@ -656,15 +656,6 @@ public interface RedissonClient { */ RLiveObjectService getLiveObjectService(); - /** - * Returns RedissonAttachedLiveObjectService which can be used to - * retrieve live REntity(s) - * - * @param codecProvider the CodecProvider to be used to create the service - * @return - */ - RLiveObjectService getLiveObjectService(CodecProvider codecProvider, ResolverProvider resolverProvider); - /** * Shutdown Redisson instance but NOT Redis server * diff --git a/redisson/src/main/java/org/redisson/liveobject/core/AccessorInterceptor.java b/redisson/src/main/java/org/redisson/liveobject/core/AccessorInterceptor.java index 2e5b4e61e..b15618a3b 100644 --- a/redisson/src/main/java/org/redisson/liveobject/core/AccessorInterceptor.java +++ b/redisson/src/main/java/org/redisson/liveobject/core/AccessorInterceptor.java @@ -33,7 +33,6 @@ import java.util.concurrent.BlockingQueue; import java.util.concurrent.Callable; import java.util.concurrent.ConcurrentMap; -import org.redisson.RedissonBitSet; import org.redisson.RedissonBlockingDeque; import org.redisson.RedissonBlockingQueue; import org.redisson.RedissonDeque; @@ -56,7 +55,6 @@ import org.redisson.api.annotation.REntity.TransformationMode; import org.redisson.liveobject.misc.Introspectior; import org.redisson.liveobject.misc.RedissonObjectFactory; import org.redisson.codec.CodecProvider; -import org.redisson.liveobject.provider.ResolverProvider; import org.redisson.liveobject.resolver.NamingScheme; import io.netty.util.internal.PlatformDependent; @@ -78,14 +76,12 @@ public class AccessorInterceptor { private final RedissonClient redisson; private final CodecProvider codecProvider; - private final ResolverProvider resolverProvider; private final ConcurrentMap namingSchemeCache = PlatformDependent.newConcurrentHashMap(); private static final LinkedHashMap> supportedClassMapping; - public AccessorInterceptor(RedissonClient redisson, CodecProvider codecProvider, ResolverProvider resolverProvider) { + public AccessorInterceptor(RedissonClient redisson) { this.redisson = redisson; - this.codecProvider = codecProvider; - this.resolverProvider = resolverProvider; + this.codecProvider = redisson.getCodecProvider(); } static { @@ -116,7 +112,7 @@ public class AccessorInterceptor { if (isGetter(method, fieldName)) { Object result = liveMap.get(fieldName); if (result instanceof RedissonReference) { - return RedissonObjectFactory.fromReference(redisson, codecProvider, resolverProvider, (RedissonReference) result, method.getReturnType()); + return RedissonObjectFactory.fromReference(redisson, (RedissonReference) result, method.getReturnType()); // if (BitSet.class.isAssignableFrom(method.getReturnType()) && RBitSet.class.isAssignableFrom(((RedissonReference) result).getType())) { // return ((RBitSet) rObject).asBitSet(); // } @@ -125,7 +121,7 @@ public class AccessorInterceptor { } if (isSetter(method, fieldName)) { Class idFieldType = me.getClass().getSuperclass().getDeclaredField(fieldName).getType(); - if (args[0].getClass().getSuperclass().isAnnotationPresent(REntity.class)) { + if (args[0] instanceof RLiveObject) { Class rEntity = args[0].getClass().getSuperclass(); REntity anno = rEntity.getAnnotation(REntity.class); NamingScheme ns = anno.namingScheme() diff --git a/redisson/src/main/java/org/redisson/liveobject/misc/RedissonObjectFactory.java b/redisson/src/main/java/org/redisson/liveobject/misc/RedissonObjectFactory.java index f35f54824..9d0342224 100644 --- a/redisson/src/main/java/org/redisson/liveobject/misc/RedissonObjectFactory.java +++ b/redisson/src/main/java/org/redisson/liveobject/misc/RedissonObjectFactory.java @@ -67,19 +67,11 @@ public class RedissonObjectFactory { } public static T fromReference(RedissonClient redisson, RedissonReference rr, Class expected) throws Exception { - return fromReference(redisson, null, null, rr, expected); - } - - public static T fromReference(RedissonClient redisson, CodecProvider codecProvider, ResolverProvider resolverProvider, RedissonReference rr, Class expected) throws Exception { Class type = rr.getType(); - if (codecProvider == null) { - codecProvider = redisson.getConfig().getCodecProvider(); - } + CodecProvider codecProvider = redisson.getConfig().getCodecProvider(); if (type != null) { if (type.isAnnotationPresent(REntity.class)) { - RLiveObjectService liveObjectService = resolverProvider == null - ? redisson.getLiveObjectService() - : redisson.getLiveObjectService(codecProvider, resolverProvider); + RLiveObjectService liveObjectService = redisson.getLiveObjectService(); REntity anno = type.getAnnotation(REntity.class); NamingScheme ns = anno.namingScheme() .getDeclaredConstructor(Codec.class) @@ -106,7 +98,7 @@ public class RedissonObjectFactory { return new RedissonReference(object.getClass(), ((RObject) object).getName(), ((RObject) object).getCodec()); } try { - if (object.getClass().getSuperclass().isAnnotationPresent(REntity.class)) { + if (object instanceof RLiveObject) { Class rEntity = object.getClass().getSuperclass(); REntity anno = rEntity.getAnnotation(REntity.class); NamingScheme ns = anno.namingScheme()