From a920d6c851aa5b50ee9b453a1a59f4ae8196d04f Mon Sep 17 00:00:00 2001 From: wentch <22250530@qq.com> Date: Fri, 11 Dec 2015 17:44:01 +0800 Subject: [PATCH] --- src/org/redkale/boot/NodeHttpServer.java | 2 +- src/org/redkale/source/CacheSource.java | 42 +++++++++++++++++++++++ src/org/redkale/util/ResourceFactory.java | 2 +- 3 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 src/org/redkale/source/CacheSource.java diff --git a/src/org/redkale/boot/NodeHttpServer.java b/src/org/redkale/boot/NodeHttpServer.java index 431effdad..68bbaf072 100644 --- a/src/org/redkale/boot/NodeHttpServer.java +++ b/src/org/redkale/boot/NodeHttpServer.java @@ -71,7 +71,7 @@ public final class NodeHttpServer extends NodeServer { if (rs == null) return; if (!(src instanceof WebSocketServlet)) return; String rcname = rs.name(); - if (rcname.equals(ResourceFactory.RESOURCE_PARENT_NAME)) rcname = ((WebSocketServlet) src).name(); + if (rcname.contains(ResourceFactory.RESOURCE_PARENT_NAME)) rcname = rcname.replace(ResourceFactory.RESOURCE_PARENT_NAME, ((WebSocketServlet) src).name()); synchronized (regFactory) { Service nodeService = (Service) rf.find(rcname, WebSocketNode.class); if (nodeService == null) { diff --git a/src/org/redkale/source/CacheSource.java b/src/org/redkale/source/CacheSource.java new file mode 100644 index 000000000..101258b0d --- /dev/null +++ b/src/org/redkale/source/CacheSource.java @@ -0,0 +1,42 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.redkale.source; + +import java.io.*; + +/** + * + * @author zhangjx + */ +public interface CacheSource { + + default boolean isOpen() { + return true; + } + + public boolean exists(final Serializable key); + + public T get(final Serializable key); + + public T refreshAndGet(final Serializable key); + + public void refresh(final Serializable key); + + public void set(final Serializable key, final T value); + + public void set(final int expireSeconds, final Serializable key, final T value); + + public void remove(final Serializable key); + + public void appendListItem(final Serializable key, final V value); + + public void removeListItem(final Serializable key, final V value); + + public void appendSetItem(final Serializable key, final V value); + + public void removeSetItem(final Serializable key, final V value); + +} diff --git a/src/org/redkale/util/ResourceFactory.java b/src/org/redkale/util/ResourceFactory.java index aeac6d8ab..0a63ed56f 100644 --- a/src/org/redkale/util/ResourceFactory.java +++ b/src/org/redkale/util/ResourceFactory.java @@ -177,7 +177,7 @@ public final class ResourceFactory { continue; } if (Modifier.isFinal(field.getModifiers())) continue; - final String rcname = (rc.name().equals(RESOURCE_PARENT_NAME) && src instanceof Nameable) ? ((Nameable) src).name() : rc.name(); + final String rcname = (rc.name().contains(RESOURCE_PARENT_NAME) && src instanceof Nameable) ? rc.name().replace(RESOURCE_PARENT_NAME, ((Nameable) src).name()) : rc.name(); Object rs = genctype == classtype ? null : find(rcname, genctype); if (rs == null) { if (Map.class.isAssignableFrom(classtype)) {