diff --git a/boot/pom.xml b/boot/pom.xml new file mode 100644 index 00000000..9e4a95d5 --- /dev/null +++ b/boot/pom.xml @@ -0,0 +1,252 @@ + + + 4.0.0 + + com.zfoo + boot + 3.0 + + jar + + + + + 3.0 + 3.0 + 3.0 + 3.0 + 3.0 + 3.0 + 3.0 + 3.0 + 3.0 + 3.0 + + + + 5.3.4 + 2.4.3 + + + + 1.15 + 2.8.0 + 4.4 + 3.12.0 + 1.4 + 1.2 + 2.14.0 + 4.5.13 + 4.4.14 + 30.1-jre + 3.9.1 + 2.8.6 + 5.0.3 + 2.8.8 + 3.2.0 + 5.5.9 + 5.7.0 + 1.28 + + + + 2.12.1 + 1.2.51 + + 4.1.2 + + 3.27.0-GA + 1.10.22 + + + 4.1.63.Final + + + 3.6.1 + 5.1.0 + + + 4.2.1 + 3.3.0 + + + 4.5.2 + + + 7.9.3 + 4.1.5 + 8.6.2 + + + 1.7.30 + 1.2.3 + + 4.12 + + + 11 + UTF-8 + 1.3.5 + + + 3.1.0 + 3.8.1 + 3.2.0 + 3.0.0-M5 + 3.2.0 + 3.2.4 + 2.8.1 + + + ${file.encoding} + ${file.encoding} + + + + + org.springframework.boot + spring-boot-autoconfigure + ${spring.boot.version} + compile + + + + com.zfoo + net + ${zfoo.net.version} + + + + com.zfoo + orm + ${zfoo.orm.version} + + + + com.zfoo + event + ${zfoo.event.version} + + + + com.zfoo + scheduler + ${zfoo.scheduler.version} + + + + com.zfoo + storage + ${zfoo.storage.version} + + + + + org.slf4j + slf4j-api + ${slf4j.version} + + + + ch.qos.logback + logback-core + ${logback.version} + + + + ch.qos.logback + logback-classic + ${logback.version} + + + slf4j-api + org.slf4j + + + + + + + junit + junit + ${junit.version} + test + + + + + src/main/java + src/test/java + + + + + + org.apache.maven.plugins + maven-clean-plugin + ${maven-clean-plugin.version} + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + ${java.version} + ${java.version} + ${file.encoding} + + + + + + org.apache.maven.plugins + maven-resources-plugin + ${maven-resources-plugin.version} + + + copy-resources + package + + copy-resources + + + ${file.encoding} + ${project.build.directory}/resource + + + src/main/resources/ + false + + + + + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + once + 10 + -Dfile.encoding=${file.encoding} + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven-jar-plugin.version} + + + + + + diff --git a/orm/src/main/java/com/zfoo/orm/model/config/CachesConfig.java b/boot/src/main/java/com/zfoo/boot/EventAutoConfiguration.java similarity index 50% rename from orm/src/main/java/com/zfoo/orm/model/config/CachesConfig.java rename to boot/src/main/java/com/zfoo/boot/EventAutoConfiguration.java index cf725af9..2e27b404 100644 --- a/orm/src/main/java/com/zfoo/orm/model/config/CachesConfig.java +++ b/boot/src/main/java/com/zfoo/boot/EventAutoConfiguration.java @@ -1,6 +1,5 @@ /* * Copyright (C) 2020 The zfoo Authors - * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * @@ -11,23 +10,31 @@ * See the License for the specific language governing permissions and limitations under the License. */ -package com.zfoo.orm.model.config; +package com.zfoo.boot; -import java.util.List; +import com.zfoo.event.EventContext; +import com.zfoo.event.schema.EventRegisterProcessor; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; /** * @author jaysunxiao * @version 3.0 */ -public class CachesConfig { +@Configuration(proxyBeanMethods = false) +public class EventAutoConfiguration { - private List cacheStrategies; - - public List getCacheStrategies() { - return cacheStrategies; + @Bean + @ConditionalOnMissingBean + public EventRegisterProcessor eventRegisterProcessor() { + return new EventRegisterProcessor(); } - public void setCacheStrategies(List cacheStrategies) { - this.cacheStrategies = cacheStrategies; + @Bean + @ConditionalOnMissingBean + public EventContext eventContext() { + return new EventContext(); } + } diff --git a/boot/src/main/java/com/zfoo/boot/NetAutoConfiguration.java b/boot/src/main/java/com/zfoo/boot/NetAutoConfiguration.java new file mode 100644 index 00000000..ea876d85 --- /dev/null +++ b/boot/src/main/java/com/zfoo/boot/NetAutoConfiguration.java @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2020 The zfoo Authors + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and limitations under the License. + */ + +package com.zfoo.boot; + +import com.zfoo.net.NetContext; +import com.zfoo.net.config.manager.ConfigManager; +import com.zfoo.net.config.model.NetConfig; +import com.zfoo.net.consumer.service.Consumer; +import com.zfoo.net.dispatcher.manager.PacketDispatcher; +import com.zfoo.net.packet.service.PacketService; +import com.zfoo.net.session.manager.SessionManager; +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @author jaysunxiao + * @version 3.0 + */ +@Configuration(proxyBeanMethods = false) +@ConditionalOnBean(NetConfig.class) +public class NetAutoConfiguration { + + @Bean + @ConditionalOnBean(NetConfig.class) + public ConfigManager configManager(NetConfig netConfig) { + var configManager = new ConfigManager(); + configManager.setLocalConfig(netConfig); + return configManager; + } + + @Bean + @ConditionalOnMissingBean + public PacketService packetService() { + return new PacketService(); + } + + @Bean + @ConditionalOnMissingBean + public PacketDispatcher packetDispatcher() { + return new PacketDispatcher(); + } + + @Bean + @ConditionalOnMissingBean + public Consumer consumer() { + return new Consumer(); + } + + @Bean + @ConditionalOnMissingBean + public SessionManager sessionManager() { + return new SessionManager(); + } + + @Bean + @ConditionalOnMissingBean + public NetContext netContext() { + return new NetContext(); + } + +} diff --git a/boot/src/main/java/com/zfoo/boot/OrmAutoConfiguration.java b/boot/src/main/java/com/zfoo/boot/OrmAutoConfiguration.java new file mode 100644 index 00000000..086973a0 --- /dev/null +++ b/boot/src/main/java/com/zfoo/boot/OrmAutoConfiguration.java @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2020 The zfoo Authors + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and limitations under the License. + */ + +package com.zfoo.boot; + +import com.zfoo.orm.OrmContext; +import com.zfoo.orm.manager.OrmManager; +import com.zfoo.orm.model.accessor.MongodbAccessor; +import com.zfoo.orm.model.config.OrmConfig; +import com.zfoo.orm.model.query.MongodbQuery; +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @author jaysunxiao + * @version 3.0 + */ +@Configuration(proxyBeanMethods = false) +@ConditionalOnBean(OrmConfig.class) +public class OrmAutoConfiguration { + + @Bean + @ConditionalOnBean(OrmConfig.class) + public OrmManager ormManager(OrmConfig ormConfig) { + var ormManager = new OrmManager(); + ormManager.setOrmConfig(ormConfig); + return ormManager; + } + + @Bean + @ConditionalOnMissingBean + public MongodbAccessor mongodbAccessor() { + return new MongodbAccessor(); + } + + @Bean + @ConditionalOnMissingBean + public MongodbQuery mongodbQuery() { + return new MongodbQuery(); + } + + + @Bean + @ConditionalOnMissingBean + public OrmContext ormContext() { + return new OrmContext(); + } + +} diff --git a/boot/src/main/java/com/zfoo/boot/SchedulerAutoConfiguration.java b/boot/src/main/java/com/zfoo/boot/SchedulerAutoConfiguration.java new file mode 100644 index 00000000..ae2117c4 --- /dev/null +++ b/boot/src/main/java/com/zfoo/boot/SchedulerAutoConfiguration.java @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2020 The zfoo Authors + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and limitations under the License. + */ + +package com.zfoo.boot; + +import com.zfoo.scheduler.SchedulerContext; +import com.zfoo.scheduler.schema.SchedulerRegisterProcessor; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @author jaysunxiao + * @version 3.0 + */ +@Configuration(proxyBeanMethods = false) +public class SchedulerAutoConfiguration { + + @Bean + @ConditionalOnMissingBean + public SchedulerRegisterProcessor schedulerRegisterProcessor() { + return new SchedulerRegisterProcessor(); + } + + @Bean + @ConditionalOnMissingBean + public SchedulerContext schedulerContext() { + return new SchedulerContext(); + } + +} diff --git a/boot/src/main/java/com/zfoo/boot/StorageAutoConfiguration.java b/boot/src/main/java/com/zfoo/boot/StorageAutoConfiguration.java new file mode 100644 index 00000000..1f05fffa --- /dev/null +++ b/boot/src/main/java/com/zfoo/boot/StorageAutoConfiguration.java @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2020 The zfoo Authors + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and limitations under the License. + */ + +package com.zfoo.boot; + +import com.zfoo.storage.StorageContext; +import com.zfoo.storage.interpreter.ExcelResourceReader; +import com.zfoo.storage.manager.StorageManager; +import com.zfoo.storage.model.config.StorageConfig; +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @author jaysunxiao + * @version 3.0 + */ +@Configuration(proxyBeanMethods = false) +@ConditionalOnBean(StorageConfig.class) +public class StorageAutoConfiguration { + + @Bean + @ConditionalOnMissingBean + @ConditionalOnBean(StorageConfig.class) + public StorageManager storageManager(StorageConfig storageConfig) { + var storageManager = new StorageManager(); + storageManager.setStorageConfig(storageConfig); + return storageManager; + } + + @Bean + @ConditionalOnMissingBean + public ExcelResourceReader excelResourceReader() { + return new ExcelResourceReader(); + } + + @Bean + @ConditionalOnMissingBean + public StorageContext storageContext() { + return new StorageContext(); + } + +} diff --git a/boot/src/main/resources/META-INF/spring.factories b/boot/src/main/resources/META-INF/spring.factories new file mode 100644 index 00000000..c3f8d4fe --- /dev/null +++ b/boot/src/main/resources/META-INF/spring.factories @@ -0,0 +1,6 @@ +org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ +com.zfoo.boot.EventAutoConfiguration,\ +com.zfoo.boot.SchedulerAutoConfiguration,\ +com.zfoo.boot.StorageAutoConfiguration,\ +com.zfoo.boot.OrmAutoConfiguration,\ +com.zfoo.boot.NetAutoConfiguration \ No newline at end of file diff --git a/event/pom.xml b/event/pom.xml index 066c9038..b40cfb04 100644 --- a/event/pom.xml +++ b/event/pom.xml @@ -13,6 +13,7 @@ + 3.0 3.0 3.0 3.0 diff --git a/hotswap/pom.xml b/hotswap/pom.xml index 0b4adfd3..70254d7b 100644 --- a/hotswap/pom.xml +++ b/hotswap/pom.xml @@ -12,6 +12,7 @@ + 3.0 3.0 3.0 3.0 diff --git a/monitor/pom.xml b/monitor/pom.xml index 5cfc2b6e..ee81e797 100644 --- a/monitor/pom.xml +++ b/monitor/pom.xml @@ -12,6 +12,7 @@ + 3.0 3.0 3.0 3.0 diff --git a/net/pom.xml b/net/pom.xml index 55d2cb46..277892a2 100644 --- a/net/pom.xml +++ b/net/pom.xml @@ -13,6 +13,7 @@ + 3.0 3.0 3.0 3.0 diff --git a/net/src/main/java/com/zfoo/net/config/manager/ConfigManager.java b/net/src/main/java/com/zfoo/net/config/manager/ConfigManager.java index ad732eeb..c03ec864 100644 --- a/net/src/main/java/com/zfoo/net/config/manager/ConfigManager.java +++ b/net/src/main/java/com/zfoo/net/config/manager/ConfigManager.java @@ -64,7 +64,7 @@ public class ConfigManager implements IConfigManager { @Override public void initRegistry() { // 通过protocol,写入provider的module的id和version - var providerConfig = localConfig.getProviderConfig(); + var providerConfig = localConfig.getProvider(); if (Objects.nonNull(providerConfig) && CollectionUtils.isNotEmpty(providerConfig.getModules())) { var providerModules = new ArrayList(providerConfig.getModules().size()); for (var providerModule : providerConfig.getModules()) { @@ -76,7 +76,7 @@ public class ConfigManager implements IConfigManager { } // 通过protocol,写入consumer的module的id和version - var consumerConfig = localConfig.getConsumerConfig(); + var consumerConfig = localConfig.getConsumer(); if (Objects.nonNull(consumerConfig) && CollectionUtils.isNotEmpty(consumerConfig.getModules())) { var consumerModules = new ArrayList(consumerConfig.getModules().size()); for (var providerModule : consumerConfig.getModules()) { diff --git a/net/src/main/java/com/zfoo/net/config/model/HostConfig.java b/net/src/main/java/com/zfoo/net/config/model/HostConfig.java index d2780f83..30a7f64e 100644 --- a/net/src/main/java/com/zfoo/net/config/model/HostConfig.java +++ b/net/src/main/java/com/zfoo/net/config/model/HostConfig.java @@ -25,7 +25,7 @@ public class HostConfig { private String center; private String user; private String password; - private Map addressMap; + private Map address; public void setCenter(String center) { this.center = center; @@ -51,12 +51,12 @@ public class HostConfig { this.password = password; } - public Map getAddressMap() { - return addressMap; + public Map getAddress() { + return address; } - public void setAddressMap(Map addressMap) { - this.addressMap = addressMap; + public void setAddress(Map address) { + this.address = address; } @Override @@ -71,11 +71,11 @@ public class HostConfig { return Objects.equals(center, that.center) && Objects.equals(user, that.user) && Objects.equals(password, that.password) && - Objects.equals(addressMap, that.addressMap); + Objects.equals(address, that.address); } @Override public int hashCode() { - return Objects.hash(center, user, password, addressMap); + return Objects.hash(center, user, password, address); } } diff --git a/net/src/main/java/com/zfoo/net/config/model/MonitorConfig.java b/net/src/main/java/com/zfoo/net/config/model/MonitorConfig.java index ba39d935..a725045e 100644 --- a/net/src/main/java/com/zfoo/net/config/model/MonitorConfig.java +++ b/net/src/main/java/com/zfoo/net/config/model/MonitorConfig.java @@ -25,14 +25,14 @@ public class MonitorConfig { private String center; private String user; private String password; - private Map addressMap; + private Map address; public static MonitorConfig valueOf(String center, String user, String password, Map addressMap) { MonitorConfig config = new MonitorConfig(); config.center = center; config.user = user; config.password = password; - config.addressMap = addressMap; + config.address = addressMap; return config; } @@ -60,12 +60,12 @@ public class MonitorConfig { this.password = password; } - public Map getAddressMap() { - return addressMap; + public Map getAddress() { + return address; } - public void setAddressMap(Map addressMap) { - this.addressMap = addressMap; + public void setAddress(Map address) { + this.address = address; } @Override @@ -80,11 +80,11 @@ public class MonitorConfig { return Objects.equals(center, that.center) && Objects.equals(user, that.user) && Objects.equals(password, that.password) && - Objects.equals(addressMap, that.addressMap); + Objects.equals(address, that.address); } @Override public int hashCode() { - return Objects.hash(center, user, password, addressMap); + return Objects.hash(center, user, password, address); } } 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 92e28866..bb8bb47c 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 @@ -37,16 +37,16 @@ public class NetConfig { private boolean generateCsProtocol; private boolean generateLuaProtocol; - private RegistryConfig registryConfig; - private MonitorConfig monitorConfig; - private HostConfig hostConfig; + private RegistryConfig registry; + private MonitorConfig monitor; + private HostConfig host; - private ProviderConfig providerConfig; - private ConsumerConfig consumerConfig; + private ProviderConfig provider; + private ConsumerConfig consumer; public RegisterVO toLocalRegisterVO() { - return RegisterVO.valueOf(id, providerConfig, consumerConfig); + return RegisterVO.valueOf(id, provider, consumer); } public String getId() { @@ -105,44 +105,44 @@ public class NetConfig { this.generateLuaProtocol = generateLuaProtocol; } - public RegistryConfig getRegistryConfig() { - return registryConfig; + public RegistryConfig getRegistry() { + return registry; } - public void setRegistryConfig(RegistryConfig registryConfig) { - this.registryConfig = registryConfig; + public void setRegistry(RegistryConfig registry) { + this.registry = registry; } - public MonitorConfig getMonitorConfig() { - return monitorConfig; + public MonitorConfig getMonitor() { + return monitor; } - public void setMonitorConfig(MonitorConfig monitorConfig) { - this.monitorConfig = monitorConfig; + public void setMonitor(MonitorConfig monitor) { + this.monitor = monitor; } - public HostConfig getHostConfig() { - return hostConfig; + public HostConfig getHost() { + return host; } - public void setHostConfig(HostConfig hostConfig) { - this.hostConfig = hostConfig; + public void setHost(HostConfig host) { + this.host = host; } - public ProviderConfig getProviderConfig() { - return providerConfig; + public ProviderConfig getProvider() { + return provider; } - public void setProviderConfig(ProviderConfig providerConfig) { - this.providerConfig = providerConfig; + public void setProvider(ProviderConfig provider) { + this.provider = provider; } - public ConsumerConfig getConsumerConfig() { - return consumerConfig; + public ConsumerConfig getConsumer() { + return consumer; } - public void setConsumerConfig(ConsumerConfig consumerConfig) { - this.consumerConfig = consumerConfig; + public void setConsumer(ConsumerConfig consumer) { + this.consumer = consumer; } @Override @@ -157,15 +157,15 @@ public class NetConfig { return generateJsProtocol == netConfig.generateJsProtocol && Objects.equals(id, netConfig.id) && Objects.equals(protocolLocation, netConfig.protocolLocation) && - Objects.equals(registryConfig, netConfig.registryConfig) && - Objects.equals(monitorConfig, netConfig.monitorConfig) && - Objects.equals(hostConfig, netConfig.hostConfig) && - Objects.equals(providerConfig, netConfig.providerConfig) && - Objects.equals(consumerConfig, netConfig.consumerConfig); + Objects.equals(registry, netConfig.registry) && + Objects.equals(monitor, netConfig.monitor) && + Objects.equals(host, netConfig.host) && + Objects.equals(provider, netConfig.provider) && + Objects.equals(consumer, netConfig.consumer); } @Override public int hashCode() { - return Objects.hash(id, protocolLocation, generateJsProtocol, registryConfig, monitorConfig, hostConfig, providerConfig, consumerConfig); + return Objects.hash(id, protocolLocation, generateJsProtocol, registry, monitor, host, provider, consumer); } } diff --git a/net/src/main/java/com/zfoo/net/config/model/RegistryConfig.java b/net/src/main/java/com/zfoo/net/config/model/RegistryConfig.java index 523e6124..a808cb2e 100644 --- a/net/src/main/java/com/zfoo/net/config/model/RegistryConfig.java +++ b/net/src/main/java/com/zfoo/net/config/model/RegistryConfig.java @@ -27,14 +27,14 @@ public class RegistryConfig { private String center; private String user; private String password; - private Map addressMap; + private Map address; public static RegistryConfig valueOf(String center, String user, String password, Map addressMap) { RegistryConfig config = new RegistryConfig(); config.center = center; config.user = user; config.password = password; - config.addressMap = addressMap; + config.address = addressMap; return config; } @@ -70,12 +70,12 @@ public class RegistryConfig { this.password = password; } - public Map getAddressMap() { - return addressMap; + public Map getAddress() { + return address; } - public void setAddressMap(Map addressMap) { - this.addressMap = addressMap; + public void setAddress(Map address) { + this.address = address; } @Override @@ -90,11 +90,11 @@ public class RegistryConfig { return Objects.equals(center, that.center) && Objects.equals(user, that.user) && Objects.equals(password, that.password) && - Objects.equals(addressMap, that.addressMap); + Objects.equals(address, that.address); } @Override public int hashCode() { - return Objects.hash(center, user, password, addressMap); + return Objects.hash(center, user, password, address); } } diff --git a/net/src/main/java/com/zfoo/net/consumer/registry/ZookeeperRegistry.java b/net/src/main/java/com/zfoo/net/consumer/registry/ZookeeperRegistry.java index 19471ec0..0885cc77 100644 --- a/net/src/main/java/com/zfoo/net/consumer/registry/ZookeeperRegistry.java +++ b/net/src/main/java/com/zfoo/net/consumer/registry/ZookeeperRegistry.java @@ -126,7 +126,7 @@ public class ZookeeperRegistry implements IRegistry { @Override public void start() { - var registryConfig = NetContext.getConfigManager().getLocalConfig().getRegistryConfig(); + var registryConfig = NetContext.getConfigManager().getLocalConfig().getRegistry(); if (Objects.isNull(registryConfig)) { logger.info("服务提供者没有配置,不会在zk种注册服务,如果是单机启动请忽略这条日志"); return; @@ -141,7 +141,7 @@ public class ZookeeperRegistry implements IRegistry { } private void startProvider() { - var providerConfig = NetContext.getConfigManager().getLocalConfig().getProviderConfig(); + var providerConfig = NetContext.getConfigManager().getLocalConfig().getProvider(); if (Objects.isNull(providerConfig)) { logger.info("服务提供者没有配置,不会在zk种注册服务,如果是单机启动请忽略这条日志"); @@ -153,14 +153,14 @@ public class ZookeeperRegistry implements IRegistry { } private void startCurator() { - var registryConfig = NetContext.getConfigManager().getLocalConfig().getRegistryConfig(); + var registryConfig = NetContext.getConfigManager().getLocalConfig().getRegistry(); if (!registryConfig.getCenter().toLowerCase().matches("zookeeper")) { throw new IllegalArgumentException(StringUtils .format("[center:{}]注册中心只能是zookeeper", JsonUtils.object2String(registryConfig))); } - var zookeeperConnectStr = HostAndPort.toHostAndPortListStr(HostAndPort.toHostAndPortList(registryConfig.getAddressMap().values())); + var zookeeperConnectStr = HostAndPort.toHostAndPortListStr(HostAndPort.toHostAndPortList(registryConfig.getAddress().values())); var builder = CuratorFrameworkFactory.builder(); builder.connectString(zookeeperConnectStr); if (registryConfig.hasZookeeperAuthor()) { @@ -207,7 +207,7 @@ public class ZookeeperRegistry implements IRegistry { // 创建zookeeper的根路径 var rootStat = curator.checkExists().forPath(ROOT_PATH); if (Objects.isNull(rootStat)) { - var registryConfig = NetContext.getConfigManager().getLocalConfig().getRegistryConfig(); + var registryConfig = NetContext.getConfigManager().getLocalConfig().getRegistry(); var builder = curator.create(); builder.creatingParentsIfNeeded(); if (registryConfig.hasZookeeperAuthor()) { @@ -218,7 +218,7 @@ public class ZookeeperRegistry implements IRegistry { builder.withMode(CreateMode.PERSISTENT); builder.forPath(ROOT_PATH, StringUtils.bytes(registryConfig.getCenter())); } else { - var registryConfig = NetContext.getConfigManager().getLocalConfig().getRegistryConfig(); + var registryConfig = NetContext.getConfigManager().getLocalConfig().getRegistry(); var bytes = curator.getData().storingStatIn(new Stat()).forPath(ROOT_PATH); var rootPathData = StringUtils.bytesToString(bytes); 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 b4928d51..5d56df17 100644 --- a/net/src/main/java/com/zfoo/net/schema/NetDefinitionParser.java +++ b/net/src/main/java/com/zfoo/net/schema/NetDefinitionParser.java @@ -20,7 +20,6 @@ import com.zfoo.net.consumer.service.Consumer; import com.zfoo.net.dispatcher.manager.PacketDispatcher; import com.zfoo.net.packet.service.PacketService; import com.zfoo.net.session.manager.SessionManager; -import com.zfoo.protocol.ProtocolManager; import com.zfoo.protocol.registration.ProtocolModule; import com.zfoo.protocol.util.DomUtils; import com.zfoo.protocol.util.StringUtils; @@ -60,11 +59,6 @@ public class NetDefinitionParser implements BeanDefinitionParser { builder.addPropertyReference("localConfig", NetConfig.class.getCanonicalName()); parserContext.getRegistry().registerBeanDefinition(clazz.getCanonicalName(), builder.getBeanDefinition()); - // 注册ProtocolManager - clazz = ProtocolManager.class; - builder = BeanDefinitionBuilder.rootBeanDefinition(clazz); - parserContext.getRegistry().registerBeanDefinition(clazz.getCanonicalName(), builder.getBeanDefinition()); - // 注册PacketService clazz = PacketService.class; builder = BeanDefinitionBuilder.rootBeanDefinition(clazz); @@ -104,31 +98,31 @@ public class NetDefinitionParser implements BeanDefinitionParser { var registryElement = DomUtils.getFirstChildElementByTagName(element, "registry"); if (registryElement != null) { parseRegistryConfig(registryElement, parserContext); - builder.addPropertyReference("registryConfig", RegistryConfig.class.getCanonicalName()); + builder.addPropertyReference("registry", RegistryConfig.class.getCanonicalName()); } var monitorElement = DomUtils.getFirstChildElementByTagName(element, "monitor"); if (monitorElement != null) { parseMonitorConfig(monitorElement, parserContext); - builder.addPropertyReference("monitorConfig", MonitorConfig.class.getCanonicalName()); + builder.addPropertyReference("monitor", MonitorConfig.class.getCanonicalName()); } var hostElement = DomUtils.getFirstChildElementByTagName(element, "host"); if (hostElement != null) { - builder.addPropertyReference("hostConfig", HostConfig.class.getCanonicalName()); + builder.addPropertyReference("host", HostConfig.class.getCanonicalName()); parseHostConfig(hostElement, parserContext); } var providerElement = DomUtils.getFirstChildElementByTagName(element, "provider"); if (providerElement != null) { - builder.addPropertyReference("providerConfig", ProviderConfig.class.getCanonicalName()); + builder.addPropertyReference("provider", ProviderConfig.class.getCanonicalName()); parseProviderConfig(providerElement, parserContext); } var consumerElement = DomUtils.getFirstChildElementByTagName(element, "consumer"); if (consumerElement != null) { parseConsumerConfig(consumerElement, parserContext); - builder.addPropertyReference("consumerConfig", ConsumerConfig.class.getCanonicalName()); + builder.addPropertyReference("consumer", ConsumerConfig.class.getCanonicalName()); } parserContext.getRegistry().registerBeanDefinition(clazz.getCanonicalName(), builder.getBeanDefinition()); @@ -142,7 +136,7 @@ public class NetDefinitionParser implements BeanDefinitionParser { resolvePlaceholder("user", "user", builder, element, parserContext); resolvePlaceholder("password", "password", builder, element, parserContext); var addressMap = parseAddress(element, parserContext); - builder.addPropertyValue("addressMap", addressMap); + builder.addPropertyValue("address", addressMap); parserContext.getRegistry().registerBeanDefinition(clazz.getCanonicalName(), builder.getBeanDefinition()); } @@ -154,7 +148,7 @@ public class NetDefinitionParser implements BeanDefinitionParser { resolvePlaceholder("user", "user", builder, element, parserContext); resolvePlaceholder("password", "password", builder, element, parserContext); var addressMap = parseAddress(element, parserContext); - builder.addPropertyValue("addressMap", addressMap); + builder.addPropertyValue("address", addressMap); parserContext.getRegistry().registerBeanDefinition(clazz.getCanonicalName(), builder.getBeanDefinition()); } @@ -166,7 +160,7 @@ public class NetDefinitionParser implements BeanDefinitionParser { resolvePlaceholder("user", "user", builder, element, parserContext); resolvePlaceholder("password", "password", builder, element, parserContext); var addressMap = parseAddress(element, parserContext); - builder.addPropertyValue("addressMap", addressMap); + builder.addPropertyValue("address", addressMap); parserContext.getRegistry().registerBeanDefinition(clazz.getCanonicalName(), builder.getBeanDefinition()); } diff --git a/net/src/main/java/com/zfoo/net/task/TaskManager.java b/net/src/main/java/com/zfoo/net/task/TaskManager.java index c2d1aa15..2795eace 100644 --- a/net/src/main/java/com/zfoo/net/task/TaskManager.java +++ b/net/src/main/java/com/zfoo/net/task/TaskManager.java @@ -50,7 +50,7 @@ public final class TaskManager implements ITaskManager { static { var localConfig = NetContext.getConfigManager().getLocalConfig(); - var providerConfig = localConfig.getProviderConfig(); + var providerConfig = localConfig.getProvider(); var dispatch = providerConfig == null ? "consistent-hash" : providerConfig.getDispatch(); var dispatchThread = (providerConfig == null || StringUtils.isBlank(providerConfig.getDispatchThread())) diff --git a/net/src/test/java/com/zfoo/net/core/tcp/client/TcpClientTest.java b/net/src/test/java/com/zfoo/net/core/tcp/client/TcpClientTest.java index ffe1678c..2edbccfd 100644 --- a/net/src/test/java/com/zfoo/net/core/tcp/client/TcpClientTest.java +++ b/net/src/test/java/com/zfoo/net/core/tcp/client/TcpClientTest.java @@ -44,7 +44,7 @@ public class TcpClientTest { public void startClient0() { var context = new ClassPathXmlApplicationContext("config.xml"); SessionUtils.printSessionInfo(); - var client = new TcpClient(HostAndPort.valueOf(NetContext.getConfigManager().getLocalConfig().getHostConfig().getAddressMap().get("server0"))); + var client = new TcpClient(HostAndPort.valueOf(NetContext.getConfigManager().getLocalConfig().getHost().getAddress().get("server0"))); var session = client.start(); var request = new TcpHelloRequest(); @@ -64,7 +64,7 @@ public class TcpClientTest { public void syncClientTest() { var context = new ClassPathXmlApplicationContext("config.xml"); SessionUtils.printSessionInfo(); - var client = new TcpClient(HostAndPort.valueOf(NetContext.getConfigManager().getLocalConfig().getHostConfig().getAddressMap().get("server1"))); + var client = new TcpClient(HostAndPort.valueOf(NetContext.getConfigManager().getLocalConfig().getHost().getAddress().get("server1"))); var session = client.start(); var executorSize = Runtime.getRuntime().availableProcessors() * 2; @@ -93,7 +93,7 @@ public class TcpClientTest { @Test public void asyncClientTest() { var context = new ClassPathXmlApplicationContext("config.xml"); - var client1 = new TcpClient(HostAndPort.valueOf(NetContext.getConfigManager().getLocalConfig().getHostConfig().getAddressMap().get("server1"))); + var client1 = new TcpClient(HostAndPort.valueOf(NetContext.getConfigManager().getLocalConfig().getHost().getAddress().get("server1"))); var session1 = client1.start(); var executorSize = Runtime.getRuntime().availableProcessors() * 2; diff --git a/net/src/test/java/com/zfoo/net/core/tcp/server/TcpServerTest.java b/net/src/test/java/com/zfoo/net/core/tcp/server/TcpServerTest.java index b51bc592..cfc38d88 100644 --- a/net/src/test/java/com/zfoo/net/core/tcp/server/TcpServerTest.java +++ b/net/src/test/java/com/zfoo/net/core/tcp/server/TcpServerTest.java @@ -42,7 +42,7 @@ public class TcpServerTest { var context = new ClassPathXmlApplicationContext("config.xml"); SessionUtils.printSessionInfo(); - var server0 = new TcpServer(HostAndPort.valueOf(NetContext.getConfigManager().getLocalConfig().getHostConfig().getAddressMap().get("server0"))); + var server0 = new TcpServer(HostAndPort.valueOf(NetContext.getConfigManager().getLocalConfig().getHost().getAddress().get("server0"))); server0.start(); ThreadUtils.sleep(Long.MAX_VALUE); } @@ -53,7 +53,7 @@ public class TcpServerTest { SessionUtils.printSessionInfo(); - var server1 = new TcpServer(HostAndPort.valueOf(NetContext.getConfigManager().getLocalConfig().getHostConfig().getAddressMap().get("server1"))); + var server1 = new TcpServer(HostAndPort.valueOf(NetContext.getConfigManager().getLocalConfig().getHost().getAddress().get("server1"))); server1.start(); // 连接server0 @@ -61,7 +61,7 @@ public class TcpServerTest { executor.execute(() -> { while (true) { try { - var client0 = new TcpClient(HostAndPort.valueOf(NetContext.getConfigManager().getLocalConfig().getHostConfig().getAddressMap().get("client0"))); + var client0 = new TcpClient(HostAndPort.valueOf(NetContext.getConfigManager().getLocalConfig().getHost().getAddress().get("client0"))); client0.start(); break; } catch (Exception e) { diff --git a/orm/pom.xml b/orm/pom.xml index e86b4d59..014ea6c9 100644 --- a/orm/pom.xml +++ b/orm/pom.xml @@ -12,6 +12,7 @@ + 3.0 3.0 3.0 3.0 diff --git a/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java b/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java index 4ee21cce..5e700718 100644 --- a/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java +++ b/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java @@ -98,9 +98,9 @@ public class OrmManager implements IOrmManager { .codecRegistry(pojoCodecRegistry); // 设置数据库地址 - var hostConfig = ormConfig.getHostConfig(); - if (CollectionUtils.isNotEmpty(hostConfig.getAddressMap())) { - var hostList = HostAndPort.toHostAndPortList(hostConfig.getAddressMap().values()) + var hostConfig = ormConfig.getHost(); + if (CollectionUtils.isNotEmpty(hostConfig.getAddress())) { + var hostList = HostAndPort.toHostAndPortList(hostConfig.getAddress().values()) .stream() .map(it -> new ServerAddress(it.getHost(), it.getPort())) .collect(Collectors.toList()); @@ -293,8 +293,8 @@ public class OrmManager implements IOrmManager { public EntityDef parserEntityDef(Class> clazz) { analyze(clazz); - var cacheStrategies = ormConfig.getCachesConfig().getCacheStrategies(); - var persisterStrategies = ormConfig.getPersistersConfig().getPersisterStrategies(); + var cacheStrategies = ormConfig.getCaches(); + var persisterStrategies = ormConfig.getPersisters(); var cache = clazz.getAnnotation(EntityCache.class); var cacheStrategyOptional = cacheStrategies.stream().filter(it -> it.getStrategy().equals(cache.cacheStrategy())).findFirst(); diff --git a/orm/src/main/java/com/zfoo/orm/model/config/CacheStrategy.java b/orm/src/main/java/com/zfoo/orm/model/config/CacheStrategy.java index 5db86767..f72ba611 100644 --- a/orm/src/main/java/com/zfoo/orm/model/config/CacheStrategy.java +++ b/orm/src/main/java/com/zfoo/orm/model/config/CacheStrategy.java @@ -23,12 +23,14 @@ public class CacheStrategy { private int size; private long expireMillisecond; - public CacheStrategy(String strategy, int cacheSize, long expireMillisecond) { - this.strategy = strategy; - this.size = cacheSize; - this.expireMillisecond = expireMillisecond; + public CacheStrategy() { } + public CacheStrategy(String strategy, int size, long expireMillisecond) { + this.strategy = strategy; + this.size = size; + this.expireMillisecond = expireMillisecond; + } public String getStrategy() { return strategy; diff --git a/orm/src/main/java/com/zfoo/orm/model/config/HostConfig.java b/orm/src/main/java/com/zfoo/orm/model/config/HostConfig.java index e7e2997c..8e828bb9 100644 --- a/orm/src/main/java/com/zfoo/orm/model/config/HostConfig.java +++ b/orm/src/main/java/com/zfoo/orm/model/config/HostConfig.java @@ -24,14 +24,14 @@ public class HostConfig { private String database; private String user; private String password; - private Map addressMap; + private Map address; public static HostConfig valueOf(String database, String user, String password, Map addressMap) { HostConfig config = new HostConfig(); config.database = database; config.user = user; config.password = password; - config.addressMap = addressMap; + config.address = addressMap; return config; } @@ -59,11 +59,11 @@ public class HostConfig { this.password = password; } - public Map getAddressMap() { - return addressMap; + public Map getAddress() { + return address; } - public void setAddressMap(Map addressMap) { - this.addressMap = addressMap; + public void setAddress(Map address) { + this.address = address; } } diff --git a/orm/src/main/java/com/zfoo/orm/model/config/OrmConfig.java b/orm/src/main/java/com/zfoo/orm/model/config/OrmConfig.java index 4dfabb47..58396ce3 100644 --- a/orm/src/main/java/com/zfoo/orm/model/config/OrmConfig.java +++ b/orm/src/main/java/com/zfoo/orm/model/config/OrmConfig.java @@ -13,6 +13,8 @@ package com.zfoo.orm.model.config; +import java.util.List; + /** * @author jaysunxiao * @version 3.0 @@ -23,11 +25,11 @@ public class OrmConfig { private String entityPackage; - private HostConfig hostConfig; + private HostConfig host; - private CachesConfig cachesConfig; + private List caches; - private PersistersConfig persistersConfig; + private List persisters; public String getId() { return id; @@ -45,27 +47,27 @@ public class OrmConfig { this.entityPackage = entityPackage; } - public HostConfig getHostConfig() { - return hostConfig; + public HostConfig getHost() { + return host; } - public void setHostConfig(HostConfig hostConfig) { - this.hostConfig = hostConfig; + public void setHost(HostConfig host) { + this.host = host; } - public CachesConfig getCachesConfig() { - return cachesConfig; + public List getCaches() { + return caches; } - public void setCachesConfig(CachesConfig cachesConfig) { - this.cachesConfig = cachesConfig; + public void setCaches(List caches) { + this.caches = caches; } - public PersistersConfig getPersistersConfig() { - return persistersConfig; + public List getPersisters() { + return persisters; } - public void setPersistersConfig(PersistersConfig persistersConfig) { - this.persistersConfig = persistersConfig; + public void setPersisters(List persisters) { + this.persisters = persisters; } } diff --git a/orm/src/main/java/com/zfoo/orm/model/config/PersisterStrategy.java b/orm/src/main/java/com/zfoo/orm/model/config/PersisterStrategy.java index 2459ebe7..a0372a3d 100644 --- a/orm/src/main/java/com/zfoo/orm/model/config/PersisterStrategy.java +++ b/orm/src/main/java/com/zfoo/orm/model/config/PersisterStrategy.java @@ -25,6 +25,9 @@ public class PersisterStrategy { private String config; + public PersisterStrategy() { + } + public PersisterStrategy(String strategy, String type, String config) { this.strategy = strategy; this.config = config; diff --git a/orm/src/main/java/com/zfoo/orm/model/config/PersistersConfig.java b/orm/src/main/java/com/zfoo/orm/model/config/PersistersConfig.java deleted file mode 100644 index a887127f..00000000 --- a/orm/src/main/java/com/zfoo/orm/model/config/PersistersConfig.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2020 The zfoo Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and limitations under the License. - */ - -package com.zfoo.orm.model.config; - -import java.util.List; - -/** - * @author jaysunxiao - * @version 3.0 - */ -public class PersistersConfig { - - private List persisterStrategies; - - public List getPersisterStrategies() { - return persisterStrategies; - } - - public void setPersisterStrategies(List persisterStrategies) { - this.persisterStrategies = persisterStrategies; - } -} diff --git a/orm/src/main/java/com/zfoo/orm/schema/OrmDefinitionParser.java b/orm/src/main/java/com/zfoo/orm/schema/OrmDefinitionParser.java index 57122838..0d762f02 100644 --- a/orm/src/main/java/com/zfoo/orm/schema/OrmDefinitionParser.java +++ b/orm/src/main/java/com/zfoo/orm/schema/OrmDefinitionParser.java @@ -16,7 +16,10 @@ package com.zfoo.orm.schema; import com.zfoo.orm.OrmContext; import com.zfoo.orm.manager.OrmManager; import com.zfoo.orm.model.accessor.MongodbAccessor; -import com.zfoo.orm.model.config.*; +import com.zfoo.orm.model.config.CacheStrategy; +import com.zfoo.orm.model.config.HostConfig; +import com.zfoo.orm.model.config.OrmConfig; +import com.zfoo.orm.model.config.PersisterStrategy; import com.zfoo.orm.model.query.MongodbQuery; import com.zfoo.protocol.util.DomUtils; import com.zfoo.protocol.util.StringUtils; @@ -42,7 +45,7 @@ public class OrmDefinitionParser implements BeanDefinitionParser { String name; BeanDefinitionBuilder builder; - // 注册NetConfig + // 注册OrmConfig parseOrmConfig(element, parserContext); // 注册OrmSpringContext @@ -81,13 +84,15 @@ public class OrmDefinitionParser implements BeanDefinitionParser { resolvePlaceholder("entity-package", "entityPackage", builder, element, parserContext); parseHostConfig(DomUtils.getFirstChildElementByTagName(element, "host"), parserContext); - builder.addPropertyReference("hostConfig", HostConfig.class.getCanonicalName()); + builder.addPropertyReference("host", HostConfig.class.getCanonicalName()); - parseCaches(DomUtils.getFirstChildElementByTagName(element, "caches"), parserContext); - builder.addPropertyReference("cachesConfig", CachesConfig.class.getCanonicalName()); + // 解析caches标签 + var caches = parseCacheStrategies(DomUtils.getFirstChildElementByTagName(element, "caches"), parserContext); + builder.addPropertyValue("caches", caches); - parsePersisters(DomUtils.getFirstChildElementByTagName(element, "persisters"), parserContext); - builder.addPropertyReference("persistersConfig", PersistersConfig.class.getCanonicalName()); + // 解析persisters标签 + var persisters = parsePersisterStrategies(DomUtils.getFirstChildElementByTagName(element, "persisters"), parserContext); + builder.addPropertyValue("persisters", persisters); parserContext.getRegistry().registerBeanDefinition(clazz.getCanonicalName(), builder.getBeanDefinition()); } @@ -103,34 +108,11 @@ public class OrmDefinitionParser implements BeanDefinitionParser { resolvePlaceholder("password", "password", builder, element, parserContext); var addressMap = parseAddress(element, parserContext); - builder.addPropertyValue("addressMap", addressMap); + builder.addPropertyValue("address", addressMap); parserContext.getRegistry().registerBeanDefinition(clazz.getCanonicalName(), builder.getBeanDefinition()); } - - private void parseCaches(Element element, ParserContext parserContext) { - // 解析caches标签 - var clazz = CachesConfig.class; - var builder = BeanDefinitionBuilder.rootBeanDefinition(clazz); - - var cacheStrategies = parseCacheStrategies(element, parserContext); - builder.addPropertyValue("cacheStrategies", cacheStrategies); - parserContext.getRegistry().registerBeanDefinition(clazz.getCanonicalName(), builder.getBeanDefinition()); - } - - - private void parsePersisters(Element element, ParserContext parserContext) { - // 解析persisters标签 - var clazz = PersistersConfig.class; - var builder = BeanDefinitionBuilder.rootBeanDefinition(clazz); - - var persisterStrategies = parsePersisterStrategies(element, parserContext); - builder.addPropertyValue("persisterStrategies", persisterStrategies); - parserContext.getRegistry().registerBeanDefinition(clazz.getCanonicalName(), builder.getBeanDefinition()); - } - - private ManagedList parseCacheStrategies(Element element, ParserContext parserContext) { var cacheStrategiesElementList = DomUtils.getChildElementsByTagName(element, "cache"); var cacheStrategies = new ManagedList(); diff --git a/pom.xml b/pom.xml index e5dd2ad5..acf115af 100644 --- a/pom.xml +++ b/pom.xml @@ -24,6 +24,7 @@ + boot event hotswap monitor @@ -38,6 +39,7 @@ + 3.0 3.0 3.0 3.0 diff --git a/protocol/pom.xml b/protocol/pom.xml index cc24b621..9001ea09 100644 --- a/protocol/pom.xml +++ b/protocol/pom.xml @@ -13,6 +13,7 @@ + 3.0 3.0 3.0 3.0 diff --git a/scheduler/pom.xml b/scheduler/pom.xml index 70470d43..f6f659b4 100644 --- a/scheduler/pom.xml +++ b/scheduler/pom.xml @@ -13,6 +13,7 @@ + 3.0 3.0 3.0 3.0 diff --git a/storage/pom.xml b/storage/pom.xml index f949f7f4..46fe51c6 100644 --- a/storage/pom.xml +++ b/storage/pom.xml @@ -13,6 +13,7 @@ + 3.0 3.0 3.0 3.0 diff --git a/storage/src/main/java/com/zfoo/storage/StorageContext.java b/storage/src/main/java/com/zfoo/storage/StorageContext.java index 36ab5f84..fbacd23e 100644 --- a/storage/src/main/java/com/zfoo/storage/StorageContext.java +++ b/storage/src/main/java/com/zfoo/storage/StorageContext.java @@ -13,7 +13,6 @@ package com.zfoo.storage; -import com.zfoo.protocol.util.StringUtils; import com.zfoo.scheduler.model.StopWatch; import com.zfoo.storage.interpreter.IResourceReader; import com.zfoo.storage.manager.IStorageManager; @@ -24,9 +23,7 @@ import org.springframework.context.ApplicationListener; import org.springframework.context.event.ApplicationContextEvent; import org.springframework.context.event.ContextClosedEvent; import org.springframework.context.event.ContextRefreshedEvent; -import org.springframework.context.support.ConversionServiceFactoryBean; import org.springframework.core.Ordered; -import org.springframework.core.convert.ConversionService; /** * @author jaysunxiao @@ -44,8 +41,6 @@ public class StorageContext implements ApplicationListener(); + converters.add(new JsonToArrayConverter()); + converters.add(new JsonToMapConverter()); + converters.add(new JsonToObjectConverter()); + converters.add(new StringToClassConverter()); + converters.add(new StringToDateConverter()); + converters.add(new StringToMapConverter()); + conversionServiceFactoryBean.setConverters(converters); + conversionServiceFactoryBean.afterPropertiesSet(); + } + @Override public List read(InputStream inputStream, Class clazz) { var wb = createWorkbook(inputStream, clazz); @@ -90,7 +105,7 @@ public class ExcelResourceReader implements IResourceReader { private void inject(Object instance, Field field, String content) { try { var targetType = new TypeDescriptor(field); - var value = StorageContext.getConversionService().convert(content, TYPE_DESCRIPTOR, targetType); + var value = conversionServiceFactoryBean.getObject().convert(content, TYPE_DESCRIPTOR, targetType); ReflectionUtils.makeAccessible(field); ReflectionUtils.setField(field, instance, value); } catch (Exception e) { diff --git a/storage/src/main/java/com/zfoo/storage/schema/StorageDefinitionParser.java b/storage/src/main/java/com/zfoo/storage/schema/StorageDefinitionParser.java index 54362937..9a0f2577 100644 --- a/storage/src/main/java/com/zfoo/storage/schema/StorageDefinitionParser.java +++ b/storage/src/main/java/com/zfoo/storage/schema/StorageDefinitionParser.java @@ -19,17 +19,12 @@ import com.zfoo.storage.StorageContext; import com.zfoo.storage.interpreter.ExcelResourceReader; import com.zfoo.storage.manager.StorageManager; import com.zfoo.storage.model.config.StorageConfig; -import com.zfoo.storage.strategy.*; import org.springframework.beans.factory.support.AbstractBeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.xml.BeanDefinitionParser; import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.context.support.ConversionServiceFactoryBean; import org.w3c.dom.Element; -import java.util.ArrayList; -import java.util.List; - /** * @author jaysunxiao * @version 3.0 @@ -97,20 +92,6 @@ public class StorageDefinitionParser implements BeanDefinitionParser { name = StringUtils.uncapitalize(clazz.getName()); builder = BeanDefinitionBuilder.rootBeanDefinition(clazz); registry.registerBeanDefinition(name, builder.getBeanDefinition()); - - // 注入ConversionServiceFactoryBean - clazz = ConversionServiceFactoryBean.class; - name = StringUtils.uncapitalize(clazz.getName()); - builder = BeanDefinitionBuilder.rootBeanDefinition(clazz); - List converters = new ArrayList<>(); - converters.add(new JsonToArrayConverter()); - converters.add(new JsonToMapConverter()); - converters.add(new JsonToObjectConverter()); - converters.add(new StringToClassConverter()); - converters.add(new StringToDateConverter()); - converters.add(new StringToMapConverter()); - builder.addPropertyValue("converters", converters); - registry.registerBeanDefinition(name, builder.getBeanDefinition()); } private void resolvePlaceholder(String attributeName, String fieldName, BeanDefinitionBuilder builder, Element element, ParserContext parserContext) { diff --git a/util/pom.xml b/util/pom.xml index e4d760f6..67362957 100644 --- a/util/pom.xml +++ b/util/pom.xml @@ -13,6 +13,7 @@ + 3.0 3.0 3.0 3.0