From 0fb108bd9bd3f082e1168d01784c9c2a716fa229 Mon Sep 17 00:00:00 2001 From: Redkale <22250530@qq.com> Date: Tue, 23 May 2017 19:59:14 +0800 Subject: [PATCH] --- src/org/redkale/boot/NodeServer.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/org/redkale/boot/NodeServer.java b/src/org/redkale/boot/NodeServer.java index 0316ca15a..0fc5f6802 100644 --- a/src/org/redkale/boot/NodeServer.java +++ b/src/org/redkale/boot/NodeServer.java @@ -274,13 +274,16 @@ public abstract class NodeServer { List diffGroupTransports = dts == null ? new ArrayList<>() : Arrays.asList(dts); final InetSocketAddress sncpAddr = client == null ? null : client.getClientAddress(); final AnyValue sourceConf = cacheResource.get(resourceName); - Class sourceType = sourceConf == null ? CacheMemorySource.class : Class.forName(sourceConf.getValue("type")); - final CacheMemorySource source = Sncp.createLocalService(resourceName, getExecutor(), appResFactory, sourceType, sncpAddr, Sncp.getSncpGroup(srcService), Sncp.getGroups(srcService), Sncp.getConf(srcService), sameGroupTransport, diffGroupTransports); + final Class sourceType = sourceConf == null ? CacheMemorySource.class : Class.forName(sourceConf.getValue("type")); + final CacheSource source = Sncp.createLocalService(resourceName, getExecutor(), appResFactory, sourceType, sncpAddr, Sncp.getSncpGroup(srcService), Sncp.getGroups(srcService), Sncp.getConf(srcService), sameGroupTransport, diffGroupTransports); Type genericType = field.getGenericType(); ParameterizedType pt = (genericType instanceof ParameterizedType) ? (ParameterizedType) genericType : null; Type valType = pt == null ? null : pt.getActualTypeArguments()[1]; - source.setStoreType(pt == null ? Serializable.class : (Class) pt.getActualTypeArguments()[0], valType instanceof Class ? (Class) valType : Object.class); - if (field.getAnnotation(Transient.class) != null) source.setNeedStore(false); //必须在setStoreType之后 + if (sourceType == CacheMemorySource.class) { + CacheMemorySource memorySource = (CacheMemorySource) source; + memorySource.setStoreType(pt == null ? Serializable.class : (Class) pt.getActualTypeArguments()[0], valType instanceof Class ? (Class) valType : Object.class); + if (field.getAnnotation(Transient.class) != null) memorySource.setNeedStore(false); //必须在setStoreType之后 + } application.cacheSources.add(source); appResFactory.register(resourceName, genericType, source); appResFactory.register(resourceName, CacheSource.class, source);