From 3bf273acea80480880972d79273874ec27724f8f Mon Sep 17 00:00:00 2001 From: sun Date: Fri, 12 Jan 2024 19:25:52 +0800 Subject: [PATCH] fix[lua]: read lua in one protocol --- .../com/zfoo/net/config/ConfigManager.java | 22 ++++----------- .../zfoo/net/config/model/ConsumerModule.java | 27 +++---------------- .../zfoo/net/config/model/ProviderModule.java | 22 +++++++-------- .../net/consumer/registry/RegisterVO.java | 6 ++--- .../zfoo/net/schema/NetDefinitionParser.java | 1 - net/src/main/resources/net-1.0.xsd | 1 - .../gateway_consistent_session_config.xml | 4 +-- .../consumer_consistent_session_config.xml | 2 +- .../provider/consumer_random_config.xml | 2 +- 9 files changed, 24 insertions(+), 63 deletions(-) diff --git a/net/src/main/java/com/zfoo/net/config/ConfigManager.java b/net/src/main/java/com/zfoo/net/config/ConfigManager.java index 7f29c563..10b1a2cc 100644 --- a/net/src/main/java/com/zfoo/net/config/ConfigManager.java +++ b/net/src/main/java/com/zfoo/net/config/ConfigManager.java @@ -58,20 +58,15 @@ public class ConfigManager implements IConfigManager { public void initRegistry() { // 通过protocol,写入provider的module的id和version var providerConfig = localConfig.getProvider(); - if (Objects.nonNull(providerConfig) && CollectionUtils.isNotEmpty(providerConfig.getProviders())) { + if (providerConfig != null && CollectionUtils.isNotEmpty(providerConfig.getProviders())) { // 服务提供者名字Set列表 var providerSet = new HashSet(); // 检查并且替换配置文件中的ProtocolModule for (var providerModule : providerConfig.getProviders()) { var provider = providerModule.getProvider(); - var protocolModuleName = providerModule.getProtocolModule().getName(); - - // 从protocol中读值 - var protocolModule = ProtocolManager.moduleByModuleName(protocolModuleName); - AssertionUtils.isTrue(protocolModule != null, "服务提供者[name:{}]在协议文件中不存在", protocolModuleName); - providerModule.setProtocolModule(protocolModule); - var providerName = StringUtils.joinWith(StringUtils.HYPHEN, protocolModuleName, provider); - AssertionUtils.isTrue(providerSet.add(providerName), "服务提供者[name:{}]重复消费协议模块[provider:{}]", protocolModuleName, provider); + var protocolModule = ProtocolManager.moduleByModuleName(provider); + AssertionUtils.isTrue(protocolModule != null, "provider:[{}] does not exist in the protocol manager", provider); + AssertionUtils.isTrue(providerSet.add(provider), "provider:[{}] plicate Consumption Agreement module [provider:{}]", protocolModuleName, provider); } } @@ -79,17 +74,10 @@ public class ConfigManager implements IConfigManager { if (Objects.nonNull(consumerConfig) && CollectionUtils.isNotEmpty(consumerConfig.getConsumers())) { // 服务消费者名字Set列表 var consumerSet = new HashSet(); - var protocolModuleSet = new HashSet(); for (var consumerModule : consumerConfig.getConsumers()) { // 提供的接口实现 提供者名 var consumer = consumerModule.getConsumer(); - var protocolModuleName = consumerModule.getProtocolModule().getName(); - var protocolModule = ProtocolManager.moduleByModuleName(protocolModuleName); - AssertionUtils.isTrue(protocolModule != null, "服务消费者[name:{}]在协议文件中不存在", protocolModuleName); - consumerModule.setProtocolModule(protocolModule); - AssertionUtils.isTrue(protocolModuleSet.add(protocolModuleName), "服务消费者[name:{}]重复消费了协议模块", protocolModuleName); - var consumerName = StringUtils.joinWith(StringUtils.HYPHEN, protocolModuleName, consumer); - AssertionUtils.isTrue(consumerSet.add(consumerName), "服务消费者[name:{}]重复消费了协议模块[consumer:{}]", protocolModuleName, consumer); + AssertionUtils.isTrue(consumerSet.add(consumer), "服务消费者[name:{}]重复消费了协议模块[consumer:{}]", protocolModuleName, consumer); } } diff --git a/net/src/main/java/com/zfoo/net/config/model/ConsumerModule.java b/net/src/main/java/com/zfoo/net/config/model/ConsumerModule.java index 3d03e98f..8ae9c1c9 100644 --- a/net/src/main/java/com/zfoo/net/config/model/ConsumerModule.java +++ b/net/src/main/java/com/zfoo/net/config/model/ConsumerModule.java @@ -21,30 +21,17 @@ import java.util.Objects; */ public class ConsumerModule { - private ProtocolModule protocolModule; - // 负载均衡方式 private String loadBalancer; // 消费哪个provider private String consumer; - public ConsumerModule(ProtocolModule protocolModule, String loadBalancer, String consumer) { - this.protocolModule = protocolModule; + public ConsumerModule(String loadBalancer, String consumer) { this.consumer = consumer; this.loadBalancer = loadBalancer; } - public ConsumerModule(String protocolModule, String loadBalancer, String consumer) { - this.protocolModule = new ProtocolModule((byte) 0, protocolModule); - this.consumer = consumer; - this.loadBalancer = loadBalancer; - } - - public boolean matchProvider(ProviderModule providerModule) { - return Objects.equals(protocolModule.getName(), providerModule.getProtocolModule().getName()) && Objects.equals(consumer, providerModule.getProvider()); - } - public String getConsumer() { return consumer; } @@ -61,14 +48,6 @@ public class ConsumerModule { this.loadBalancer = loadBalancer; } - public ProtocolModule getProtocolModule() { - return protocolModule; - } - - public void setProtocolModule(ProtocolModule protocolModule) { - this.protocolModule = protocolModule; - } - @Override public boolean equals(Object o) { if (this == o) { @@ -78,11 +57,11 @@ public class ConsumerModule { return false; } ConsumerModule that = (ConsumerModule) o; - return Objects.equals(protocolModule, that.protocolModule) && Objects.equals(consumer, that.consumer); + return Objects.equals(consumer, that.consumer); } @Override public int hashCode() { - return Objects.hash(protocolModule, loadBalancer, consumer); + return Objects.hash(loadBalancer, consumer); } } diff --git a/net/src/main/java/com/zfoo/net/config/model/ProviderModule.java b/net/src/main/java/com/zfoo/net/config/model/ProviderModule.java index 11d9b138..49d2d431 100644 --- a/net/src/main/java/com/zfoo/net/config/model/ProviderModule.java +++ b/net/src/main/java/com/zfoo/net/config/model/ProviderModule.java @@ -24,21 +24,25 @@ public class ProviderModule { /** * 模块id和模块名 */ - private ProtocolModule protocolModule; + private String protocolModule; /** * 提供者名字 */ private String provider; - public ProviderModule(ProtocolModule protocolModule, String provider) { + + public ProviderModule(String protocolModule, String provider) { this.protocolModule = protocolModule; this.provider = provider; } - public ProviderModule(String protocolModule, String provider) { - this.protocolModule = new ProtocolModule((byte) 0, protocolModule); - this.provider = provider; + public String getProtocolModule() { + return protocolModule; + } + + public void setProtocolModule(String protocolModule) { + this.protocolModule = protocolModule; } public String getProvider() { @@ -49,14 +53,6 @@ public class ProviderModule { this.provider = provider; } - public ProtocolModule getProtocolModule() { - return protocolModule; - } - - public void setProtocolModule(ProtocolModule protocolModule) { - this.protocolModule = protocolModule; - } - @Override public boolean equals(Object o) { if (this == o) { diff --git a/net/src/main/java/com/zfoo/net/consumer/registry/RegisterVO.java b/net/src/main/java/com/zfoo/net/consumer/registry/RegisterVO.java index c19dc27e..b97b2182 100644 --- a/net/src/main/java/com/zfoo/net/consumer/registry/RegisterVO.java +++ b/net/src/main/java/com/zfoo/net/consumer/registry/RegisterVO.java @@ -52,7 +52,7 @@ public class RegisterVO { return false; } for (var provider : providerVO.getProviderConfig().getProviders()) { - if (consumerVO.getConsumerConfig().getConsumers().stream().anyMatch(it -> it.matchProvider(provider))) { + if (consumerVO.getConsumerConfig().getConsumers().stream().anyMatch(it -> it.getConsumer().equals(provider.getProvider()))) { return true; } } @@ -119,7 +119,7 @@ public class RegisterVO { var modules = Arrays.stream(moduleSplits) .map(it -> it.trim()) .map(it -> it.split(StringUtils.HYPHEN)) - .map(it -> new ConsumerModule(new ProtocolModule(Byte.parseByte(it[0]), it[1]), it[2], it[3])) + .map(it -> new ConsumerModule(it[0], it[1])) .toList(); return modules; } @@ -166,7 +166,7 @@ public class RegisterVO { builder.append(StringUtils.SPACE).append(StringUtils.VERTICAL_BAR).append(StringUtils.SPACE); var consumerModules = consumerConfig.getConsumers().stream() - .map(it -> StringUtils.joinWith(StringUtils.HYPHEN, it.getProtocolModule().getId(), it.getProtocolModule().getName(), it.getLoadBalancer(), it.getConsumer())) + .map(it -> StringUtils.joinWith(StringUtils.HYPHEN, it.getLoadBalancer(), it.getConsumer())) .toList(); // 服务消费者模块信息列表 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 2b8d8985..ee35c3d5 100644 --- a/net/src/main/java/com/zfoo/net/schema/NetDefinitionParser.java +++ b/net/src/main/java/com/zfoo/net/schema/NetDefinitionParser.java @@ -218,7 +218,6 @@ public class NetDefinitionParser implements BeanDefinitionParser { var clazz = ConsumerModule.class; var builder = BeanDefinitionBuilder.rootBeanDefinition(clazz); - builder.addConstructorArgValue(environment.resolvePlaceholders(addressElement.getAttribute("protocol-module"))); builder.addConstructorArgValue(environment.resolvePlaceholders(addressElement.getAttribute("load-balancer"))); builder.addConstructorArgValue(environment.resolvePlaceholders(addressElement.getAttribute("consumer"))); diff --git a/net/src/main/resources/net-1.0.xsd b/net/src/main/resources/net-1.0.xsd index b6e911a6..f273636d 100644 --- a/net/src/main/resources/net-1.0.xsd +++ b/net/src/main/resources/net-1.0.xsd @@ -43,7 +43,6 @@ - diff --git a/net/src/test/resources/gateway/gateway_consistent_session_config.xml b/net/src/test/resources/gateway/gateway_consistent_session_config.xml index 85f0f8b7..0e00a1d2 100644 --- a/net/src/test/resources/gateway/gateway_consistent_session_config.xml +++ b/net/src/test/resources/gateway/gateway_consistent_session_config.xml @@ -24,9 +24,9 @@ - + - + diff --git a/net/src/test/resources/provider/consumer_consistent_session_config.xml b/net/src/test/resources/provider/consumer_consistent_session_config.xml index 056fac7f..4ed7f72e 100644 --- a/net/src/test/resources/provider/consumer_consistent_session_config.xml +++ b/net/src/test/resources/provider/consumer_consistent_session_config.xml @@ -25,7 +25,7 @@ - + diff --git a/net/src/test/resources/provider/consumer_random_config.xml b/net/src/test/resources/provider/consumer_random_config.xml index 6c6f6883..445c8c27 100644 --- a/net/src/test/resources/provider/consumer_random_config.xml +++ b/net/src/test/resources/provider/consumer_random_config.xml @@ -24,7 +24,7 @@ - +