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;