From 63a9005e6b59b1fa0df6d588555ed912dab4f08c Mon Sep 17 00:00:00 2001 From: Redkale <22250530@qq.com> Date: Tue, 21 Mar 2017 09:47:18 +0800 Subject: [PATCH] --- src/org/redkale/net/http/WebSocketServlet.java | 4 ++-- src/org/redkale/net/sncp/SncpClient.java | 4 ++-- src/org/redkale/net/sncp/SncpDynServlet.java | 2 +- src/org/redkale/service/Service.java | 14 ++------------ src/org/redkale/util/ResourceFactory.java | 13 ++++++++----- 5 files changed, 15 insertions(+), 22 deletions(-) diff --git a/src/org/redkale/net/http/WebSocketServlet.java b/src/org/redkale/net/http/WebSocketServlet.java index 0f05e44e8..dbc574925 100644 --- a/src/org/redkale/net/http/WebSocketServlet.java +++ b/src/org/redkale/net/http/WebSocketServlet.java @@ -69,7 +69,7 @@ public abstract class WebSocketServlet extends HttpServlet { public final void preInit(HttpContext context, AnyValue conf) { InetSocketAddress addr = context.getServerAddress(); - this.engine = new WebSocketEngine(addr.getHostString() + ":" + addr.getPort() + "-[" + name() + "]", this.node, logger); + this.engine = new WebSocketEngine(addr.getHostString() + ":" + addr.getPort() + "-[" + getResourceName() + "]", this.node, logger); if (this.node == null) this.node = createWebSocketNode(); if (this.node == null) { this.node = new WebSocketNodeService(); @@ -86,7 +86,7 @@ public abstract class WebSocketServlet extends HttpServlet { engine.close(); } - public String name() { + public String getResourceName() { return this.getClass().getSimpleName().replace("Servlet", "").replace("WebSocket", "").toLowerCase(); } diff --git a/src/org/redkale/net/sncp/SncpClient.java b/src/org/redkale/net/sncp/SncpClient.java index c825a3c5b..c23e728dc 100644 --- a/src/org/redkale/net/sncp/SncpClient.java +++ b/src/org/redkale/net/sncp/SncpClient.java @@ -154,7 +154,7 @@ public final class SncpClient { this.remote = remote; this.executor = executor; this.serviceClass = serviceClass; - this.serviceversion = service.version(); + this.serviceversion = 0; this.clientAddress = clientAddress; this.name = serviceName; this.serviceid = Sncp.hash(serviceType.getName() + ':' + serviceName); @@ -216,7 +216,7 @@ public final class SncpClient { if (method.getName().equals("equals") || method.getName().equals("hashCode")) continue; if (method.getName().equals("notify") || method.getName().equals("notifyAll") || method.getName().equals("wait")) continue; if (method.getName().equals("init") || method.getName().equals("destroy")) continue; - if (method.getName().equals("version") || method.getName().equals("name")) continue; + //if (method.getName().equals("version") || method.getName().equals("name")) continue; //if (onlySncpDyn && method.getAnnotation(SncpDyn.class) == null) continue; DLong actionid = Sncp.hash(method); Method old = actionids.get(actionid); diff --git a/src/org/redkale/net/sncp/SncpDynServlet.java b/src/org/redkale/net/sncp/SncpDynServlet.java index 309f5b012..3173c591f 100644 --- a/src/org/redkale/net/sncp/SncpDynServlet.java +++ b/src/org/redkale/net/sncp/SncpDynServlet.java @@ -63,7 +63,7 @@ public final class SncpDynServlet extends SncpServlet { if (method.getName().equals("equals") || method.getName().equals("hashCode")) continue; if (method.getName().equals("notify") || method.getName().equals("notifyAll") || method.getName().equals("wait")) continue; if (method.getName().equals("init") || method.getName().equals("destroy")) continue; - if (method.getName().equals("version") || method.getName().equals("name")) continue; + //if (method.getName().equals("version") || method.getName().equals("name")) continue; final DLong actionid = Sncp.hash(method); SncpServletAction action = SncpServletAction.create(service, actionid, method); action.convert = convert; diff --git a/src/org/redkale/service/Service.java b/src/org/redkale/service/Service.java index 104de47a8..67ca0075a 100644 --- a/src/org/redkale/service/Service.java +++ b/src/org/redkale/service/Service.java @@ -8,8 +8,8 @@ package org.redkale.service; import org.redkale.util.*; /** - * 所有Service的实现类不得声明为final, 允许远程模式的public方法都不能声明为final。 - * 注意: "$"是一个很特殊的Service.name值 。 被标记为@Resource(name = "$") 的Service的资源名与所属父Service的资源名一致。 + * 所有Service的实现类不得声明为final, 允许远程模式的public方法都不能声明为final。
+ * 注意: "$"是一个很特殊的Service.name值 。 被标记为@Resource(name = "$") 的Service的资源名与所属父Service的资源名一致。
* *
  * Service的资源类型
@@ -59,14 +59,4 @@ public interface Service {
 
     }
 
-    /**
-     * Service的接口版本号
-     * 注: public方法的参数或返回类型或参数类型内部变更后改值必须进行改变
-     *
-     * @return 接口版本号
-     */
-    default int version() {
-        return 0;
-    }
-
 }
diff --git a/src/org/redkale/util/ResourceFactory.java b/src/org/redkale/util/ResourceFactory.java
index f5b1acb1c..57302bbef 100644
--- a/src/org/redkale/util/ResourceFactory.java
+++ b/src/org/redkale/util/ResourceFactory.java
@@ -15,10 +15,13 @@ import java.util.regex.Pattern;
 import javax.annotation.Resource;
 
 /**
- * 如果Resource(name = "$") 表示资源name采用所属对象的name
+ * 如果@Resource(name = "$") 表示资源name采用所属对象的name  
+ * 如果没有@Resource 则会取对象的getResourceName()方法值(若存在) + *
  * name规则:
- * 1: "$"有特殊含义, 不能表示"$"资源本身
- * 2: 只能是字母、数字、(短横)-、(下划线)_、点(.)的组合
+ *    1: "$"有特殊含义, 不能表示"$"资源本身
+ *    2: 只能是字母、数字、(短横)-、(下划线)_、点(.)的组合
+ * 
*

* 详情见: https://redkale.org * @@ -323,13 +326,13 @@ public final class ResourceFactory { try { Resource res = src.getClass().getAnnotation(Resource.class); if (res == null) { - String srcname = (String) src.getClass().getMethod("name").invoke(src); + String srcname = (String) src.getClass().getMethod("getResourceName").invoke(src); tname = tname.replace(RESOURCE_PARENT_NAME, srcname); } else { tname = res.name(); } } catch (Exception e) { // 获取src中的name()方法的值, 异常则忽略 - logger.log(Level.SEVERE, src.getClass().getName() + " not found @Resource on Class or [public String name()] method", e); + logger.log(Level.SEVERE, src.getClass().getName() + " not found @Resource on Class or [public String getResourceName()] method", e); } } final String rcname = tname;