From 3af0a460782758728b6eadb454f3b0cd561c15ae Mon Sep 17 00:00:00 2001 From: Rui Gu Date: Fri, 9 Sep 2016 16:52:59 +0100 Subject: [PATCH 1/2] Fixed JSON and YAML config issue --- redisson/src/main/java/org/redisson/config/ConfigSupport.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/redisson/src/main/java/org/redisson/config/ConfigSupport.java b/redisson/src/main/java/org/redisson/config/ConfigSupport.java index adf9a82f6..a5685d2a9 100644 --- a/redisson/src/main/java/org/redisson/config/ConfigSupport.java +++ b/redisson/src/main/java/org/redisson/config/ConfigSupport.java @@ -45,6 +45,8 @@ import com.fasterxml.jackson.databind.ser.FilterProvider; import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter; import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; +import org.redisson.codec.CodecProvider; +import org.redisson.liveobject.provider.ResolverProvider; public class ConfigSupport { @@ -201,6 +203,8 @@ public class ConfigSupport { mapper.addMixIn(MasterSlaveServersConfig.class, MasterSlaveServersConfigMixIn.class); mapper.addMixIn(SingleServerConfig.class, SingleSeverConfigMixIn.class); mapper.addMixIn(Config.class, ConfigMixIn.class); + mapper.addMixIn(CodecProvider.class, ConfigMixIn.class); + mapper.addMixIn(ResolverProvider.class, ConfigMixIn.class); mapper.addMixIn(Codec.class, ClassMixIn.class); mapper.addMixIn(RedissonNodeInitializer.class, ClassMixIn.class); mapper.addMixIn(LoadBalancer.class, ClassMixIn.class); From cfbd2ce874d4b0738b59c1ee422d38524580f021 Mon Sep 17 00:00:00 2001 From: Rui Gu Date: Fri, 9 Sep 2016 16:53:10 +0100 Subject: [PATCH 2/2] API comments added --- .../liveobject/provider/ResolverProvider.java | 19 +++++++++++++++++++ .../liveobject/resolver/Resolver.java | 14 +++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/redisson/src/main/java/org/redisson/liveobject/provider/ResolverProvider.java b/redisson/src/main/java/org/redisson/liveobject/provider/ResolverProvider.java index 248f62960..85e921d1d 100644 --- a/redisson/src/main/java/org/redisson/liveobject/provider/ResolverProvider.java +++ b/redisson/src/main/java/org/redisson/liveobject/provider/ResolverProvider.java @@ -24,7 +24,26 @@ import org.redisson.liveobject.resolver.Resolver; */ public interface ResolverProvider { + /** + * To retrieve a resolver based on the the class requiring values to be + * resolved, the resolver type, and annotation which may carry any required + * configurations. + * + * @param cls the class requires value to be resolved + * @param resolverClass the resolver type + * @param anno annotation with configurations + * @return a Resolver instance + */ Resolver getResolver(Class cls, Class resolverClass, Annotation anno); + + /** + * To register a resolver based on the the class it can provide value to, + * the resolver type, the resolver instance to be cached. + * + * @param cls + * @param resolverClass + * @param resolver + */ void registerResolver(Class cls, Class resolverClass, Resolver resolver); } diff --git a/redisson/src/main/java/org/redisson/liveobject/resolver/Resolver.java b/redisson/src/main/java/org/redisson/liveobject/resolver/Resolver.java index 7abe7f700..146c1f701 100644 --- a/redisson/src/main/java/org/redisson/liveobject/resolver/Resolver.java +++ b/redisson/src/main/java/org/redisson/liveobject/resolver/Resolver.java @@ -20,14 +20,26 @@ import java.lang.annotation.Annotation; import org.redisson.api.RedissonClient; /** + * A resolver is used to provide value based on contextual parameters * * @author Rui Gu (https://github.com/jackygurui) - * @param Field instance + * @param Field instance type * @param Annotation to resolve * @param Value type */ public interface Resolver { + /** + * Used to provide a value instance based on contextual parameters. + * + * Actual behavior may vary depending on implementation + * + * @param value + * @param annotation + * @param idFieldName + * @param redisson + * @return resolved value + */ public V resolve(T value, A annotation, String idFieldName, RedissonClient redisson); }