diff --git a/net/src/main/java/com/zfoo/net/config/model/NetConfig.java b/net/src/main/java/com/zfoo/net/config/model/NetConfig.java index 05ec380d..81d1ba8f 100644 --- a/net/src/main/java/com/zfoo/net/config/model/NetConfig.java +++ b/net/src/main/java/com/zfoo/net/config/model/NetConfig.java @@ -24,9 +24,12 @@ import java.util.Objects; public class NetConfig { private String id; private String protocolLocation; - /** - * 协议生成属性变量对应于{@link GenerateOperation} + * {@link GenerateOperation} + */ + private boolean oneProtocol; + /** + * {@link GenerateOperation} */ private boolean foldProtocol; private String protocolPath; @@ -78,6 +81,14 @@ public class NetConfig { this.protocolLocation = protocolLocation; } + public boolean isOneProtocol() { + return oneProtocol; + } + + public void setOneProtocol(boolean oneProtocol) { + this.oneProtocol = oneProtocol; + } + public boolean isFoldProtocol() { return foldProtocol; } diff --git a/net/src/main/java/com/zfoo/net/packet/PacketService.java b/net/src/main/java/com/zfoo/net/packet/PacketService.java index 3d240050..9610d487 100644 --- a/net/src/main/java/com/zfoo/net/packet/PacketService.java +++ b/net/src/main/java/com/zfoo/net/packet/PacketService.java @@ -92,6 +92,7 @@ public class PacketService implements IPacketService { var protocolLocation = netConfig.getProtocolLocation(); var generateOperation = new GenerateOperation(); + generateOperation.setOneProtocol(netConfig.isOneProtocol()); generateOperation.setFoldProtocol(netConfig.isFoldProtocol()); generateOperation.setProtocolPath(netConfig.getProtocolPath()); generateOperation.setProtocolParam(netConfig.getProtocolParam()); diff --git a/net/src/main/java/com/zfoo/net/schema/NetDefinitionParser.java b/net/src/main/java/com/zfoo/net/schema/NetDefinitionParser.java index c5fb1cc6..2b8d8985 100644 --- a/net/src/main/java/com/zfoo/net/schema/NetDefinitionParser.java +++ b/net/src/main/java/com/zfoo/net/schema/NetDefinitionParser.java @@ -101,6 +101,8 @@ public class NetDefinitionParser implements BeanDefinitionParser { // 协议protocol.xml文件的位置。 注意:直接写protocol.xml 则是从resources目录下读 resolvePlaceholder("protocol-location", "protocolLocation", builder, element, parserContext); + // 协议文件是否生成在同一个协议文件中 + resolvePlaceholder("one-protocol", "oneProtocol", builder, element, parserContext); // 文件是否折叠 resolvePlaceholder("fold-protocol", "foldProtocol", builder, element, parserContext); // 生成各种语言的协议列表 diff --git a/net/src/main/resources/net-1.0.xsd b/net/src/main/resources/net-1.0.xsd index efc15536..b6e911a6 100644 --- a/net/src/main/resources/net-1.0.xsd +++ b/net/src/main/resources/net-1.0.xsd @@ -65,7 +65,8 @@ - + + diff --git a/protocol/src/main/java/com/zfoo/protocol/generate/GenerateOperation.java b/protocol/src/main/java/com/zfoo/protocol/generate/GenerateOperation.java index 77c68eea..99a7760c 100644 --- a/protocol/src/main/java/com/zfoo/protocol/generate/GenerateOperation.java +++ b/protocol/src/main/java/com/zfoo/protocol/generate/GenerateOperation.java @@ -33,6 +33,12 @@ public class GenerateOperation { */ public static final GenerateOperation NO_OPERATION = new GenerateOperation(); + /** + * EN: All protocol files are generated in a single protocol file. + * CN: 所有的协议文件生成在一个协议文件里 + */ + private boolean oneProtocol; + /** * EN: Fold the protocol. The generated protocol file will maintain the same directory structure as the Java source file. * It will not be folded by default. @@ -66,6 +72,14 @@ public class GenerateOperation { this.protocolPath = protocolPath; } + public boolean isOneProtocol() { + return oneProtocol; + } + + public void setOneProtocol(boolean oneProtocol) { + this.oneProtocol = oneProtocol; + } + public boolean isFoldProtocol() { return foldProtocol; }