From fc027fc269a945f297a248a58fa1c8fa8ae15778 Mon Sep 17 00:00:00 2001 From: jaysunxiao Date: Fri, 24 Jun 2022 10:52:13 +0800 Subject: [PATCH] =?UTF-8?q?perf[net]:=20=E4=B8=8D=E7=94=A8=E5=BC=BA?= =?UTF-8?q?=E5=88=B6=E5=9C=A8xml=E6=96=87=E4=BB=B6=E4=B8=AD=E5=86=99?= =?UTF-8?q?=E5=8D=8F=E8=AE=AE=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/TcpClientTest.java | 2 +- .../server/TcpAsyncController.java | 2 +- .../server/TcpServerTest.java | 2 +- net/src/test/resources/protocol.xml | 21 ++++++++++--------- .../registration/ProtocolAnalysis.java | 13 +++++++----- .../protocol/xml/XmlProtocolDefinition.java | 2 +- 6 files changed, 23 insertions(+), 19 deletions(-) rename net/src/test/java/com/zfoo/net/core/{tpcAsync => tcpAsync}/client/TcpClientTest.java (97%) rename net/src/test/java/com/zfoo/net/core/{tpcAsync => tcpAsync}/server/TcpAsyncController.java (97%) rename net/src/test/java/com/zfoo/net/core/{tpcAsync => tcpAsync}/server/TcpServerTest.java (96%) diff --git a/net/src/test/java/com/zfoo/net/core/tpcAsync/client/TcpClientTest.java b/net/src/test/java/com/zfoo/net/core/tcpAsync/client/TcpClientTest.java similarity index 97% rename from net/src/test/java/com/zfoo/net/core/tpcAsync/client/TcpClientTest.java rename to net/src/test/java/com/zfoo/net/core/tcpAsync/client/TcpClientTest.java index 01f63f05..082dd056 100644 --- a/net/src/test/java/com/zfoo/net/core/tpcAsync/client/TcpClientTest.java +++ b/net/src/test/java/com/zfoo/net/core/tcpAsync/client/TcpClientTest.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and limitations under the License. */ -package com.zfoo.net.core.tpcAsync.client; +package com.zfoo.net.core.tcpAsync.client; import com.zfoo.net.NetContext; import com.zfoo.net.core.tcp.TcpClient; diff --git a/net/src/test/java/com/zfoo/net/core/tpcAsync/server/TcpAsyncController.java b/net/src/test/java/com/zfoo/net/core/tcpAsync/server/TcpAsyncController.java similarity index 97% rename from net/src/test/java/com/zfoo/net/core/tpcAsync/server/TcpAsyncController.java rename to net/src/test/java/com/zfoo/net/core/tcpAsync/server/TcpAsyncController.java index a310b4a3..356ad188 100644 --- a/net/src/test/java/com/zfoo/net/core/tpcAsync/server/TcpAsyncController.java +++ b/net/src/test/java/com/zfoo/net/core/tcpAsync/server/TcpAsyncController.java @@ -10,7 +10,7 @@ * See the License for the specific language governing permissions and limitations under the License. */ -package com.zfoo.net.core.tpcAsync.server; +package com.zfoo.net.core.tcpAsync.server; import com.zfoo.net.NetContext; import com.zfoo.net.packet.tcp.AsyncMessAnswer; diff --git a/net/src/test/java/com/zfoo/net/core/tpcAsync/server/TcpServerTest.java b/net/src/test/java/com/zfoo/net/core/tcpAsync/server/TcpServerTest.java similarity index 96% rename from net/src/test/java/com/zfoo/net/core/tpcAsync/server/TcpServerTest.java rename to net/src/test/java/com/zfoo/net/core/tcpAsync/server/TcpServerTest.java index 7faf0f29..c6f9f581 100644 --- a/net/src/test/java/com/zfoo/net/core/tpcAsync/server/TcpServerTest.java +++ b/net/src/test/java/com/zfoo/net/core/tcpAsync/server/TcpServerTest.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and limitations under the License. */ -package com.zfoo.net.core.tpcAsync.server; +package com.zfoo.net.core.tcpAsync.server; import com.zfoo.net.core.tcp.TcpServer; import com.zfoo.util.ThreadUtils; diff --git a/net/src/test/resources/protocol.xml b/net/src/test/resources/protocol.xml index d2e6a651..374c24c6 100644 --- a/net/src/test/resources/protocol.xml +++ b/net/src/test/resources/protocol.xml @@ -4,20 +4,21 @@ - - - - - + + + + + - - - - - + + + + + + diff --git a/protocol/src/main/java/com/zfoo/protocol/registration/ProtocolAnalysis.java b/protocol/src/main/java/com/zfoo/protocol/registration/ProtocolAnalysis.java index e0f82304..da0f813e 100644 --- a/protocol/src/main/java/com/zfoo/protocol/registration/ProtocolAnalysis.java +++ b/protocol/src/main/java/com/zfoo/protocol/registration/ProtocolAnalysis.java @@ -123,16 +123,18 @@ public class ProtocolAnalysis { modules[module.getId()] = module; for (var protocolDefinition : moduleDefinition.getProtocols()) { - var id = protocolDefinition.getId(); var location = protocolDefinition.getLocation(); var clazz = Class.forName(location); + var id = getProtocolIdByClass(clazz); AssertionUtils.isTrue(id >= moduleDefinition.getMinId(), "模块[{}]中的协议[{}]的协议号必须大于或者等于[{}]", moduleDefinition.getName(), clazz.getSimpleName(), moduleDefinition.getMinId()); AssertionUtils.isTrue(id < moduleDefinition.getMaxId(), "模块[{}]中的协议[{}]的协议号必须小于[{}]", moduleDefinition.getName(), clazz.getSimpleName(), moduleDefinition.getMaxId()); AssertionUtils.isNull(protocols[id], "duplicate definition [id:{}] Exception!", id); - // 协议号是否和id是否相等 - AssertionUtils.isTrue(getProtocolIdByClass(clazz) == id, "[class:{}]协议序列号[{}]和协议文件里的协议序列号不相等", clazz.getCanonicalName(), PROTOCOL_ID); + // 协议号是否和id是否相等,如果xml文件中没有填protocolId则不检测 + if (protocolDefinition.getId() >= 0) { + AssertionUtils.isTrue(protocolDefinition.getId() == id, "[class:{}]协议序列号[{}]和协议文件里的协议序列号不相等", clazz.getCanonicalName(), PROTOCOL_ID); + } checkProtocol(clazz); } } @@ -140,8 +142,9 @@ public class ProtocolAnalysis { for (var moduleDefinition : xmlProtocols.getModules()) { var module = modules[moduleDefinition.getId()]; for (var protocolDefinition : moduleDefinition.getProtocols()) { - var id = protocolDefinition.getId(); - var clazz = protocolClassMap.get(id); + var location = protocolDefinition.getLocation(); + var clazz = Class.forName(location); + var id = getProtocolIdByClass(clazz); var registration = parseProtocolRegistration(clazz, module); if (protocolDefinition.isEnhance()) { enhanceList.add(registration); diff --git a/protocol/src/main/java/com/zfoo/protocol/xml/XmlProtocolDefinition.java b/protocol/src/main/java/com/zfoo/protocol/xml/XmlProtocolDefinition.java index 213536e5..070973e1 100644 --- a/protocol/src/main/java/com/zfoo/protocol/xml/XmlProtocolDefinition.java +++ b/protocol/src/main/java/com/zfoo/protocol/xml/XmlProtocolDefinition.java @@ -20,7 +20,7 @@ import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; public class XmlProtocolDefinition { @JacksonXmlProperty(isAttribute = true, localName = "id") - private short id; + private final short id = -1; @JacksonXmlProperty(isAttribute = true, localName = "location") private String location;