From e1622bf1da48d4412936d4dd6e3c2897e53ad222 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Sun, 30 Jun 2024 15:24:56 +0800 Subject: [PATCH 001/101] =?UTF-8?q?refactor=EF=BC=9ADynamicTp=E7=94=9F?= =?UTF-8?q?=E5=91=BD=E5=91=A8=E6=9C=9F=E7=9A=84=E8=AE=BE=E8=AE=A1=E4=BB=A5?= =?UTF-8?q?=E5=8F=8Aspring=E6=A8=A1=E5=9D=97=E7=9A=84=E5=9F=BA=E7=A1=80?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/spring/DtpBaseBeanConfiguration.java | 7 +++ .../dynamictp/core/spring/DtpLifecycle.java | 2 +- .../spring/DtpLifecycleSpringAdapter.java | 45 +++++++++++++++++++ .../core/spring/LifeCycleManagement.java | 11 +++++ 4 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 core/src/main/java/org/dromara/dynamictp/core/spring/DtpLifecycleSpringAdapter.java create mode 100644 core/src/main/java/org/dromara/dynamictp/core/spring/LifeCycleManagement.java diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/DtpBaseBeanConfiguration.java b/core/src/main/java/org/dromara/dynamictp/core/spring/DtpBaseBeanConfiguration.java index ee7441d4f..8677cb50d 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/spring/DtpBaseBeanConfiguration.java +++ b/core/src/main/java/org/dromara/dynamictp/core/spring/DtpBaseBeanConfiguration.java @@ -60,4 +60,11 @@ public DtpMonitor dtpMonitor(DtpProperties dtpProperties) { public DtpBannerPrinter dtpBannerPrinter() { return new DtpBannerPrinter(); } + + + + @Bean + public DtpLifecycleSpringAdapter dtpLifecycleSpringAdapter(DtpLifecycle dtpLifecycle) { + return new DtpLifecycleSpringAdapter(dtpLifecycle); + } } diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/DtpLifecycle.java b/core/src/main/java/org/dromara/dynamictp/core/spring/DtpLifecycle.java index 3a6af1bd9..4b504b2fe 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/spring/DtpLifecycle.java +++ b/core/src/main/java/org/dromara/dynamictp/core/spring/DtpLifecycle.java @@ -35,7 +35,7 @@ * @since 1.1.3 **/ @Slf4j -public class DtpLifecycle implements SmartLifecycle { +public class DtpLifecycle implements LifeCycleManagement { private final AtomicBoolean running = new AtomicBoolean(false); diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/DtpLifecycleSpringAdapter.java b/core/src/main/java/org/dromara/dynamictp/core/spring/DtpLifecycleSpringAdapter.java new file mode 100644 index 000000000..2e5167d48 --- /dev/null +++ b/core/src/main/java/org/dromara/dynamictp/core/spring/DtpLifecycleSpringAdapter.java @@ -0,0 +1,45 @@ +package org.dromara.dynamictp.core.spring; + +import org.springframework.context.SmartLifecycle; + +public class DtpLifecycleSpringAdapter implements SmartLifecycle { + private final LifeCycleManagement lifeCycleManagement; + private boolean isRunning = false; + + public DtpLifecycleSpringAdapter(LifeCycleManagement lifeCycleManagement) { + this.lifeCycleManagement = lifeCycleManagement; + } + + @Override + public void start() { + lifeCycleManagement.start(); + isRunning = true; + } + + @Override + public void stop() { + lifeCycleManagement.stop(); + isRunning = false; + } + + @Override + public boolean isRunning() { + return isRunning; + } + + public void stop(Runnable callback) { + lifeCycleManagement.stop(); + callback.run(); + isRunning = false; + } + + @Override + public boolean isAutoStartup() { + return lifeCycleManagement.isAutoStartup(); + } + + @Override + public int getPhase() { + return lifeCycleManagement.getPhase(); + } +} diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/LifeCycleManagement.java b/core/src/main/java/org/dromara/dynamictp/core/spring/LifeCycleManagement.java new file mode 100644 index 000000000..d34c4f431 --- /dev/null +++ b/core/src/main/java/org/dromara/dynamictp/core/spring/LifeCycleManagement.java @@ -0,0 +1,11 @@ +package org.dromara.dynamictp.core.spring; + +public interface LifeCycleManagement { + void start(); + void stop(); + boolean isRunning(); + void stop(Runnable callback); + boolean isAutoStartup(); + int getPhase(); + void shutdownInternal(); +} From eff32e019180939b6ac2f11d223fd0abd50e846a Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Fri, 5 Jul 2024 13:34:55 +0800 Subject: [PATCH 002/101] =?UTF-8?q?refactor=EF=BC=9ADynamicTp=E8=BF=81?= =?UTF-8?q?=E7=A7=BBspring=E6=A8=A1=E5=9D=97=E4=B8=94=E4=BD=BF=E7=94=A8spi?= =?UTF-8?q?=E6=9C=BA=E5=88=B6=E8=A7=A3=E5=86=B3=E4=BE=9D=E8=B5=96=E5=BE=AA?= =?UTF-8?q?=E7=8E=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adapter/adapter-common/pom.xml | 8 +++ .../adapter/common/AbstractDtpAdapter.java | 4 +- .../adapter/common/DtpAdapterListener.java | 2 +- .../dubbo/alibaba/AlibabaDubboDtpAdapter.java | 2 +- .../dubbo/apache/ApacheDubboDtpAdapter.java | 2 +- .../DtpMetricsPublisherThreadPool.java | 2 +- .../adapter/hystrix/HystrixDtpAdapter.java | 2 +- .../adapter/motan/MotanDtpAdapter.java | 2 +- .../adapter/okhttp3/Okhttp3DtpAdapter.java | 2 +- .../adapter/rabbitmq/RabbitMqDtpAdapter.java | 2 +- .../rocketmq/AliyunOnsRocketMqAdapter.java | 2 +- .../dynamictp/common/spring/BeanProvider.java | 8 +++ .../common/spring/BeanProviderHelper.java | 25 +++++++++ core/pom.xml | 14 +++++ .../dromara/dynamictp/core/DtpRegistry.java | 1 - .../dynamictp/core/executor/DtpExecutor.java | 4 +- .../dynamictp/core/monitor/DtpMonitor.java | 2 - .../notifier/manager/NotifyFilterBuilder.java | 6 +- .../core/notifier/manager/NotifyHelper.java | 5 +- .../core/refresher/AbstractRefresher.java | 1 - .../dynamictp/core/spring/DtpLifecycle.java | 1 - .../core/spring/GuiceContextHolder.java | 55 +++++++++++++++++++ .../dynamictp/core/support/BinderHelper.java | 4 +- .../core/support/ThreadPoolStatProvider.java | 6 +- .../example/BrpcExampleApplication.java | 2 - .../example/DubboExampleApplication.java | 2 - .../example/DubboExampleApplication.java | 2 - .../example/DubboExampleApplication.java | 2 - .../example/DubboExampleApplication.java | 2 - .../example/DubboExampleApplication.java | 2 - .../example/GrpcExampleApplication.java | 2 - .../example/HystrixExampleApplication.java | 2 - .../example/MotanExampleApplication.java | 2 - .../example/Okhttp3ExampleApplication.java | 2 - .../example/RabbitMqExampleApplication.java | 2 - .../example/RocketMqExampleApplication.java | 2 - .../example/ApolloExampleApplication.java | 2 - .../CloudConsulExampleApplication.java | 2 - .../example/EtcdExampleApplication.java | 2 - .../HuaweiCloudExampleApplication.java | 2 - .../example/NacosCloudExampleApplication.java | 2 - .../example/NacosExampleApplication.java | 2 - .../PolarisCloudExampleApplication.java | 2 - .../CloudZookeeperExampleApplication.java | 2 - .../example/ZookeeperExampleApplication.java | 2 - .../ratelimiter/SlidingWindowRateLimiter.java | 1 - .../notify/email/DtpEmailNotifier.java | 2 - .../yunzhijia/DtpYunZhiJiaNotifier.java | 1 - .../dynamictp/logging/AbstractDtpLogging.java | 1 - pom.xml | 1 + spring/pom.xml | 29 ++++++++++ .../spring/ex}/ApplicationContextHolder.java | 2 +- .../spring/ex}/DtpBaseBeanConfiguration.java | 3 +- .../ex}/DtpBaseBeanDefinitionRegistrar.java | 5 +- .../ex}/DtpBeanDefinitionRegistrar.java | 21 +------ .../spring/ex}/DtpConfigurationSelector.java | 2 +- .../spring/ex}/DtpLifecycleSpringAdapter.java | 3 +- .../spring/ex}/DtpPostProcessor.java | 2 +- .../dynamictp/spring/ex}/EnableDynamicTp.java | 8 +-- .../OnceApplicationContextEventListener.java | 8 +-- .../spring/ex}/SpringBeanHelper.java | 2 +- .../spring/ex/SpringBeanProvider.java | 29 ++++++++++ .../dynamictp/spring/ex}/SpringExecutor.java | 2 +- .../spring/ex}/YamlPropertySourceFactory.java | 2 +- ...omara.dynamictp.common.spring.BeanProvider | 1 + .../BrpcTpAutoConfiguration.java | 1 - .../AdapterCommonAutoConfiguration.java | 2 +- .../AlibabaDubboTpAutoConfiguration.java | 2 +- .../ApacheDubboTpAutoConfiguration.java | 2 +- .../GrpcTpAutoConfiguration.java | 2 +- .../HystrixTpAutoConfiguration.java | 2 +- .../MotanTpAutoConfiguration.java | 2 +- .../Okhttp3TpAutoConfiguration.java | 2 +- .../RabbitMqTpAutoConfiguration.java | 2 +- .../AliyunOnsRocketMqAutoConfiguration.java | 2 +- .../RocketMqTpAutoConfiguration.java | 2 +- .../SofaTpAutoConfiguration.java | 2 +- .../TarsTpAutoConfiguration.java | 2 +- .../AbstractWebServerDtpAdapter.java | 1 - .../WebServerTpAutoConfiguration.java | 2 +- starter/starter-common/pom.xml | 6 ++ .../common/DtpBootBeanConfiguration.java | 2 +- .../starter/common/monitor/DtpEndpoint.java | 2 +- .../DtpConsulAutoConfiguration.java | 2 +- .../DtpHuaweiAutoConfiguration.java | 2 +- .../DtpCloudNacosAutoConfiguration.java | 2 +- .../DtpPolarisAutoConfiguration.java | 2 +- .../DtpCloudZkAutoConfiguration.java | 2 +- .../DtpApolloAutoConfiguration.java | 2 +- .../DtpEtcdAutoConfiguration.java | 2 +- .../DtpNacosAutoConfiguration.java | 2 +- .../starter-zookeeper/pom.xml | 6 ++ .../autoconfigure/DtpZkAutoConfiguration.java | 2 +- .../test/configcenter/DtpBaseTest.java | 5 +- .../core/notify/AbstractDtpNotifierTest.java | 2 - .../dynamictp/test/core/spring/Config.java | 2 - .../spring/DtpBaseBeanConfigurationTest.java | 9 +-- .../core/spring/DtpPostProcessorTest.java | 4 +- .../core/spring/PropertiesBinderTest.java | 2 +- .../test/core/thread/DtpExecutorTest.java | 4 +- .../core/thread/EagerDtpExecutorTest.java | 4 +- .../core/thread/OrderedDtpExecutorTest.java | 4 +- .../core/thread/PriorityDtpExecutorTest.java | 4 +- .../core/thread/ScheduledDtpExecutorTest.java | 4 +- .../proxy/ThreadPoolExecutorProxyTest.java | 2 - 105 files changed, 259 insertions(+), 178 deletions(-) create mode 100644 common/src/main/java/org/dromara/dynamictp/common/spring/BeanProvider.java create mode 100644 common/src/main/java/org/dromara/dynamictp/common/spring/BeanProviderHelper.java create mode 100644 core/src/main/java/org/dromara/dynamictp/core/spring/GuiceContextHolder.java create mode 100644 spring/pom.xml rename {common/src/main/java/org/dromara/dynamictp/common/spring => spring/src/main/java/org/dromara/dynamictp/spring/ex}/ApplicationContextHolder.java (98%) rename {core/src/main/java/org/dromara/dynamictp/core/spring => spring/src/main/java/org/dromara/dynamictp/spring/ex}/DtpBaseBeanConfiguration.java (95%) rename {core/src/main/java/org/dromara/dynamictp/core/spring => spring/src/main/java/org/dromara/dynamictp/spring/ex}/DtpBaseBeanDefinitionRegistrar.java (93%) rename {core/src/main/java/org/dromara/dynamictp/core/spring => spring/src/main/java/org/dromara/dynamictp/spring/ex}/DtpBeanDefinitionRegistrar.java (80%) rename {core/src/main/java/org/dromara/dynamictp/core/spring => spring/src/main/java/org/dromara/dynamictp/spring/ex}/DtpConfigurationSelector.java (97%) rename {core/src/main/java/org/dromara/dynamictp/core/spring => spring/src/main/java/org/dromara/dynamictp/spring/ex}/DtpLifecycleSpringAdapter.java (90%) rename {core/src/main/java/org/dromara/dynamictp/core/spring => spring/src/main/java/org/dromara/dynamictp/spring/ex}/DtpPostProcessor.java (99%) rename {core/src/main/java/org/dromara/dynamictp/core/spring => spring/src/main/java/org/dromara/dynamictp/spring/ex}/EnableDynamicTp.java (82%) rename {common/src/main/java/org/dromara/dynamictp/common/spring => spring/src/main/java/org/dromara/dynamictp/spring/ex}/OnceApplicationContextEventListener.java (91%) rename {common/src/main/java/org/dromara/dynamictp/common/spring => spring/src/main/java/org/dromara/dynamictp/spring/ex}/SpringBeanHelper.java (99%) create mode 100644 spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringBeanProvider.java rename {core/src/main/java/org/dromara/dynamictp/core/spring => spring/src/main/java/org/dromara/dynamictp/spring/ex}/SpringExecutor.java (95%) rename {core/src/main/java/org/dromara/dynamictp/core/spring => spring/src/main/java/org/dromara/dynamictp/spring/ex}/YamlPropertySourceFactory.java (97%) create mode 100644 spring/src/main/resources/META-INF/services/org.dromara.dynamictp.common.spring.BeanProvider diff --git a/adapter/adapter-common/pom.xml b/adapter/adapter-common/pom.xml index ed664817c..988c1cc86 100644 --- a/adapter/adapter-common/pom.xml +++ b/adapter/adapter-common/pom.xml @@ -9,5 +9,13 @@ ../pom.xml dynamic-tp-adapter-common + + + org.dromara.dynamictp + dynamic-tp-spring + 1.1.8-beta + compile + + diff --git a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java index a506fc412..99bad77c9 100644 --- a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java +++ b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java @@ -32,8 +32,6 @@ import org.dromara.dynamictp.common.entity.TpExecutorProps; import org.dromara.dynamictp.common.entity.TpMainFields; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.common.spring.ApplicationContextHolder; -import org.dromara.dynamictp.common.spring.OnceApplicationContextEventListener; import org.dromara.dynamictp.common.util.ReflectionUtil; import org.dromara.dynamictp.common.util.StreamUtil; import org.dromara.dynamictp.core.aware.AwareManager; @@ -44,6 +42,8 @@ import org.dromara.dynamictp.core.support.ThreadPoolExecutorProxy; import org.dromara.dynamictp.core.support.task.wrapper.TaskWrapper; import org.dromara.dynamictp.core.support.task.wrapper.TaskWrappers; +import org.dromara.dynamictp.spring.ex.ApplicationContextHolder; +import org.dromara.dynamictp.spring.ex.OnceApplicationContextEventListener; import org.springframework.context.event.ContextRefreshedEvent; import java.util.Collections; diff --git a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java index fd60efd4f..7acb04260 100644 --- a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java +++ b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java @@ -17,7 +17,6 @@ package org.dromara.dynamictp.adapter.common; -import org.dromara.dynamictp.common.spring.ApplicationContextHolder; import org.dromara.dynamictp.common.event.AlarmCheckEvent; import org.dromara.dynamictp.common.event.CollectEvent; import org.dromara.dynamictp.common.event.RefreshEvent; @@ -26,6 +25,7 @@ import org.dromara.dynamictp.core.notifier.manager.AlarmManager; import lombok.extern.slf4j.Slf4j; import lombok.val; +import org.dromara.dynamictp.spring.ex.ApplicationContextHolder; import org.springframework.context.ApplicationEvent; import org.springframework.context.event.GenericApplicationListener; import org.springframework.core.ResolvableType; diff --git a/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/alibaba/AlibabaDubboDtpAdapter.java b/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/alibaba/AlibabaDubboDtpAdapter.java index b412f2c54..bdb1a527a 100644 --- a/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/alibaba/AlibabaDubboDtpAdapter.java +++ b/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/alibaba/AlibabaDubboDtpAdapter.java @@ -24,8 +24,8 @@ import org.apache.commons.collections4.CollectionUtils; import org.dromara.dynamictp.adapter.common.AbstractDtpAdapter; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.common.spring.ApplicationContextHolder; import org.dromara.dynamictp.jvmti.JVMTI; +import org.dromara.dynamictp.spring.ex.ApplicationContextHolder; import org.springframework.beans.factory.InitializingBean; import java.util.concurrent.ExecutorService; diff --git a/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/apache/ApacheDubboDtpAdapter.java b/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/apache/ApacheDubboDtpAdapter.java index 77e49980b..a71ff493a 100644 --- a/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/apache/ApacheDubboDtpAdapter.java +++ b/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/apache/ApacheDubboDtpAdapter.java @@ -33,10 +33,10 @@ import org.apache.dubbo.rpc.model.ApplicationModel; import org.dromara.dynamictp.adapter.common.AbstractDtpAdapter; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.common.spring.ApplicationContextHolder; import org.dromara.dynamictp.common.util.ReflectionUtil; import org.dromara.dynamictp.core.support.ThreadPoolExecutorProxy; import org.dromara.dynamictp.jvmti.JVMTI; +import org.dromara.dynamictp.spring.ex.ApplicationContextHolder; import org.springframework.context.ApplicationEvent; import java.util.Map; diff --git a/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/DtpMetricsPublisherThreadPool.java b/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/DtpMetricsPublisherThreadPool.java index 71237abef..9c56e33cd 100644 --- a/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/DtpMetricsPublisherThreadPool.java +++ b/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/DtpMetricsPublisherThreadPool.java @@ -25,8 +25,8 @@ import lombok.extern.slf4j.Slf4j; import lombok.val; import org.dromara.dynamictp.common.entity.TpExecutorProps; -import org.dromara.dynamictp.common.spring.ApplicationContextHolder; import org.dromara.dynamictp.common.util.ReflectionUtil; +import org.dromara.dynamictp.spring.ex.ApplicationContextHolder; import java.util.Objects; import java.util.concurrent.TimeUnit; diff --git a/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/HystrixDtpAdapter.java b/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/HystrixDtpAdapter.java index 01f7131f5..5ea5169b9 100644 --- a/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/HystrixDtpAdapter.java +++ b/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/HystrixDtpAdapter.java @@ -31,9 +31,9 @@ import org.dromara.dynamictp.common.entity.NotifyPlatform; import org.dromara.dynamictp.common.entity.TpExecutorProps; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.common.spring.ApplicationContextHolder; import org.dromara.dynamictp.common.util.StreamUtil; import org.dromara.dynamictp.core.support.ExecutorWrapper; +import org.dromara.dynamictp.spring.ex.ApplicationContextHolder; import java.util.List; import java.util.Map; diff --git a/adapter/adapter-motan/src/main/java/org/dromara/dynamictp/adapter/motan/MotanDtpAdapter.java b/adapter/adapter-motan/src/main/java/org/dromara/dynamictp/adapter/motan/MotanDtpAdapter.java index 2f66ded94..26c58deae 100644 --- a/adapter/adapter-motan/src/main/java/org/dromara/dynamictp/adapter/motan/MotanDtpAdapter.java +++ b/adapter/adapter-motan/src/main/java/org/dromara/dynamictp/adapter/motan/MotanDtpAdapter.java @@ -29,8 +29,8 @@ import org.apache.commons.collections4.MapUtils; import org.dromara.dynamictp.adapter.common.AbstractDtpAdapter; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.common.spring.ApplicationContextHolder; import org.dromara.dynamictp.common.util.ReflectionUtil; +import org.dromara.dynamictp.spring.ex.ApplicationContextHolder; import java.util.List; import java.util.Objects; diff --git a/adapter/adapter-okhttp3/src/main/java/org/dromara/dynamictp/adapter/okhttp3/Okhttp3DtpAdapter.java b/adapter/adapter-okhttp3/src/main/java/org/dromara/dynamictp/adapter/okhttp3/Okhttp3DtpAdapter.java index 570933aa2..4fca3e7e7 100644 --- a/adapter/adapter-okhttp3/src/main/java/org/dromara/dynamictp/adapter/okhttp3/Okhttp3DtpAdapter.java +++ b/adapter/adapter-okhttp3/src/main/java/org/dromara/dynamictp/adapter/okhttp3/Okhttp3DtpAdapter.java @@ -23,7 +23,7 @@ import org.apache.commons.collections4.MapUtils; import org.dromara.dynamictp.adapter.common.AbstractDtpAdapter; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.common.spring.ApplicationContextHolder; +import org.dromara.dynamictp.spring.ex.ApplicationContextHolder; import java.util.concurrent.ThreadPoolExecutor; diff --git a/adapter/adapter-rabbitmq/src/main/java/org/dromara/dynamictp/adapter/rabbitmq/RabbitMqDtpAdapter.java b/adapter/adapter-rabbitmq/src/main/java/org/dromara/dynamictp/adapter/rabbitmq/RabbitMqDtpAdapter.java index 5467c4376..80bcf3f27 100644 --- a/adapter/adapter-rabbitmq/src/main/java/org/dromara/dynamictp/adapter/rabbitmq/RabbitMqDtpAdapter.java +++ b/adapter/adapter-rabbitmq/src/main/java/org/dromara/dynamictp/adapter/rabbitmq/RabbitMqDtpAdapter.java @@ -22,8 +22,8 @@ import org.apache.commons.collections4.MapUtils; import org.dromara.dynamictp.adapter.common.AbstractDtpAdapter; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.common.spring.ApplicationContextHolder; import org.dromara.dynamictp.common.util.ReflectionUtil; +import org.dromara.dynamictp.spring.ex.ApplicationContextHolder; import org.springframework.amqp.rabbit.connection.AbstractConnectionFactory; import java.util.Objects; diff --git a/adapter/adapter-rocketmq/src/main/java/org/dromara/dynamictp/adapter/rocketmq/AliyunOnsRocketMqAdapter.java b/adapter/adapter-rocketmq/src/main/java/org/dromara/dynamictp/adapter/rocketmq/AliyunOnsRocketMqAdapter.java index d46ad3fb8..82dd5b3b4 100644 --- a/adapter/adapter-rocketmq/src/main/java/org/dromara/dynamictp/adapter/rocketmq/AliyunOnsRocketMqAdapter.java +++ b/adapter/adapter-rocketmq/src/main/java/org/dromara/dynamictp/adapter/rocketmq/AliyunOnsRocketMqAdapter.java @@ -28,8 +28,8 @@ import org.apache.commons.collections4.MapUtils; import org.dromara.dynamictp.adapter.common.AbstractDtpAdapter; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.common.spring.ApplicationContextHolder; import org.dromara.dynamictp.common.util.ReflectionUtil; +import org.dromara.dynamictp.spring.ex.ApplicationContextHolder; import java.util.Objects; import java.util.concurrent.ThreadPoolExecutor; diff --git a/common/src/main/java/org/dromara/dynamictp/common/spring/BeanProvider.java b/common/src/main/java/org/dromara/dynamictp/common/spring/BeanProvider.java new file mode 100644 index 000000000..1814c0167 --- /dev/null +++ b/common/src/main/java/org/dromara/dynamictp/common/spring/BeanProvider.java @@ -0,0 +1,8 @@ +package org.dromara.dynamictp.common.spring; + +import java.util.Map; + +public interface BeanProvider { + T getBean(Class clazz); + Map getBeansOfType(Class clazz); +} \ No newline at end of file diff --git a/common/src/main/java/org/dromara/dynamictp/common/spring/BeanProviderHelper.java b/common/src/main/java/org/dromara/dynamictp/common/spring/BeanProviderHelper.java new file mode 100644 index 000000000..0daa8d1a1 --- /dev/null +++ b/common/src/main/java/org/dromara/dynamictp/common/spring/BeanProviderHelper.java @@ -0,0 +1,25 @@ +package org.dromara.dynamictp.common.spring; + +import org.dromara.dynamictp.common.util.ExtensionServiceLoader; + +import java.util.Map; + +public class BeanProviderHelper { + + private static BeanProvider provider; + + static { + provider = ExtensionServiceLoader.getFirst(BeanProvider.class); + if (provider == null) { + throw new IllegalStateException("No BeanProvider implementation found"); + } + } + + public static T getBean(Class clazz) { + return provider.getBean(clazz); + } + + public static Map getBeansOfType(Class clazz) { + return provider.getBeansOfType(clazz); + } +} diff --git a/core/pom.xml b/core/pom.xml index 849f112b2..1ac766400 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -56,6 +56,20 @@ io.dropwizard.metrics metrics-core + + + com.google.inject + guice + 5.0.1 + + + + com.netflix.governator + governator + 1.17.12 + + + diff --git a/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java b/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java index 8b18081da..6c1054ec8 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java +++ b/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java @@ -31,7 +31,6 @@ import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.common.queue.MemorySafeLinkedBlockingQueue; import org.dromara.dynamictp.common.queue.VariableLinkedBlockingQueue; -import org.dromara.dynamictp.common.spring.OnceApplicationContextEventListener; import org.dromara.dynamictp.common.util.StreamUtil; import org.dromara.dynamictp.core.aware.AwareManager; import org.dromara.dynamictp.core.converter.ExecutorConverter; diff --git a/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java b/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java index 27b632531..c9590c61c 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java +++ b/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java @@ -27,10 +27,10 @@ import org.dromara.dynamictp.core.aware.TaskEnhanceAware; import org.dromara.dynamictp.core.notifier.manager.NotifyHelper; import org.dromara.dynamictp.core.reject.RejectHandlerGetter; -import org.dromara.dynamictp.core.spring.SpringExecutor; import org.dromara.dynamictp.core.support.ExecutorAdapter; import org.dromara.dynamictp.core.support.task.wrapper.TaskWrapper; import org.slf4j.MDC; +import org.springframework.core.task.AsyncTaskExecutor; import java.util.List; import java.util.Objects; @@ -54,7 +54,7 @@ **/ @Slf4j public class DtpExecutor extends ThreadPoolExecutor - implements SpringExecutor, TaskEnhanceAware, ExecutorAdapter { + implements TaskEnhanceAware, ExecutorAdapter, AsyncTaskExecutor { /** * The name of the thread pool. diff --git a/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java b/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java index 1a07c0af7..1578e449c 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java +++ b/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java @@ -22,8 +22,6 @@ import org.dromara.dynamictp.common.event.AlarmCheckEvent; import org.dromara.dynamictp.common.event.CollectEvent; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.common.spring.ApplicationContextHolder; -import org.dromara.dynamictp.common.spring.OnceApplicationContextEventListener; import org.dromara.dynamictp.core.DtpRegistry; import org.dromara.dynamictp.core.converter.ExecutorConverter; import org.dromara.dynamictp.core.handler.CollectorHandler; diff --git a/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyFilterBuilder.java b/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyFilterBuilder.java index f564fa211..9790a405c 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyFilterBuilder.java +++ b/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyFilterBuilder.java @@ -17,11 +17,11 @@ package org.dromara.dynamictp.core.notifier.manager; -import org.dromara.dynamictp.common.spring.ApplicationContextHolder; import org.dromara.dynamictp.common.em.NotifyTypeEnum; import org.dromara.dynamictp.common.pattern.filter.Filter; import org.dromara.dynamictp.common.pattern.filter.InvokerChain; import org.dromara.dynamictp.common.pattern.filter.InvokerChainFactory; +import org.dromara.dynamictp.common.spring.BeanProviderHelper; import org.dromara.dynamictp.core.notifier.context.BaseNotifyCtx; import org.dromara.dynamictp.core.notifier.chain.filter.AlarmBaseFilter; import org.dromara.dynamictp.core.notifier.chain.filter.NoticeBaseFilter; @@ -46,7 +46,7 @@ public class NotifyFilterBuilder { private NotifyFilterBuilder() { } public static InvokerChain getAlarmInvokerChain() { - val filters = ApplicationContextHolder.getBeansOfType(NotifyFilter.class); + val filters = BeanProviderHelper.getBeansOfType(NotifyFilter.class); Collection alarmFilters = Lists.newArrayList(filters.values()); alarmFilters.add(new AlarmBaseFilter()); alarmFilters = alarmFilters.stream() @@ -57,7 +57,7 @@ public static InvokerChain getAlarmInvokerChain() { } public static InvokerChain getCommonInvokerChain() { - val filters = ApplicationContextHolder.getBeansOfType(NotifyFilter.class); + val filters = BeanProviderHelper.getBeansOfType(NotifyFilter.class); Collection noticeFilters = Lists.newArrayList(filters.values()); noticeFilters.add(new NoticeBaseFilter()); noticeFilters = noticeFilters.stream() diff --git a/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyHelper.java b/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyHelper.java index f1636186d..62a3bf394 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyHelper.java +++ b/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyHelper.java @@ -30,6 +30,7 @@ import org.dromara.dynamictp.common.entity.TpExecutorProps; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.common.spring.ApplicationContextHolder; +import org.dromara.dynamictp.common.spring.BeanProviderHelper; import org.dromara.dynamictp.common.util.StreamUtil; import org.dromara.dynamictp.core.executor.DtpExecutor; import org.dromara.dynamictp.core.support.ExecutorWrapper; @@ -136,7 +137,7 @@ public static Optional getPlatform(String platformId) { } public static Map getAllPlatforms() { - val dtpProperties = ApplicationContextHolder.getBean(DtpProperties.class); + val dtpProperties = BeanProviderHelper.getBean(DtpProperties.class); if (CollectionUtils.isEmpty(dtpProperties.getPlatforms())) { return Collections.emptyMap(); } @@ -144,7 +145,7 @@ public static Map getAllPlatforms() { } public static void initNotify(DtpExecutor executor) { - val dtpProperties = ApplicationContextHolder.getBean(DtpProperties.class); + val dtpProperties = BeanProviderHelper.getBean(DtpProperties.class); val platforms = dtpProperties.getPlatforms(); if (CollectionUtils.isEmpty(platforms)) { executor.setNotifyItems(Lists.newArrayList()); diff --git a/core/src/main/java/org/dromara/dynamictp/core/refresher/AbstractRefresher.java b/core/src/main/java/org/dromara/dynamictp/core/refresher/AbstractRefresher.java index 6f34e4d22..313f42b72 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/refresher/AbstractRefresher.java +++ b/core/src/main/java/org/dromara/dynamictp/core/refresher/AbstractRefresher.java @@ -25,7 +25,6 @@ import org.dromara.dynamictp.common.em.ConfigFileTypeEnum; import org.dromara.dynamictp.common.event.RefreshEvent; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.common.spring.ApplicationContextHolder; import org.dromara.dynamictp.core.DtpRegistry; import org.dromara.dynamictp.core.handler.ConfigHandler; import org.dromara.dynamictp.core.support.BinderHelper; diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/DtpLifecycle.java b/core/src/main/java/org/dromara/dynamictp/core/spring/DtpLifecycle.java index 4b504b2fe..54ca36d74 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/spring/DtpLifecycle.java +++ b/core/src/main/java/org/dromara/dynamictp/core/spring/DtpLifecycle.java @@ -24,7 +24,6 @@ import org.dromara.dynamictp.core.notifier.manager.NoticeManager; import org.dromara.dynamictp.core.support.DtpLifecycleSupport; import org.dromara.dynamictp.core.system.SystemMetricManager; -import org.springframework.context.SmartLifecycle; import java.util.concurrent.atomic.AtomicBoolean; diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/GuiceContextHolder.java b/core/src/main/java/org/dromara/dynamictp/core/spring/GuiceContextHolder.java new file mode 100644 index 000000000..a47f0dc56 --- /dev/null +++ b/core/src/main/java/org/dromara/dynamictp/core/spring/GuiceContextHolder.java @@ -0,0 +1,55 @@ +package org.dromara.dynamictp.core.spring; +import com.google.inject.Guice; +import com.google.inject.Injector; +import com.google.inject.Module; +import com.google.inject.Key; + +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * GuiceContextHolder + * + * Provides similar functionality to Spring's ApplicationContextHolder using Google Guice. + */ +public class GuiceContextHolder { + + private static Injector injector; + + private GuiceContextHolder() { + // Private constructor to prevent instantiation + } + + public static void setInjector(Module... modules) { + if (injector == null) { + synchronized (GuiceContextHolder.class) { + if (injector == null) { + injector = Guice.createInjector(modules); + } + } + } + } + + public static T getBean(Class clazz) { + return getInstance().getInstance(clazz); + } + + public static T getBean(Key key) { + return getInstance().getInstance(key); + } + + public static Map, T> getBeansOfType(Class clazz) { + return getInstance().getAllBindings().entrySet().stream() + .filter(entry -> clazz.isAssignableFrom(entry.getKey().getTypeLiteral().getRawType())) + .collect(Collectors.toMap(Map.Entry::getKey, entry -> (T) entry.getValue().getProvider().get())); + } + + private static Injector getInstance() { + if (injector == null) { + throw new IllegalStateException("Injector is not initialized. Please set the injector before using it."); + } + return injector; + } +} + diff --git a/core/src/main/java/org/dromara/dynamictp/core/support/BinderHelper.java b/core/src/main/java/org/dromara/dynamictp/core/support/BinderHelper.java index 4f3946883..cfc6a0e48 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/support/BinderHelper.java +++ b/core/src/main/java/org/dromara/dynamictp/core/support/BinderHelper.java @@ -51,7 +51,7 @@ private static PropertiesBinder getBinder() { Singleton.INST.single(PropertiesBinder.class, loadedFirstBinder); return loadedFirstBinder; } - + public static void bindDtpProperties(Map properties, DtpProperties dtpProperties) { final PropertiesBinder binder = getBinder(); if (Objects.isNull(binder)) { @@ -59,7 +59,7 @@ public static void bindDtpProperties(Map properties, DtpProperties dt } binder.bindDtpProperties(properties, dtpProperties); } - + public static void bindDtpProperties(Environment environment, DtpProperties dtpProperties) { final PropertiesBinder binder = getBinder(); if (Objects.isNull(binder)) { diff --git a/core/src/main/java/org/dromara/dynamictp/core/support/ThreadPoolStatProvider.java b/core/src/main/java/org/dromara/dynamictp/core/support/ThreadPoolStatProvider.java index 05c782435..8656ae1c6 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/support/ThreadPoolStatProvider.java +++ b/core/src/main/java/org/dromara/dynamictp/core/support/ThreadPoolStatProvider.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.core.support; import lombok.val; -import org.dromara.dynamictp.common.spring.ApplicationContextHolder; +import org.dromara.dynamictp.common.spring.BeanProviderHelper; import org.dromara.dynamictp.common.timer.HashedWheelTimer; import org.dromara.dynamictp.common.timer.Timeout; import org.dromara.dynamictp.core.executor.DtpExecutor; @@ -164,7 +164,7 @@ public void startQueueTimeoutTask(Runnable r) { if (queueTimeout <= 0) { return; } - HashedWheelTimer timer = ApplicationContextHolder.getBean(HashedWheelTimer.class); + HashedWheelTimer timer = BeanProviderHelper.getBean(HashedWheelTimer.class); QueueTimeoutTimerTask timerTask = new QueueTimeoutTimerTask(executorWrapper, r); queueTimeoutMap.put(r, new SoftReference<>(timer.newTimeout(timerTask, queueTimeout, TimeUnit.MILLISECONDS))); } @@ -179,7 +179,7 @@ public void startRunTimeoutTask(Thread t, Runnable r) { if (runTimeout <= 0) { return; } - HashedWheelTimer timer = ApplicationContextHolder.getBean(HashedWheelTimer.class); + HashedWheelTimer timer = BeanProviderHelper.getBean(HashedWheelTimer.class); RunTimeoutTimerTask timerTask = new RunTimeoutTimerTask(executorWrapper, r, t); runTimeoutMap.put(r, new SoftReference<>(timer.newTimeout(timerTask, runTimeout, TimeUnit.MILLISECONDS))); } diff --git a/example/example-adapter/example-adapter-brpc/src/main/java/org/dromara/dynamictp/example/BrpcExampleApplication.java b/example/example-adapter/example-adapter-brpc/src/main/java/org/dromara/dynamictp/example/BrpcExampleApplication.java index c4acc712e..694137497 100644 --- a/example/example-adapter/example-adapter-brpc/src/main/java/org/dromara/dynamictp/example/BrpcExampleApplication.java +++ b/example/example-adapter/example-adapter-brpc/src/main/java/org/dromara/dynamictp/example/BrpcExampleApplication.java @@ -18,7 +18,6 @@ package org.dromara.dynamictp.example; import com.baidu.cloud.starlight.springcloud.server.annotation.StarlightScan; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -26,7 +25,6 @@ * @author fabian4 */ @StarlightScan -@EnableDynamicTp @SpringBootApplication public class BrpcExampleApplication { public static void main(String[] args) { diff --git a/example/example-adapter/example-adapter-dubbo/example-adapter-alibaba-dubbo/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java b/example/example-adapter/example-adapter-dubbo/example-adapter-alibaba-dubbo/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java index d236f57ef..c033c13c3 100644 --- a/example/example-adapter/example-adapter-dubbo/example-adapter-alibaba-dubbo/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java +++ b/example/example-adapter/example-adapter-dubbo/example-adapter-alibaba-dubbo/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java @@ -18,7 +18,6 @@ package org.dromara.dynamictp.example; import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -26,7 +25,6 @@ * @author dragon-zhang */ @EnableDubbo -@EnableDynamicTp @SpringBootApplication public class DubboExampleApplication { public static void main(String[] args) { diff --git a/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-2.7.3/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java b/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-2.7.3/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java index 19299a668..da42cf0f1 100644 --- a/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-2.7.3/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java +++ b/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-2.7.3/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java @@ -17,7 +17,6 @@ package org.dromara.dynamictp.example; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -26,7 +25,6 @@ * @author dragon-zhang */ @EnableDubbo -@EnableDynamicTp @SpringBootApplication public class DubboExampleApplication { public static void main(String[] args) { diff --git a/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-2.7.9/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java b/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-2.7.9/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java index 8d45d56c5..15d069a1b 100644 --- a/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-2.7.9/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java +++ b/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-2.7.9/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java @@ -17,7 +17,6 @@ package org.dromara.dynamictp.example; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -26,7 +25,6 @@ * @author fabian4 */ @EnableDubbo -@EnableDynamicTp @SpringBootApplication public class DubboExampleApplication { public static void main(String[] args) { diff --git a/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-3.0.7/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java b/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-3.0.7/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java index 8d45d56c5..15d069a1b 100644 --- a/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-3.0.7/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java +++ b/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-3.0.7/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java @@ -17,7 +17,6 @@ package org.dromara.dynamictp.example; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -26,7 +25,6 @@ * @author fabian4 */ @EnableDubbo -@EnableDynamicTp @SpringBootApplication public class DubboExampleApplication { public static void main(String[] args) { diff --git a/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-3.2.10/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java b/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-3.2.10/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java index 8d45d56c5..15d069a1b 100644 --- a/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-3.2.10/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java +++ b/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-3.2.10/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java @@ -17,7 +17,6 @@ package org.dromara.dynamictp.example; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -26,7 +25,6 @@ * @author fabian4 */ @EnableDubbo -@EnableDynamicTp @SpringBootApplication public class DubboExampleApplication { public static void main(String[] args) { diff --git a/example/example-adapter/example-adapter-grpc/src/main/java/org/dromara/dynamictp/example/GrpcExampleApplication.java b/example/example-adapter/example-adapter-grpc/src/main/java/org/dromara/dynamictp/example/GrpcExampleApplication.java index 89266c624..97368f111 100644 --- a/example/example-adapter/example-adapter-grpc/src/main/java/org/dromara/dynamictp/example/GrpcExampleApplication.java +++ b/example/example-adapter/example-adapter-grpc/src/main/java/org/dromara/dynamictp/example/GrpcExampleApplication.java @@ -17,14 +17,12 @@ package org.dromara.dynamictp.example; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author fabian4 */ -@EnableDynamicTp @SpringBootApplication public class GrpcExampleApplication { public static void main(String[] args) { diff --git a/example/example-adapter/example-adapter-hystrix/src/main/java/org/dromara/dynamictp/example/HystrixExampleApplication.java b/example/example-adapter/example-adapter-hystrix/src/main/java/org/dromara/dynamictp/example/HystrixExampleApplication.java index b36dc3151..d8ca1bf1f 100644 --- a/example/example-adapter/example-adapter-hystrix/src/main/java/org/dromara/dynamictp/example/HystrixExampleApplication.java +++ b/example/example-adapter/example-adapter-hystrix/src/main/java/org/dromara/dynamictp/example/HystrixExampleApplication.java @@ -17,7 +17,6 @@ package org.dromara.dynamictp.example; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.hystrix.EnableHystrix; @@ -26,7 +25,6 @@ * @author fabian4 */ @EnableHystrix -@EnableDynamicTp @SpringBootApplication public class HystrixExampleApplication { diff --git a/example/example-adapter/example-adapter-motan/src/main/java/org/dromara/dynamictp/example/MotanExampleApplication.java b/example/example-adapter/example-adapter-motan/src/main/java/org/dromara/dynamictp/example/MotanExampleApplication.java index 168f4f660..380d7aef4 100644 --- a/example/example-adapter/example-adapter-motan/src/main/java/org/dromara/dynamictp/example/MotanExampleApplication.java +++ b/example/example-adapter/example-adapter-motan/src/main/java/org/dromara/dynamictp/example/MotanExampleApplication.java @@ -17,7 +17,6 @@ package org.dromara.dynamictp.example; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ImportResource; @@ -25,7 +24,6 @@ /** * @author fabian4 */ -@EnableDynamicTp @SpringBootApplication @ImportResource(locations = {"classpath:motan_server.xml"}) public class MotanExampleApplication { diff --git a/example/example-adapter/example-adapter-okhttp3/src/main/java/org/dromara/dynamictp/example/Okhttp3ExampleApplication.java b/example/example-adapter/example-adapter-okhttp3/src/main/java/org/dromara/dynamictp/example/Okhttp3ExampleApplication.java index 0dd788e5c..b352f0a02 100644 --- a/example/example-adapter/example-adapter-okhttp3/src/main/java/org/dromara/dynamictp/example/Okhttp3ExampleApplication.java +++ b/example/example-adapter/example-adapter-okhttp3/src/main/java/org/dromara/dynamictp/example/Okhttp3ExampleApplication.java @@ -17,14 +17,12 @@ package org.dromara.dynamictp.example; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author fabian4 */ -@EnableDynamicTp @SpringBootApplication public class Okhttp3ExampleApplication { diff --git a/example/example-adapter/example-adapter-rabbitmq/src/main/java/org/dromara/dynamictp/example/RabbitMqExampleApplication.java b/example/example-adapter/example-adapter-rabbitmq/src/main/java/org/dromara/dynamictp/example/RabbitMqExampleApplication.java index 256f90e39..d4158c827 100644 --- a/example/example-adapter/example-adapter-rabbitmq/src/main/java/org/dromara/dynamictp/example/RabbitMqExampleApplication.java +++ b/example/example-adapter/example-adapter-rabbitmq/src/main/java/org/dromara/dynamictp/example/RabbitMqExampleApplication.java @@ -17,14 +17,12 @@ package org.dromara.dynamictp.example; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author fabian4 */ -@EnableDynamicTp @SpringBootApplication public class RabbitMqExampleApplication { diff --git a/example/example-adapter/example-adapter-rocketmq/src/main/java/org/dromara/dynamictp/example/RocketMqExampleApplication.java b/example/example-adapter/example-adapter-rocketmq/src/main/java/org/dromara/dynamictp/example/RocketMqExampleApplication.java index 84594d50b..89c997982 100644 --- a/example/example-adapter/example-adapter-rocketmq/src/main/java/org/dromara/dynamictp/example/RocketMqExampleApplication.java +++ b/example/example-adapter/example-adapter-rocketmq/src/main/java/org/dromara/dynamictp/example/RocketMqExampleApplication.java @@ -17,14 +17,12 @@ package org.dromara.dynamictp.example; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author fabian4 */ -@EnableDynamicTp @SpringBootApplication public class RocketMqExampleApplication { diff --git a/example/example-apollo/src/main/java/org/dromara/dynamictp/example/ApolloExampleApplication.java b/example/example-apollo/src/main/java/org/dromara/dynamictp/example/ApolloExampleApplication.java index 934ea2476..87db49a86 100644 --- a/example/example-apollo/src/main/java/org/dromara/dynamictp/example/ApolloExampleApplication.java +++ b/example/example-apollo/src/main/java/org/dromara/dynamictp/example/ApolloExampleApplication.java @@ -17,14 +17,12 @@ package org.dromara.dynamictp.example; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author Redick01 */ -@EnableDynamicTp @SpringBootApplication public class ApolloExampleApplication { diff --git a/example/example-consul-cloud/src/main/java/org/dromara/dynamictp/example/CloudConsulExampleApplication.java b/example/example-consul-cloud/src/main/java/org/dromara/dynamictp/example/CloudConsulExampleApplication.java index 3ab775b0f..1d65950a1 100644 --- a/example/example-consul-cloud/src/main/java/org/dromara/dynamictp/example/CloudConsulExampleApplication.java +++ b/example/example-consul-cloud/src/main/java/org/dromara/dynamictp/example/CloudConsulExampleApplication.java @@ -17,7 +17,6 @@ package org.dromara.dynamictp.example; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -26,7 +25,6 @@ /** * @author Redick01 */ -@EnableDynamicTp @EnableFeignClients @MapperScan(basePackages = {"org.dromara.dynamictp.example.mapper"}) @SpringBootApplication diff --git a/example/example-etcd/src/main/java/org/dromara/dynamictp/example/EtcdExampleApplication.java b/example/example-etcd/src/main/java/org/dromara/dynamictp/example/EtcdExampleApplication.java index 6e48831b6..8a58d1d78 100644 --- a/example/example-etcd/src/main/java/org/dromara/dynamictp/example/EtcdExampleApplication.java +++ b/example/example-etcd/src/main/java/org/dromara/dynamictp/example/EtcdExampleApplication.java @@ -17,14 +17,12 @@ package org.dromara.dynamictp.example; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author Redick01 */ -@EnableDynamicTp @SpringBootApplication public class EtcdExampleApplication { diff --git a/example/example-huawei-cloud/src/main/java/org/dromara/dynamictp/example/HuaweiCloudExampleApplication.java b/example/example-huawei-cloud/src/main/java/org/dromara/dynamictp/example/HuaweiCloudExampleApplication.java index cc8de4699..a6f2a7f60 100644 --- a/example/example-huawei-cloud/src/main/java/org/dromara/dynamictp/example/HuaweiCloudExampleApplication.java +++ b/example/example-huawei-cloud/src/main/java/org/dromara/dynamictp/example/HuaweiCloudExampleApplication.java @@ -17,14 +17,12 @@ package org.dromara.dynamictp.example; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author windsearcher */ -@EnableDynamicTp @SpringBootApplication public class HuaweiCloudExampleApplication { diff --git a/example/example-nacos-cloud/src/main/java/org/dromara/dynamictp/example/NacosCloudExampleApplication.java b/example/example-nacos-cloud/src/main/java/org/dromara/dynamictp/example/NacosCloudExampleApplication.java index a6a9528c3..48ea0cc4d 100644 --- a/example/example-nacos-cloud/src/main/java/org/dromara/dynamictp/example/NacosCloudExampleApplication.java +++ b/example/example-nacos-cloud/src/main/java/org/dromara/dynamictp/example/NacosCloudExampleApplication.java @@ -17,14 +17,12 @@ package org.dromara.dynamictp.example; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author Redick01 */ -@EnableDynamicTp @SpringBootApplication public class NacosCloudExampleApplication { diff --git a/example/example-nacos/src/main/java/org/dromara/dynamictp/example/NacosExampleApplication.java b/example/example-nacos/src/main/java/org/dromara/dynamictp/example/NacosExampleApplication.java index 064c8471c..ac3f9e2d1 100644 --- a/example/example-nacos/src/main/java/org/dromara/dynamictp/example/NacosExampleApplication.java +++ b/example/example-nacos/src/main/java/org/dromara/dynamictp/example/NacosExampleApplication.java @@ -17,14 +17,12 @@ package org.dromara.dynamictp.example; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author Redick01 */ -@EnableDynamicTp @SpringBootApplication public class NacosExampleApplication { diff --git a/example/example-polaris-cloud/src/main/java/org/dromara/dynamictp/example/PolarisCloudExampleApplication.java b/example/example-polaris-cloud/src/main/java/org/dromara/dynamictp/example/PolarisCloudExampleApplication.java index aa2ecfb9d..0a1eb555e 100644 --- a/example/example-polaris-cloud/src/main/java/org/dromara/dynamictp/example/PolarisCloudExampleApplication.java +++ b/example/example-polaris-cloud/src/main/java/org/dromara/dynamictp/example/PolarisCloudExampleApplication.java @@ -17,14 +17,12 @@ package org.dromara.dynamictp.example; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author fabian4 */ -@EnableDynamicTp @SpringBootApplication public class PolarisCloudExampleApplication { diff --git a/example/example-zookeeper-cloud/src/main/java/org/dromara/dynamictp/example/CloudZookeeperExampleApplication.java b/example/example-zookeeper-cloud/src/main/java/org/dromara/dynamictp/example/CloudZookeeperExampleApplication.java index 271633f13..664c52f57 100644 --- a/example/example-zookeeper-cloud/src/main/java/org/dromara/dynamictp/example/CloudZookeeperExampleApplication.java +++ b/example/example-zookeeper-cloud/src/main/java/org/dromara/dynamictp/example/CloudZookeeperExampleApplication.java @@ -17,14 +17,12 @@ package org.dromara.dynamictp.example; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author Redick01 */ -@EnableDynamicTp @SpringBootApplication public class CloudZookeeperExampleApplication { diff --git a/example/example-zookeeper/src/main/java/org/dromara/dynamictp/example/ZookeeperExampleApplication.java b/example/example-zookeeper/src/main/java/org/dromara/dynamictp/example/ZookeeperExampleApplication.java index 7d5b6bda2..f2ec16cc6 100644 --- a/example/example-zookeeper/src/main/java/org/dromara/dynamictp/example/ZookeeperExampleApplication.java +++ b/example/example-zookeeper/src/main/java/org/dromara/dynamictp/example/ZookeeperExampleApplication.java @@ -17,7 +17,6 @@ package org.dromara.dynamictp.example; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.scheduling.annotation.EnableAsync; @@ -25,7 +24,6 @@ /** * @author Redick01 */ -@EnableDynamicTp @EnableAsync @SpringBootApplication public class ZookeeperExampleApplication { diff --git a/extension/extension-limiter-redis/src/main/java/org/dromara/dynamictp/extension/limiter/redis/ratelimiter/SlidingWindowRateLimiter.java b/extension/extension-limiter-redis/src/main/java/org/dromara/dynamictp/extension/limiter/redis/ratelimiter/SlidingWindowRateLimiter.java index 9bd5afdc2..1ab1d0a23 100644 --- a/extension/extension-limiter-redis/src/main/java/org/dromara/dynamictp/extension/limiter/redis/ratelimiter/SlidingWindowRateLimiter.java +++ b/extension/extension-limiter-redis/src/main/java/org/dromara/dynamictp/extension/limiter/redis/ratelimiter/SlidingWindowRateLimiter.java @@ -17,7 +17,6 @@ package org.dromara.dynamictp.extension.limiter.redis.ratelimiter; -import org.dromara.dynamictp.common.util.CommonUtil; import org.dromara.dynamictp.extension.limiter.redis.em.RateLimitEnum; import org.springframework.data.redis.core.StringRedisTemplate; diff --git a/extension/extension-notify-email/src/main/java/org/dromara/dynamictp/extension/notify/email/DtpEmailNotifier.java b/extension/extension-notify-email/src/main/java/org/dromara/dynamictp/extension/notify/email/DtpEmailNotifier.java index ebc6304f8..3adbbfeba 100644 --- a/extension/extension-notify-email/src/main/java/org/dromara/dynamictp/extension/notify/email/DtpEmailNotifier.java +++ b/extension/extension-notify-email/src/main/java/org/dromara/dynamictp/extension/notify/email/DtpEmailNotifier.java @@ -26,8 +26,6 @@ import org.dromara.dynamictp.common.entity.NotifyItem; import org.dromara.dynamictp.common.entity.NotifyPlatform; import org.dromara.dynamictp.common.entity.TpMainFields; -import org.dromara.dynamictp.common.spring.ApplicationContextHolder; -import org.dromara.dynamictp.common.util.CommonUtil; import org.dromara.dynamictp.common.util.DateUtil; import org.dromara.dynamictp.core.notifier.AbstractDtpNotifier; import org.dromara.dynamictp.core.notifier.alarm.AlarmCounter; diff --git a/extension/extension-notify-yunzhijia/src/main/java/org/dromara/dynamictp/extension/notify/yunzhijia/DtpYunZhiJiaNotifier.java b/extension/extension-notify-yunzhijia/src/main/java/org/dromara/dynamictp/extension/notify/yunzhijia/DtpYunZhiJiaNotifier.java index 525835d99..cbba9c8ea 100644 --- a/extension/extension-notify-yunzhijia/src/main/java/org/dromara/dynamictp/extension/notify/yunzhijia/DtpYunZhiJiaNotifier.java +++ b/extension/extension-notify-yunzhijia/src/main/java/org/dromara/dynamictp/extension/notify/yunzhijia/DtpYunZhiJiaNotifier.java @@ -20,7 +20,6 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; -import org.dromara.dynamictp.common.spring.ApplicationContextHolder; import org.dromara.dynamictp.core.notifier.AbstractDtpNotifier; /** diff --git a/logging/src/main/java/org/dromara/dynamictp/logging/AbstractDtpLogging.java b/logging/src/main/java/org/dromara/dynamictp/logging/AbstractDtpLogging.java index 6e24400cc..58ffab78f 100644 --- a/logging/src/main/java/org/dromara/dynamictp/logging/AbstractDtpLogging.java +++ b/logging/src/main/java/org/dromara/dynamictp/logging/AbstractDtpLogging.java @@ -17,7 +17,6 @@ package org.dromara.dynamictp.logging; -import org.dromara.dynamictp.common.spring.ApplicationContextHolder; import org.dromara.dynamictp.common.properties.DtpProperties; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; diff --git a/pom.xml b/pom.xml index 10417deba..d16e5760a 100644 --- a/pom.xml +++ b/pom.xml @@ -48,6 +48,7 @@ jvmti test dependencies + spring diff --git a/spring/pom.xml b/spring/pom.xml new file mode 100644 index 000000000..82b19ad7d --- /dev/null +++ b/spring/pom.xml @@ -0,0 +1,29 @@ + + + 4.0.0 + + org.dromara.dynamictp + dynamic-tp-all + ${revision} + ../pom.xml + + + + dynamic-tp-spring + + + + + org.springframework + spring-context + + + org.dromara.dynamictp + dynamic-tp-core + + + + + \ No newline at end of file diff --git a/common/src/main/java/org/dromara/dynamictp/common/spring/ApplicationContextHolder.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/ApplicationContextHolder.java similarity index 98% rename from common/src/main/java/org/dromara/dynamictp/common/spring/ApplicationContextHolder.java rename to spring/src/main/java/org/dromara/dynamictp/spring/ex/ApplicationContextHolder.java index 96d84f062..264df6539 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/spring/ApplicationContextHolder.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/ex/ApplicationContextHolder.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.common.spring; +package org.dromara.dynamictp.spring.ex; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/DtpBaseBeanConfiguration.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBaseBeanConfiguration.java similarity index 95% rename from core/src/main/java/org/dromara/dynamictp/core/spring/DtpBaseBeanConfiguration.java rename to spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBaseBeanConfiguration.java index 8677cb50d..d81f01026 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/spring/DtpBaseBeanConfiguration.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBaseBeanConfiguration.java @@ -15,11 +15,12 @@ * limitations under the License. */ -package org.dromara.dynamictp.core.spring; +package org.dromara.dynamictp.spring.ex; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.core.DtpRegistry; import org.dromara.dynamictp.core.monitor.DtpMonitor; +import org.dromara.dynamictp.core.spring.DtpLifecycle; import org.dromara.dynamictp.core.support.DtpBannerPrinter; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Bean; diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/DtpBaseBeanDefinitionRegistrar.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBaseBeanDefinitionRegistrar.java similarity index 93% rename from core/src/main/java/org/dromara/dynamictp/core/spring/DtpBaseBeanDefinitionRegistrar.java rename to spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBaseBeanDefinitionRegistrar.java index c0195330d..427cb9038 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/spring/DtpBaseBeanDefinitionRegistrar.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBaseBeanDefinitionRegistrar.java @@ -15,11 +15,10 @@ * limitations under the License. */ -package org.dromara.dynamictp.core.spring; +package org.dromara.dynamictp.spring.ex; import com.google.common.collect.Lists; -import org.dromara.dynamictp.common.spring.ApplicationContextHolder; -import org.dromara.dynamictp.common.spring.SpringBeanHelper; + import org.dromara.dynamictp.common.timer.HashedWheelTimer; import org.dromara.dynamictp.core.executor.NamedThreadFactory; import org.springframework.beans.factory.support.BeanDefinitionRegistry; diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/DtpBeanDefinitionRegistrar.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBeanDefinitionRegistrar.java similarity index 80% rename from core/src/main/java/org/dromara/dynamictp/core/spring/DtpBeanDefinitionRegistrar.java rename to spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBeanDefinitionRegistrar.java index a01caf296..f4100a0f6 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/spring/DtpBeanDefinitionRegistrar.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBeanDefinitionRegistrar.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.core.spring; +package org.dromara.dynamictp.spring.ex; import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; @@ -23,7 +23,6 @@ import org.apache.commons.collections4.CollectionUtils; import org.dromara.dynamictp.common.entity.DtpExecutorProps; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.common.spring.SpringBeanHelper; import org.dromara.dynamictp.core.executor.ExecutorType; import org.dromara.dynamictp.core.executor.NamedThreadFactory; import org.dromara.dynamictp.core.executor.eager.EagerDtpExecutor; @@ -42,23 +41,7 @@ import java.util.concurrent.BlockingQueue; import java.util.concurrent.PriorityBlockingQueue; -import static org.dromara.dynamictp.common.constant.DynamicTpConst.ALLOW_CORE_THREAD_TIMEOUT; -import static org.dromara.dynamictp.common.constant.DynamicTpConst.AWAIT_TERMINATION_SECONDS; -import static org.dromara.dynamictp.common.constant.DynamicTpConst.AWARE_NAMES; -import static org.dromara.dynamictp.common.constant.DynamicTpConst.NOTIFY_ENABLED; -import static org.dromara.dynamictp.common.constant.DynamicTpConst.NOTIFY_ITEMS; -import static org.dromara.dynamictp.common.constant.DynamicTpConst.PLATFORM_IDS; -import static org.dromara.dynamictp.common.constant.DynamicTpConst.PLUGIN_NAMES; -import static org.dromara.dynamictp.common.constant.DynamicTpConst.PRE_START_ALL_CORE_THREADS; -import static org.dromara.dynamictp.common.constant.DynamicTpConst.QUEUE_TIMEOUT; -import static org.dromara.dynamictp.common.constant.DynamicTpConst.REJECT_ENHANCED; -import static org.dromara.dynamictp.common.constant.DynamicTpConst.REJECT_HANDLER_TYPE; -import static org.dromara.dynamictp.common.constant.DynamicTpConst.RUN_TIMEOUT; -import static org.dromara.dynamictp.common.constant.DynamicTpConst.TASK_WRAPPERS; -import static org.dromara.dynamictp.common.constant.DynamicTpConst.THREAD_POOL_ALIAS_NAME; -import static org.dromara.dynamictp.common.constant.DynamicTpConst.THREAD_POOL_NAME; -import static org.dromara.dynamictp.common.constant.DynamicTpConst.TRY_INTERRUPT_WHEN_TIMEOUT; -import static org.dromara.dynamictp.common.constant.DynamicTpConst.WAIT_FOR_TASKS_TO_COMPLETE_ON_SHUTDOWN; +import static org.dromara.dynamictp.common.constant.DynamicTpConst.*; import static org.dromara.dynamictp.common.em.QueueTypeEnum.buildLbq; import static org.dromara.dynamictp.common.entity.NotifyItem.mergeAllNotifyItems; diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/DtpConfigurationSelector.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpConfigurationSelector.java similarity index 97% rename from core/src/main/java/org/dromara/dynamictp/core/spring/DtpConfigurationSelector.java rename to spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpConfigurationSelector.java index 18751a7bf..42a020fb9 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/spring/DtpConfigurationSelector.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpConfigurationSelector.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.core.spring; +package org.dromara.dynamictp.spring.ex; import org.apache.commons.lang3.BooleanUtils; import org.springframework.context.EnvironmentAware; diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/DtpLifecycleSpringAdapter.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpLifecycleSpringAdapter.java similarity index 90% rename from core/src/main/java/org/dromara/dynamictp/core/spring/DtpLifecycleSpringAdapter.java rename to spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpLifecycleSpringAdapter.java index 2e5167d48..b12d1d9b1 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/spring/DtpLifecycleSpringAdapter.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpLifecycleSpringAdapter.java @@ -1,5 +1,6 @@ -package org.dromara.dynamictp.core.spring; +package org.dromara.dynamictp.spring.ex; +import org.dromara.dynamictp.core.spring.LifeCycleManagement; import org.springframework.context.SmartLifecycle; public class DtpLifecycleSpringAdapter implements SmartLifecycle { diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/DtpPostProcessor.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpPostProcessor.java similarity index 99% rename from core/src/main/java/org/dromara/dynamictp/core/spring/DtpPostProcessor.java rename to spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpPostProcessor.java index 8496f1462..ee7a179e2 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/spring/DtpPostProcessor.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpPostProcessor.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.core.spring; +package org.dromara.dynamictp.spring.ex; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/EnableDynamicTp.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/EnableDynamicTp.java similarity index 82% rename from core/src/main/java/org/dromara/dynamictp/core/spring/EnableDynamicTp.java rename to spring/src/main/java/org/dromara/dynamictp/spring/ex/EnableDynamicTp.java index 1dbd5cb17..fc229ebe9 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/spring/EnableDynamicTp.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/ex/EnableDynamicTp.java @@ -15,15 +15,11 @@ * limitations under the License. */ -package org.dromara.dynamictp.core.spring; +package org.dromara.dynamictp.spring.ex; import org.springframework.context.annotation.Import; -import java.lang.annotation.Documented; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; +import java.lang.annotation.*; /** * EnableDynamicTp related diff --git a/common/src/main/java/org/dromara/dynamictp/common/spring/OnceApplicationContextEventListener.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/OnceApplicationContextEventListener.java similarity index 91% rename from common/src/main/java/org/dromara/dynamictp/common/spring/OnceApplicationContextEventListener.java rename to spring/src/main/java/org/dromara/dynamictp/spring/ex/OnceApplicationContextEventListener.java index afa1753d6..b9f016c4c 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/spring/OnceApplicationContextEventListener.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/ex/OnceApplicationContextEventListener.java @@ -15,18 +15,14 @@ * limitations under the License. */ -package org.dromara.dynamictp.common.spring; +package org.dromara.dynamictp.spring.ex; import lombok.extern.slf4j.Slf4j; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.context.ApplicationEvent; 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.event.ContextStartedEvent; -import org.springframework.context.event.ContextStoppedEvent; +import org.springframework.context.event.*; import static org.springframework.util.ObjectUtils.nullSafeEquals; diff --git a/common/src/main/java/org/dromara/dynamictp/common/spring/SpringBeanHelper.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringBeanHelper.java similarity index 99% rename from common/src/main/java/org/dromara/dynamictp/common/spring/SpringBeanHelper.java rename to spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringBeanHelper.java index 6011f0253..b3306cead 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/spring/SpringBeanHelper.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringBeanHelper.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.common.spring; +package org.dromara.dynamictp.spring.ex; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringBeanProvider.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringBeanProvider.java new file mode 100644 index 000000000..39deee26e --- /dev/null +++ b/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringBeanProvider.java @@ -0,0 +1,29 @@ +package org.dromara.dynamictp.spring.ex; + +import org.dromara.dynamictp.common.spring.BeanProvider; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +import java.util.Map; + +@Component +public class SpringBeanProvider implements BeanProvider, ApplicationContextAware { + + private static ApplicationContext context; + + @Override + public void setApplicationContext(ApplicationContext applicationContext) { + context = applicationContext; + } + + @Override + public T getBean(Class clazz) { + return context.getBean(clazz); + } + + @Override + public Map getBeansOfType(Class clazz) { + return context.getBeansOfType(clazz); + } +} diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/SpringExecutor.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringExecutor.java similarity index 95% rename from core/src/main/java/org/dromara/dynamictp/core/spring/SpringExecutor.java rename to spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringExecutor.java index d74762828..19358536b 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/spring/SpringExecutor.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringExecutor.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.core.spring; +package org.dromara.dynamictp.spring.ex; import org.springframework.core.task.AsyncTaskExecutor; diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/YamlPropertySourceFactory.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/YamlPropertySourceFactory.java similarity index 97% rename from core/src/main/java/org/dromara/dynamictp/core/spring/YamlPropertySourceFactory.java rename to spring/src/main/java/org/dromara/dynamictp/spring/ex/YamlPropertySourceFactory.java index 320aafa62..a739b721d 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/spring/YamlPropertySourceFactory.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/ex/YamlPropertySourceFactory.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.core.spring; +package org.dromara.dynamictp.spring.ex; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; diff --git a/spring/src/main/resources/META-INF/services/org.dromara.dynamictp.common.spring.BeanProvider b/spring/src/main/resources/META-INF/services/org.dromara.dynamictp.common.spring.BeanProvider new file mode 100644 index 000000000..90d6091a7 --- /dev/null +++ b/spring/src/main/resources/META-INF/services/org.dromara.dynamictp.common.spring.BeanProvider @@ -0,0 +1 @@ +org.dromara.dynamictp.spring.ex.SpringBeanProvider diff --git a/starter/starter-adapter/starter-adapter-brpc/src/main/java/org/dromara/dynamictp/starter/adapter/brpc/autoconfigure/BrpcTpAutoConfiguration.java b/starter/starter-adapter/starter-adapter-brpc/src/main/java/org/dromara/dynamictp/starter/adapter/brpc/autoconfigure/BrpcTpAutoConfiguration.java index 3d9403be9..db75e00be 100644 --- a/starter/starter-adapter/starter-adapter-brpc/src/main/java/org/dromara/dynamictp/starter/adapter/brpc/autoconfigure/BrpcTpAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-brpc/src/main/java/org/dromara/dynamictp/starter/adapter/brpc/autoconfigure/BrpcTpAutoConfiguration.java @@ -19,7 +19,6 @@ import org.dromara.dynamictp.apapter.brpc.client.StarlightClientDtpAdapter; import org.dromara.dynamictp.apapter.brpc.server.StarlightServerDtpAdapter; -import org.dromara.dynamictp.core.spring.DtpBaseBeanConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; diff --git a/starter/starter-adapter/starter-adapter-common/src/main/java/org/dromara/dynamictp/starter/adapter/common/autoconfigure/AdapterCommonAutoConfiguration.java b/starter/starter-adapter/starter-adapter-common/src/main/java/org/dromara/dynamictp/starter/adapter/common/autoconfigure/AdapterCommonAutoConfiguration.java index f09cf2167..244760c18 100644 --- a/starter/starter-adapter/starter-adapter-common/src/main/java/org/dromara/dynamictp/starter/adapter/common/autoconfigure/AdapterCommonAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-common/src/main/java/org/dromara/dynamictp/starter/adapter/common/autoconfigure/AdapterCommonAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.adapter.common.autoconfigure; import org.dromara.dynamictp.adapter.common.DtpAdapterListener; -import org.dromara.dynamictp.core.spring.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; diff --git a/starter/starter-adapter/starter-adapter-dubbo/src/main/java/org/dromara/dynamictp/starter/adapter/dubbo/autoconfigure/AlibabaDubboTpAutoConfiguration.java b/starter/starter-adapter/starter-adapter-dubbo/src/main/java/org/dromara/dynamictp/starter/adapter/dubbo/autoconfigure/AlibabaDubboTpAutoConfiguration.java index c2adbf140..33231b440 100644 --- a/starter/starter-adapter/starter-adapter-dubbo/src/main/java/org/dromara/dynamictp/starter/adapter/dubbo/autoconfigure/AlibabaDubboTpAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-dubbo/src/main/java/org/dromara/dynamictp/starter/adapter/dubbo/autoconfigure/AlibabaDubboTpAutoConfiguration.java @@ -18,8 +18,8 @@ package org.dromara.dynamictp.starter.adapter.dubbo.autoconfigure; import org.dromara.dynamictp.adapter.dubbo.alibaba.AlibabaDubboDtpAdapter; +import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.adapter.dubbo.autoconfigure.condition.ConditionOnAlibabaDubboApp; -import org.dromara.dynamictp.core.spring.DtpBaseBeanConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; diff --git a/starter/starter-adapter/starter-adapter-dubbo/src/main/java/org/dromara/dynamictp/starter/adapter/dubbo/autoconfigure/ApacheDubboTpAutoConfiguration.java b/starter/starter-adapter/starter-adapter-dubbo/src/main/java/org/dromara/dynamictp/starter/adapter/dubbo/autoconfigure/ApacheDubboTpAutoConfiguration.java index a9a5a9c8f..6535b8da0 100644 --- a/starter/starter-adapter/starter-adapter-dubbo/src/main/java/org/dromara/dynamictp/starter/adapter/dubbo/autoconfigure/ApacheDubboTpAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-dubbo/src/main/java/org/dromara/dynamictp/starter/adapter/dubbo/autoconfigure/ApacheDubboTpAutoConfiguration.java @@ -18,8 +18,8 @@ package org.dromara.dynamictp.starter.adapter.dubbo.autoconfigure; import org.dromara.dynamictp.adapter.dubbo.apache.ApacheDubboDtpAdapter; +import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.adapter.dubbo.autoconfigure.condition.ConditionOnApacheDubboApp; -import org.dromara.dynamictp.core.spring.DtpBaseBeanConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; diff --git a/starter/starter-adapter/starter-adapter-grpc/src/main/java/org/dromara/dynamictp/starter/adapter/grpc/autoconfigure/GrpcTpAutoConfiguration.java b/starter/starter-adapter/starter-adapter-grpc/src/main/java/org/dromara/dynamictp/starter/adapter/grpc/autoconfigure/GrpcTpAutoConfiguration.java index 7860535b3..9c3d55198 100644 --- a/starter/starter-adapter/starter-adapter-grpc/src/main/java/org/dromara/dynamictp/starter/adapter/grpc/autoconfigure/GrpcTpAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-grpc/src/main/java/org/dromara/dynamictp/starter/adapter/grpc/autoconfigure/GrpcTpAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.adapter.grpc.autoconfigure; import org.dromara.dynamictp.adapter.grpc.GrpcDtpAdapter; -import org.dromara.dynamictp.core.spring.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; diff --git a/starter/starter-adapter/starter-adapter-hystrix/src/main/java/org/dromara/dynamictp/starter/adapter/hystrix/autoconfigure/HystrixTpAutoConfiguration.java b/starter/starter-adapter/starter-adapter-hystrix/src/main/java/org/dromara/dynamictp/starter/adapter/hystrix/autoconfigure/HystrixTpAutoConfiguration.java index f4c00167e..70537cdf4 100644 --- a/starter/starter-adapter/starter-adapter-hystrix/src/main/java/org/dromara/dynamictp/starter/adapter/hystrix/autoconfigure/HystrixTpAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-hystrix/src/main/java/org/dromara/dynamictp/starter/adapter/hystrix/autoconfigure/HystrixTpAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.adapter.hystrix.autoconfigure; import org.dromara.dynamictp.adapter.hystrix.HystrixDtpAdapter; -import org.dromara.dynamictp.core.spring.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; diff --git a/starter/starter-adapter/starter-adapter-motan/src/main/java/org/dromara/dynamictp/starter/adapter/motan/autoconfigure/MotanTpAutoConfiguration.java b/starter/starter-adapter/starter-adapter-motan/src/main/java/org/dromara/dynamictp/starter/adapter/motan/autoconfigure/MotanTpAutoConfiguration.java index 0d18895f5..4dc8dd5cd 100644 --- a/starter/starter-adapter/starter-adapter-motan/src/main/java/org/dromara/dynamictp/starter/adapter/motan/autoconfigure/MotanTpAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-motan/src/main/java/org/dromara/dynamictp/starter/adapter/motan/autoconfigure/MotanTpAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.adapter.motan.autoconfigure; import org.dromara.dynamictp.adapter.motan.MotanDtpAdapter; -import org.dromara.dynamictp.core.spring.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; diff --git a/starter/starter-adapter/starter-adapter-okhttp3/src/main/java/org/dromara/dynamictp/starter/adapter/okhttp3/autoconfigure/Okhttp3TpAutoConfiguration.java b/starter/starter-adapter/starter-adapter-okhttp3/src/main/java/org/dromara/dynamictp/starter/adapter/okhttp3/autoconfigure/Okhttp3TpAutoConfiguration.java index eb81039a1..76f4c70dc 100644 --- a/starter/starter-adapter/starter-adapter-okhttp3/src/main/java/org/dromara/dynamictp/starter/adapter/okhttp3/autoconfigure/Okhttp3TpAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-okhttp3/src/main/java/org/dromara/dynamictp/starter/adapter/okhttp3/autoconfigure/Okhttp3TpAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.adapter.okhttp3.autoconfigure; import org.dromara.dynamictp.adapter.okhttp3.Okhttp3DtpAdapter; -import org.dromara.dynamictp.core.spring.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; diff --git a/starter/starter-adapter/starter-adapter-rabbitmq/src/main/java/org/dromara/dynamictp/starter/adapter/rabbitmq/autoconfigure/RabbitMqTpAutoConfiguration.java b/starter/starter-adapter/starter-adapter-rabbitmq/src/main/java/org/dromara/dynamictp/starter/adapter/rabbitmq/autoconfigure/RabbitMqTpAutoConfiguration.java index 22ace7811..daaa05632 100644 --- a/starter/starter-adapter/starter-adapter-rabbitmq/src/main/java/org/dromara/dynamictp/starter/adapter/rabbitmq/autoconfigure/RabbitMqTpAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-rabbitmq/src/main/java/org/dromara/dynamictp/starter/adapter/rabbitmq/autoconfigure/RabbitMqTpAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.adapter.rabbitmq.autoconfigure; import org.dromara.dynamictp.adapter.rabbitmq.RabbitMqDtpAdapter; -import org.dromara.dynamictp.core.spring.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; diff --git a/starter/starter-adapter/starter-adapter-rocketmq/src/main/java/org/dromara/dynamictp/starter/adapter/rocketmq/autoconfigure/AliyunOnsRocketMqAutoConfiguration.java b/starter/starter-adapter/starter-adapter-rocketmq/src/main/java/org/dromara/dynamictp/starter/adapter/rocketmq/autoconfigure/AliyunOnsRocketMqAutoConfiguration.java index 42903d118..5b02cf544 100644 --- a/starter/starter-adapter/starter-adapter-rocketmq/src/main/java/org/dromara/dynamictp/starter/adapter/rocketmq/autoconfigure/AliyunOnsRocketMqAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-rocketmq/src/main/java/org/dromara/dynamictp/starter/adapter/rocketmq/autoconfigure/AliyunOnsRocketMqAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.adapter.rocketmq.autoconfigure; import org.dromara.dynamictp.adapter.rocketmq.AliyunOnsRocketMqAdapter; -import org.dromara.dynamictp.core.spring.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; diff --git a/starter/starter-adapter/starter-adapter-rocketmq/src/main/java/org/dromara/dynamictp/starter/adapter/rocketmq/autoconfigure/RocketMqTpAutoConfiguration.java b/starter/starter-adapter/starter-adapter-rocketmq/src/main/java/org/dromara/dynamictp/starter/adapter/rocketmq/autoconfigure/RocketMqTpAutoConfiguration.java index df99d1e57..112c6c3b0 100644 --- a/starter/starter-adapter/starter-adapter-rocketmq/src/main/java/org/dromara/dynamictp/starter/adapter/rocketmq/autoconfigure/RocketMqTpAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-rocketmq/src/main/java/org/dromara/dynamictp/starter/adapter/rocketmq/autoconfigure/RocketMqTpAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.adapter.rocketmq.autoconfigure; import org.dromara.dynamictp.adapter.rocketmq.RocketMqDtpAdapter; -import org.dromara.dynamictp.core.spring.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; diff --git a/starter/starter-adapter/starter-adapter-sofa/src/main/java/org/dromara/dynamictp/starter/adapter/sofa/autoconfigure/SofaTpAutoConfiguration.java b/starter/starter-adapter/starter-adapter-sofa/src/main/java/org/dromara/dynamictp/starter/adapter/sofa/autoconfigure/SofaTpAutoConfiguration.java index 193151a25..c18355d44 100644 --- a/starter/starter-adapter/starter-adapter-sofa/src/main/java/org/dromara/dynamictp/starter/adapter/sofa/autoconfigure/SofaTpAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-sofa/src/main/java/org/dromara/dynamictp/starter/adapter/sofa/autoconfigure/SofaTpAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.adapter.sofa.autoconfigure; import org.dromara.dynamictp.adapter.sofa.SofaDtpAdapter; -import org.dromara.dynamictp.core.spring.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; diff --git a/starter/starter-adapter/starter-adapter-tars/src/main/java/org/dromara/dynamictp/starter/adapter/tars/autoconfigure/TarsTpAutoConfiguration.java b/starter/starter-adapter/starter-adapter-tars/src/main/java/org/dromara/dynamictp/starter/adapter/tars/autoconfigure/TarsTpAutoConfiguration.java index 49fa26bc2..717157f30 100644 --- a/starter/starter-adapter/starter-adapter-tars/src/main/java/org/dromara/dynamictp/starter/adapter/tars/autoconfigure/TarsTpAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-tars/src/main/java/org/dromara/dynamictp/starter/adapter/tars/autoconfigure/TarsTpAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.adapter.tars.autoconfigure; import org.dromara.dynamictp.adapter.tars.TarsDtpAdapter; -import org.dromara.dynamictp.core.spring.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; diff --git a/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/AbstractWebServerDtpAdapter.java b/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/AbstractWebServerDtpAdapter.java index 3623759ef..ae78293ed 100644 --- a/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/AbstractWebServerDtpAdapter.java +++ b/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/AbstractWebServerDtpAdapter.java @@ -20,7 +20,6 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.adapter.common.AbstractDtpAdapter; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.common.spring.ApplicationContextHolder; import org.dromara.dynamictp.core.converter.ExecutorConverter; import org.springframework.boot.web.context.WebServerApplicationContext; import org.springframework.boot.web.context.WebServerInitializedEvent; diff --git a/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/autocconfigure/WebServerTpAutoConfiguration.java b/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/autocconfigure/WebServerTpAutoConfiguration.java index cd587d42c..82aea84c9 100644 --- a/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/autocconfigure/WebServerTpAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/autocconfigure/WebServerTpAutoConfiguration.java @@ -17,7 +17,7 @@ package org.dromara.dynamictp.starter.adapter.webserver.autocconfigure; -import org.dromara.dynamictp.core.spring.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.adapter.webserver.autocconfigure.condition.ConditionalOnJettyWebServer; import org.dromara.dynamictp.starter.adapter.webserver.autocconfigure.condition.ConditionalOnTomcatWebServer; import org.dromara.dynamictp.starter.adapter.webserver.autocconfigure.condition.ConditionalOnUndertowWebServer; diff --git a/starter/starter-common/pom.xml b/starter/starter-common/pom.xml index ed5dbc980..8ff312afa 100644 --- a/starter/starter-common/pom.xml +++ b/starter/starter-common/pom.xml @@ -31,5 +31,11 @@ org.springframework.boot spring-boot-starter-actuator + + org.dromara.dynamictp + dynamic-tp-spring + 1.1.8-beta + compile + \ No newline at end of file diff --git a/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/DtpBootBeanConfiguration.java b/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/DtpBootBeanConfiguration.java index 5adbdcf52..52a8b2142 100644 --- a/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/DtpBootBeanConfiguration.java +++ b/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/DtpBootBeanConfiguration.java @@ -17,7 +17,7 @@ package org.dromara.dynamictp.starter.common; -import org.dromara.dynamictp.core.spring.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.common.monitor.DtpEndpoint; import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnAvailableEndpoint; import org.springframework.boot.autoconfigure.AutoConfigureAfter; diff --git a/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/monitor/DtpEndpoint.java b/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/monitor/DtpEndpoint.java index abfca8ce4..4bb8e25cd 100644 --- a/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/monitor/DtpEndpoint.java +++ b/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/monitor/DtpEndpoint.java @@ -21,13 +21,13 @@ import com.google.common.collect.Lists; import lombok.val; import org.apache.commons.collections4.MapUtils; -import org.dromara.dynamictp.common.spring.ApplicationContextHolder; import org.dromara.dynamictp.common.entity.JvmStats; import org.dromara.dynamictp.common.entity.Metrics; import org.dromara.dynamictp.core.DtpRegistry; import org.dromara.dynamictp.core.converter.ExecutorConverter; import org.dromara.dynamictp.core.support.ExecutorWrapper; import org.dromara.dynamictp.core.aware.MetricsAware; +import org.dromara.dynamictp.spring.ex.ApplicationContextHolder; import org.springframework.boot.actuate.endpoint.annotation.Endpoint; import org.springframework.boot.actuate.endpoint.annotation.ReadOperation; diff --git a/starter/starter-configcenter/cloud-starter-consul/src/main/java/org/dromara/dynamictp/starter/cloud/consul/autoconfigure/DtpConsulAutoConfiguration.java b/starter/starter-configcenter/cloud-starter-consul/src/main/java/org/dromara/dynamictp/starter/cloud/consul/autoconfigure/DtpConsulAutoConfiguration.java index 190572fb8..7fd6c7214 100644 --- a/starter/starter-configcenter/cloud-starter-consul/src/main/java/org/dromara/dynamictp/starter/cloud/consul/autoconfigure/DtpConsulAutoConfiguration.java +++ b/starter/starter-configcenter/cloud-starter-consul/src/main/java/org/dromara/dynamictp/starter/cloud/consul/autoconfigure/DtpConsulAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.cloud.consul.autoconfigure; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.core.spring.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.cloud.consul.refresher.CloudConsulRefresher; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; diff --git a/starter/starter-configcenter/cloud-starter-huawei/src/main/java/org/dromara/dynamictp/starter/cloud/huawei/autoconfigure/DtpHuaweiAutoConfiguration.java b/starter/starter-configcenter/cloud-starter-huawei/src/main/java/org/dromara/dynamictp/starter/cloud/huawei/autoconfigure/DtpHuaweiAutoConfiguration.java index c6f451953..6648272df 100644 --- a/starter/starter-configcenter/cloud-starter-huawei/src/main/java/org/dromara/dynamictp/starter/cloud/huawei/autoconfigure/DtpHuaweiAutoConfiguration.java +++ b/starter/starter-configcenter/cloud-starter-huawei/src/main/java/org/dromara/dynamictp/starter/cloud/huawei/autoconfigure/DtpHuaweiAutoConfiguration.java @@ -19,7 +19,7 @@ import com.huaweicloud.common.configration.bootstrap.ConfigBootstrapProperties; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.core.spring.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.cloud.huawei.refresher.CloudHuaweiRefresher; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; diff --git a/starter/starter-configcenter/cloud-starter-nacos/src/main/java/org/dromara/dynamictp/starter/cloud/nacos/autoconfigure/DtpCloudNacosAutoConfiguration.java b/starter/starter-configcenter/cloud-starter-nacos/src/main/java/org/dromara/dynamictp/starter/cloud/nacos/autoconfigure/DtpCloudNacosAutoConfiguration.java index 23b45a3b2..e912620e0 100644 --- a/starter/starter-configcenter/cloud-starter-nacos/src/main/java/org/dromara/dynamictp/starter/cloud/nacos/autoconfigure/DtpCloudNacosAutoConfiguration.java +++ b/starter/starter-configcenter/cloud-starter-nacos/src/main/java/org/dromara/dynamictp/starter/cloud/nacos/autoconfigure/DtpCloudNacosAutoConfiguration.java @@ -20,7 +20,7 @@ import com.alibaba.cloud.nacos.NacosConfigManager; import com.alibaba.cloud.nacos.NacosConfigProperties; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.core.spring.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.cloud.nacos.refresher.CloudNacosRefresher; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; diff --git a/starter/starter-configcenter/cloud-starter-polaris/src/main/java/org/dromara/dynamictp/starter/cloud/polaris/autoconfigure/DtpPolarisAutoConfiguration.java b/starter/starter-configcenter/cloud-starter-polaris/src/main/java/org/dromara/dynamictp/starter/cloud/polaris/autoconfigure/DtpPolarisAutoConfiguration.java index f1b3ed98e..8d29ea6aa 100644 --- a/starter/starter-configcenter/cloud-starter-polaris/src/main/java/org/dromara/dynamictp/starter/cloud/polaris/autoconfigure/DtpPolarisAutoConfiguration.java +++ b/starter/starter-configcenter/cloud-starter-polaris/src/main/java/org/dromara/dynamictp/starter/cloud/polaris/autoconfigure/DtpPolarisAutoConfiguration.java @@ -19,7 +19,7 @@ import com.tencent.cloud.polaris.config.config.PolarisConfigProperties; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.core.spring.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.cloud.polaris.refresher.CloudPolarisRefresher; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; diff --git a/starter/starter-configcenter/cloud-starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/cloud/zookeeper/autoconfigure/DtpCloudZkAutoConfiguration.java b/starter/starter-configcenter/cloud-starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/cloud/zookeeper/autoconfigure/DtpCloudZkAutoConfiguration.java index 5ced91641..611fb3134 100644 --- a/starter/starter-configcenter/cloud-starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/cloud/zookeeper/autoconfigure/DtpCloudZkAutoConfiguration.java +++ b/starter/starter-configcenter/cloud-starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/cloud/zookeeper/autoconfigure/DtpCloudZkAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.cloud.zookeeper.autoconfigure; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.core.spring.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.cloud.zookeeper.refresher.CloudZookeeperRefresher; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; diff --git a/starter/starter-configcenter/starter-apollo/src/main/java/org/dromara/dynamictp/starter/apollo/autoconfigure/DtpApolloAutoConfiguration.java b/starter/starter-configcenter/starter-apollo/src/main/java/org/dromara/dynamictp/starter/apollo/autoconfigure/DtpApolloAutoConfiguration.java index 563f4d8f4..947900db9 100644 --- a/starter/starter-configcenter/starter-apollo/src/main/java/org/dromara/dynamictp/starter/apollo/autoconfigure/DtpApolloAutoConfiguration.java +++ b/starter/starter-configcenter/starter-apollo/src/main/java/org/dromara/dynamictp/starter/apollo/autoconfigure/DtpApolloAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.apollo.autoconfigure; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.core.spring.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.apollo.refresher.ApolloRefresher; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; diff --git a/starter/starter-configcenter/starter-etcd/src/main/java/org/dromara/dynamictp/starter/etcd/autoconfigure/DtpEtcdAutoConfiguration.java b/starter/starter-configcenter/starter-etcd/src/main/java/org/dromara/dynamictp/starter/etcd/autoconfigure/DtpEtcdAutoConfiguration.java index 426a53e9f..66679e77b 100644 --- a/starter/starter-configcenter/starter-etcd/src/main/java/org/dromara/dynamictp/starter/etcd/autoconfigure/DtpEtcdAutoConfiguration.java +++ b/starter/starter-configcenter/starter-etcd/src/main/java/org/dromara/dynamictp/starter/etcd/autoconfigure/DtpEtcdAutoConfiguration.java @@ -19,7 +19,7 @@ import io.etcd.jetcd.Client; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.core.spring.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.etcd.refresher.EtcdRefresher; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; diff --git a/starter/starter-configcenter/starter-nacos/src/main/java/org/dromara/dynamictp/starter/nacos/autoconfigure/DtpNacosAutoConfiguration.java b/starter/starter-configcenter/starter-nacos/src/main/java/org/dromara/dynamictp/starter/nacos/autoconfigure/DtpNacosAutoConfiguration.java index 541c9b699..dec1e73ac 100644 --- a/starter/starter-configcenter/starter-nacos/src/main/java/org/dromara/dynamictp/starter/nacos/autoconfigure/DtpNacosAutoConfiguration.java +++ b/starter/starter-configcenter/starter-nacos/src/main/java/org/dromara/dynamictp/starter/nacos/autoconfigure/DtpNacosAutoConfiguration.java @@ -19,7 +19,7 @@ import org.dromara.dynamictp.common.properties.DtpProperties; import com.alibaba.boot.nacos.config.properties.NacosConfigProperties; -import org.dromara.dynamictp.core.spring.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.nacos.refresher.NacosRefresher; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; diff --git a/starter/starter-configcenter/starter-zookeeper/pom.xml b/starter/starter-configcenter/starter-zookeeper/pom.xml index fe28ec30f..895df1de4 100644 --- a/starter/starter-configcenter/starter-zookeeper/pom.xml +++ b/starter/starter-configcenter/starter-zookeeper/pom.xml @@ -27,5 +27,11 @@ + + org.dromara.dynamictp + dynamic-tp-spring + 1.1.8-beta + compile + \ No newline at end of file diff --git a/starter/starter-configcenter/starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/zookeeper/autoconfigure/DtpZkAutoConfiguration.java b/starter/starter-configcenter/starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/zookeeper/autoconfigure/DtpZkAutoConfiguration.java index b5752fc4b..b10796634 100644 --- a/starter/starter-configcenter/starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/zookeeper/autoconfigure/DtpZkAutoConfiguration.java +++ b/starter/starter-configcenter/starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/zookeeper/autoconfigure/DtpZkAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.zookeeper.autoconfigure; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.core.spring.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.zookeeper.refresher.ZookeeperRefresher; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; diff --git a/test/test-configcenter/src/test/java/org/dromara/dynamictp/test/configcenter/DtpBaseTest.java b/test/test-configcenter/src/test/java/org/dromara/dynamictp/test/configcenter/DtpBaseTest.java index 7b13088f4..8d10e8a85 100644 --- a/test/test-configcenter/src/test/java/org/dromara/dynamictp/test/configcenter/DtpBaseTest.java +++ b/test/test-configcenter/src/test/java/org/dromara/dynamictp/test/configcenter/DtpBaseTest.java @@ -17,8 +17,7 @@ package org.dromara.dynamictp.test.configcenter; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; -import org.dromara.dynamictp.core.spring.YamlPropertySourceFactory; +import org.dromara.dynamictp.spring.ex.YamlPropertySourceFactory; import org.junit.jupiter.api.BeforeAll; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; @@ -31,7 +30,6 @@ import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.ConfigurableEnvironment; -import org.springframework.core.env.Environment; /** * DtpBaseTest related @@ -39,7 +37,6 @@ * @author yanhom * @since 1.1.7 */ -@EnableDynamicTp @EnableAutoConfiguration @SpringBootTest(classes = {DtpBaseTest.class}) @PropertySource(value = "classpath:/dynamic-tp-demo-dtp-dev.yml", factory = YamlPropertySourceFactory.class) diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/AbstractDtpNotifierTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/AbstractDtpNotifierTest.java index 4485603d9..46d4e4bce 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/AbstractDtpNotifierTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/AbstractDtpNotifierTest.java @@ -18,13 +18,11 @@ package org.dromara.dynamictp.test.core.notify; import com.google.common.collect.Lists; -import org.dromara.dynamictp.common.spring.ApplicationContextHolder; import org.dromara.dynamictp.common.em.NotifyItemEnum; import org.dromara.dynamictp.common.entity.NotifyItem; import org.dromara.dynamictp.common.entity.NotifyPlatform; import org.dromara.dynamictp.common.entity.ServiceInstance; import org.dromara.dynamictp.common.entity.TpMainFields; -import org.dromara.dynamictp.common.util.CommonUtil; import org.dromara.dynamictp.core.notifier.AbstractDtpNotifier; import org.dromara.dynamictp.core.notifier.DtpDingNotifier; import org.dromara.dynamictp.common.notifier.Notifier; diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/Config.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/Config.java index 1e2be72d3..40a7aa31e 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/Config.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/Config.java @@ -17,7 +17,6 @@ package org.dromara.dynamictp.test.core.spring; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; import org.dromara.dynamictp.core.support.DynamicTp; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; @@ -34,7 +33,6 @@ * Date: 2023/4/22 * Time: 14:27 */ -@EnableDynamicTp @Configuration public class Config { /** diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpBaseBeanConfigurationTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpBaseBeanConfigurationTest.java index 48c205251..aa6a17448 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpBaseBeanConfigurationTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpBaseBeanConfigurationTest.java @@ -17,14 +17,12 @@ package org.dromara.dynamictp.test.core.spring; -import org.dromara.dynamictp.common.spring.ApplicationContextHolder; import org.dromara.dynamictp.core.DtpRegistry; import org.dromara.dynamictp.core.monitor.DtpMonitor; -import org.dromara.dynamictp.core.spring.DtpBaseBeanConfiguration; -import org.dromara.dynamictp.core.spring.DtpPostProcessor; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; -import org.dromara.dynamictp.core.spring.YamlPropertySourceFactory; import org.dromara.dynamictp.core.support.DtpBannerPrinter; +import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.ex.DtpPostProcessor; +import org.dromara.dynamictp.spring.ex.YamlPropertySourceFactory; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.NoSuchBeanDefinitionException; @@ -44,7 +42,6 @@ public class DtpBaseBeanConfigurationTest { @SpringBootTest(classes = DtpBaseBeanConfigurationTest.class) - @EnableDynamicTp public static class EnableDynamicTpAnnotationTest { @Autowired diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpPostProcessorTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpPostProcessorTest.java index eebf2c16d..46e04ff20 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpPostProcessorTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpPostProcessorTest.java @@ -18,9 +18,8 @@ package org.dromara.dynamictp.test.core.spring; import org.dromara.dynamictp.core.DtpRegistry; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; -import org.dromara.dynamictp.core.spring.YamlPropertySourceFactory; import org.dromara.dynamictp.core.support.ThreadPoolExecutorProxy; +import org.dromara.dynamictp.spring.ex.YamlPropertySourceFactory; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -37,7 +36,6 @@ /** * @author KamTo Hung */ -@EnableDynamicTp @EnableAutoConfiguration @PropertySource(value = "classpath:/postprocessor-dtp-dev.yml", factory = YamlPropertySourceFactory.class) @ComponentScan(basePackages = "org.dromara.dynamictp.test.core.spring") diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/PropertiesBinderTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/PropertiesBinderTest.java index a8764de75..56f6d8f05 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/PropertiesBinderTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/PropertiesBinderTest.java @@ -20,8 +20,8 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.core.spring.YamlPropertySourceFactory; import org.dromara.dynamictp.core.support.BinderHelper; +import org.dromara.dynamictp.spring.ex.YamlPropertySourceFactory; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/DtpExecutorTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/DtpExecutorTest.java index 01e49aa6c..12630ec1f 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/DtpExecutorTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/DtpExecutorTest.java @@ -20,9 +20,8 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.core.DtpRegistry; import org.dromara.dynamictp.core.notifier.manager.AlarmManager; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; -import org.dromara.dynamictp.core.spring.YamlPropertySourceFactory; import org.dromara.dynamictp.core.support.ExecutorWrapper; +import org.dromara.dynamictp.spring.ex.YamlPropertySourceFactory; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.RepeatedTest; import org.junit.jupiter.api.extension.ExtendWith; @@ -47,7 +46,6 @@ * @since 1.1.0 */ @Slf4j -@EnableDynamicTp @EnableAutoConfiguration @ExtendWith(SpringExtension.class) @SpringBootTest(classes = DtpExecutorTest.class) diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/EagerDtpExecutorTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/EagerDtpExecutorTest.java index 0e12a235f..28f5b705b 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/EagerDtpExecutorTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/EagerDtpExecutorTest.java @@ -19,8 +19,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.core.DtpRegistry; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; -import org.dromara.dynamictp.core.spring.YamlPropertySourceFactory; +import org.dromara.dynamictp.spring.ex.YamlPropertySourceFactory; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; @@ -38,7 +37,6 @@ * @since 1.1.0 */ @Slf4j -@EnableDynamicTp @EnableAutoConfiguration @ExtendWith(SpringExtension.class) @SpringBootTest(classes = EagerDtpExecutorTest.class) diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/OrderedDtpExecutorTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/OrderedDtpExecutorTest.java index 5443e3fb4..4efa51c2f 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/OrderedDtpExecutorTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/OrderedDtpExecutorTest.java @@ -18,8 +18,6 @@ package org.dromara.dynamictp.test.core.thread; import com.alibaba.ttl.TransmittableThreadLocal; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; -import org.dromara.dynamictp.core.spring.YamlPropertySourceFactory; import org.dromara.dynamictp.core.support.task.Ordered; import org.dromara.dynamictp.core.support.task.callable.OrderedCallable; import org.dromara.dynamictp.core.executor.OrderedDtpExecutor; @@ -27,6 +25,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.extern.slf4j.Slf4j; +import org.dromara.dynamictp.spring.ex.YamlPropertySourceFactory; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.slf4j.MDC; @@ -46,7 +45,6 @@ @PropertySource(value = "classpath:/dynamic-tp-nacos-demo-dtp-dev.yml", factory = YamlPropertySourceFactory.class) @SpringBootTest(classes = OrderedDtpExecutorTest.class) @ExtendWith(SpringExtension.class) -@EnableDynamicTp @EnableAutoConfiguration class OrderedDtpExecutorTest { diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/PriorityDtpExecutorTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/PriorityDtpExecutorTest.java index 52d4edf65..10603fb62 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/PriorityDtpExecutorTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/PriorityDtpExecutorTest.java @@ -19,8 +19,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.core.executor.priority.PriorityDtpExecutor; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; -import org.dromara.dynamictp.core.spring.YamlPropertySourceFactory; +import org.dromara.dynamictp.spring.ex.YamlPropertySourceFactory; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; @@ -41,7 +40,6 @@ * @author KamTo Hung */ @Slf4j -@EnableDynamicTp @EnableAutoConfiguration @ExtendWith(SpringExtension.class) @SpringBootTest(classes = PriorityDtpExecutorTest.class) diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/ScheduledDtpExecutorTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/ScheduledDtpExecutorTest.java index 3839203b0..9af673457 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/ScheduledDtpExecutorTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/ScheduledDtpExecutorTest.java @@ -18,9 +18,8 @@ package org.dromara.dynamictp.test.core.thread; import org.dromara.dynamictp.core.DtpRegistry; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; -import org.dromara.dynamictp.core.spring.YamlPropertySourceFactory; import org.dromara.dynamictp.core.executor.ScheduledDtpExecutor; +import org.dromara.dynamictp.spring.ex.YamlPropertySourceFactory; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; @@ -36,7 +35,6 @@ @SpringBootTest(classes = ScheduledDtpExecutorTest.class) //让JUnit运行Spring的测试环境,获得Spring环境的上下文的支持 @ExtendWith(SpringExtension.class) -@EnableDynamicTp @EnableAutoConfiguration class ScheduledDtpExecutorTest { diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/proxy/ThreadPoolExecutorProxyTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/proxy/ThreadPoolExecutorProxyTest.java index 2a3d1a88f..46f560aa8 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/proxy/ThreadPoolExecutorProxyTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/proxy/ThreadPoolExecutorProxyTest.java @@ -21,7 +21,6 @@ import org.dromara.dynamictp.common.entity.TpExecutorProps; import org.dromara.dynamictp.core.aware.AwareManager; import org.dromara.dynamictp.core.executor.NamedThreadFactory; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; import org.dromara.dynamictp.core.support.ExecutorWrapper; import org.dromara.dynamictp.core.support.ThreadPoolExecutorProxy; import org.junit.jupiter.api.Assertions; @@ -38,7 +37,6 @@ * @date 2023年09月15日 09:48 */ @Slf4j -@EnableDynamicTp @EnableAutoConfiguration @ExtendWith(SpringExtension.class) @SpringBootTest(classes = ThreadPoolExecutorProxyTest.class) From 63bef8df0f6bed3a79cfe10e115458cdc2a58734 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Fri, 5 Jul 2024 13:35:38 +0800 Subject: [PATCH 003/101] =?UTF-8?q?refactor=EF=BC=9ADynamicTp=E8=BF=81?= =?UTF-8?q?=E7=A7=BBspring=E6=A8=A1=E5=9D=97=E4=B8=94=E4=BD=BF=E7=94=A8spi?= =?UTF-8?q?=E6=9C=BA=E5=88=B6=E8=A7=A3=E5=86=B3=E4=BE=9D=E8=B5=96=E5=BE=AA?= =?UTF-8?q?=E7=8E=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/dynamictp/core/notifier/manager/NotifyHelper.java | 1 - 1 file changed, 1 deletion(-) diff --git a/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyHelper.java b/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyHelper.java index 62a3bf394..e3d927d0b 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyHelper.java +++ b/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyHelper.java @@ -29,7 +29,6 @@ import org.dromara.dynamictp.common.entity.NotifyPlatform; import org.dromara.dynamictp.common.entity.TpExecutorProps; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.common.spring.ApplicationContextHolder; import org.dromara.dynamictp.common.spring.BeanProviderHelper; import org.dromara.dynamictp.common.util.StreamUtil; import org.dromara.dynamictp.core.executor.DtpExecutor; From fbb748745ac40e6f81015ece0a3be984efdc4166 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Mon, 8 Jul 2024 15:22:29 +0800 Subject: [PATCH 004/101] =?UTF-8?q?refactor=EF=BC=9ADynamicTp=E8=BF=81?= =?UTF-8?q?=E7=A7=BBspring=E6=A8=A1=E5=9D=97=E4=B8=94=E4=BD=BF=E7=94=A8spi?= =?UTF-8?q?=E6=9C=BA=E5=88=B6=E8=A7=A3=E5=86=B3=E4=BE=9D=E8=B5=96=E5=BE=AA?= =?UTF-8?q?=E7=8E=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/common/AbstractDtpAdapter.java | 1 - .../adapter/common/DtpAdapterListener.java | 1 - .../dubbo/alibaba/AlibabaDubboDtpAdapter.java | 1 - .../dubbo/apache/ApacheDubboDtpAdapter.java | 1 - .../DtpMetricsPublisherThreadPool.java | 1 - .../adapter/hystrix/HystrixDtpAdapter.java | 1 - .../adapter/motan/MotanDtpAdapter.java | 1 - adapter/adapter-okhttp3/pom.xml | 7 ++ .../adapter/okhttp3/Okhttp3DtpAdapter.java | 5 +- .../adapter/rabbitmq/RabbitMqDtpAdapter.java | 1 - .../rocketmq/AliyunOnsRocketMqAdapter.java | 1 - .../common/spring/BeanProviderHelper.java | 25 ------- .../{BeanProvider.java => ContextHolder.java} | 4 +- .../dynamictp/common/spring/Event.java | 5 ++ .../common/spring/EventListener.java | 6 ++ .../common/spring/EventPublisher.java | 25 +++++++ .../notifier/manager/NotifyFilterBuilder.java | 1 - .../core/notifier/manager/NotifyHelper.java | 1 - .../core/spring/ContextHolderHelper.java | 45 ++++++++++++ .../core/spring/SimpleContextHolder.java | 57 +++++++++++++++ .../core/support/ThreadPoolStatProvider.java | 1 - ...mara.dynamictp.common.spring.ContextHolder | 1 + .../spring/ex/ApplicationContextHolder.java | 71 ------------------- .../spring/ex/SpringBeanProvider.java | 29 -------- .../spring/ex/SpringContextHolder.java | 58 +++++++++++++++ ...omara.dynamictp.common.spring.BeanProvider | 1 - ...mara.dynamictp.common.spring.ContextHolder | 1 + .../BrpcTpAutoConfiguration.java | 1 + .../AbstractWebServerDtpAdapter.java | 5 +- .../starter/common/monitor/DtpEndpoint.java | 1 - .../core/notify/AbstractDtpNotifierTest.java | 10 +-- .../spring/DtpBaseBeanConfigurationTest.java | 5 +- 32 files changed, 223 insertions(+), 151 deletions(-) delete mode 100644 common/src/main/java/org/dromara/dynamictp/common/spring/BeanProviderHelper.java rename common/src/main/java/org/dromara/dynamictp/common/spring/{BeanProvider.java => ContextHolder.java} (57%) create mode 100644 common/src/main/java/org/dromara/dynamictp/common/spring/Event.java create mode 100644 common/src/main/java/org/dromara/dynamictp/common/spring/EventListener.java create mode 100644 common/src/main/java/org/dromara/dynamictp/common/spring/EventPublisher.java create mode 100644 core/src/main/java/org/dromara/dynamictp/core/spring/ContextHolderHelper.java create mode 100644 core/src/main/java/org/dromara/dynamictp/core/spring/SimpleContextHolder.java create mode 100644 core/src/main/resources/META-INF/services/org.dromara.dynamictp.common.spring.ContextHolder delete mode 100644 spring/src/main/java/org/dromara/dynamictp/spring/ex/ApplicationContextHolder.java delete mode 100644 spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringBeanProvider.java create mode 100644 spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringContextHolder.java delete mode 100644 spring/src/main/resources/META-INF/services/org.dromara.dynamictp.common.spring.BeanProvider create mode 100644 spring/src/main/resources/META-INF/services/org.dromara.dynamictp.common.spring.ContextHolder diff --git a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java index 99bad77c9..da6e25d8c 100644 --- a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java +++ b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java @@ -42,7 +42,6 @@ import org.dromara.dynamictp.core.support.ThreadPoolExecutorProxy; import org.dromara.dynamictp.core.support.task.wrapper.TaskWrapper; import org.dromara.dynamictp.core.support.task.wrapper.TaskWrappers; -import org.dromara.dynamictp.spring.ex.ApplicationContextHolder; import org.dromara.dynamictp.spring.ex.OnceApplicationContextEventListener; import org.springframework.context.event.ContextRefreshedEvent; diff --git a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java index 7acb04260..05f879344 100644 --- a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java +++ b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java @@ -25,7 +25,6 @@ import org.dromara.dynamictp.core.notifier.manager.AlarmManager; import lombok.extern.slf4j.Slf4j; import lombok.val; -import org.dromara.dynamictp.spring.ex.ApplicationContextHolder; import org.springframework.context.ApplicationEvent; import org.springframework.context.event.GenericApplicationListener; import org.springframework.core.ResolvableType; diff --git a/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/alibaba/AlibabaDubboDtpAdapter.java b/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/alibaba/AlibabaDubboDtpAdapter.java index bdb1a527a..c9021281e 100644 --- a/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/alibaba/AlibabaDubboDtpAdapter.java +++ b/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/alibaba/AlibabaDubboDtpAdapter.java @@ -25,7 +25,6 @@ import org.dromara.dynamictp.adapter.common.AbstractDtpAdapter; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.jvmti.JVMTI; -import org.dromara.dynamictp.spring.ex.ApplicationContextHolder; import org.springframework.beans.factory.InitializingBean; import java.util.concurrent.ExecutorService; diff --git a/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/apache/ApacheDubboDtpAdapter.java b/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/apache/ApacheDubboDtpAdapter.java index a71ff493a..8d347c660 100644 --- a/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/apache/ApacheDubboDtpAdapter.java +++ b/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/apache/ApacheDubboDtpAdapter.java @@ -36,7 +36,6 @@ import org.dromara.dynamictp.common.util.ReflectionUtil; import org.dromara.dynamictp.core.support.ThreadPoolExecutorProxy; import org.dromara.dynamictp.jvmti.JVMTI; -import org.dromara.dynamictp.spring.ex.ApplicationContextHolder; import org.springframework.context.ApplicationEvent; import java.util.Map; diff --git a/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/DtpMetricsPublisherThreadPool.java b/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/DtpMetricsPublisherThreadPool.java index 9c56e33cd..c9b6bf028 100644 --- a/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/DtpMetricsPublisherThreadPool.java +++ b/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/DtpMetricsPublisherThreadPool.java @@ -26,7 +26,6 @@ import lombok.val; import org.dromara.dynamictp.common.entity.TpExecutorProps; import org.dromara.dynamictp.common.util.ReflectionUtil; -import org.dromara.dynamictp.spring.ex.ApplicationContextHolder; import java.util.Objects; import java.util.concurrent.TimeUnit; diff --git a/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/HystrixDtpAdapter.java b/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/HystrixDtpAdapter.java index 5ea5169b9..fab1dc4d7 100644 --- a/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/HystrixDtpAdapter.java +++ b/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/HystrixDtpAdapter.java @@ -33,7 +33,6 @@ import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.common.util.StreamUtil; import org.dromara.dynamictp.core.support.ExecutorWrapper; -import org.dromara.dynamictp.spring.ex.ApplicationContextHolder; import java.util.List; import java.util.Map; diff --git a/adapter/adapter-motan/src/main/java/org/dromara/dynamictp/adapter/motan/MotanDtpAdapter.java b/adapter/adapter-motan/src/main/java/org/dromara/dynamictp/adapter/motan/MotanDtpAdapter.java index 26c58deae..2a70b41ad 100644 --- a/adapter/adapter-motan/src/main/java/org/dromara/dynamictp/adapter/motan/MotanDtpAdapter.java +++ b/adapter/adapter-motan/src/main/java/org/dromara/dynamictp/adapter/motan/MotanDtpAdapter.java @@ -30,7 +30,6 @@ import org.dromara.dynamictp.adapter.common.AbstractDtpAdapter; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.common.util.ReflectionUtil; -import org.dromara.dynamictp.spring.ex.ApplicationContextHolder; import java.util.List; import java.util.Objects; diff --git a/adapter/adapter-okhttp3/pom.xml b/adapter/adapter-okhttp3/pom.xml index a64f2603d..2e594cac0 100644 --- a/adapter/adapter-okhttp3/pom.xml +++ b/adapter/adapter-okhttp3/pom.xml @@ -21,6 +21,13 @@ okhttp true + + + org.dromara.dynamictp + dynamic-tp-spring + 1.1.8-beta + compile + diff --git a/adapter/adapter-okhttp3/src/main/java/org/dromara/dynamictp/adapter/okhttp3/Okhttp3DtpAdapter.java b/adapter/adapter-okhttp3/src/main/java/org/dromara/dynamictp/adapter/okhttp3/Okhttp3DtpAdapter.java index 4fca3e7e7..1e3db3bd6 100644 --- a/adapter/adapter-okhttp3/src/main/java/org/dromara/dynamictp/adapter/okhttp3/Okhttp3DtpAdapter.java +++ b/adapter/adapter-okhttp3/src/main/java/org/dromara/dynamictp/adapter/okhttp3/Okhttp3DtpAdapter.java @@ -23,8 +23,7 @@ import org.apache.commons.collections4.MapUtils; import org.dromara.dynamictp.adapter.common.AbstractDtpAdapter; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.spring.ex.ApplicationContextHolder; - +import org.dromara.dynamictp.spring.ex.SpringContextHolder; import java.util.concurrent.ThreadPoolExecutor; /** @@ -53,7 +52,7 @@ protected String getTpPrefix() { @Override protected void initialize() { super.initialize(); - val beans = ApplicationContextHolder.getBeansOfType(OkHttpClient.class); + val beans = SpringContextHolder.getInstance().getBeansOfType(OkHttpClient.class); if (MapUtils.isEmpty(beans)) { log.warn("Cannot find beans of type OkHttpClient."); return; diff --git a/adapter/adapter-rabbitmq/src/main/java/org/dromara/dynamictp/adapter/rabbitmq/RabbitMqDtpAdapter.java b/adapter/adapter-rabbitmq/src/main/java/org/dromara/dynamictp/adapter/rabbitmq/RabbitMqDtpAdapter.java index 80bcf3f27..d7f4056a6 100644 --- a/adapter/adapter-rabbitmq/src/main/java/org/dromara/dynamictp/adapter/rabbitmq/RabbitMqDtpAdapter.java +++ b/adapter/adapter-rabbitmq/src/main/java/org/dromara/dynamictp/adapter/rabbitmq/RabbitMqDtpAdapter.java @@ -23,7 +23,6 @@ import org.dromara.dynamictp.adapter.common.AbstractDtpAdapter; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.common.util.ReflectionUtil; -import org.dromara.dynamictp.spring.ex.ApplicationContextHolder; import org.springframework.amqp.rabbit.connection.AbstractConnectionFactory; import java.util.Objects; diff --git a/adapter/adapter-rocketmq/src/main/java/org/dromara/dynamictp/adapter/rocketmq/AliyunOnsRocketMqAdapter.java b/adapter/adapter-rocketmq/src/main/java/org/dromara/dynamictp/adapter/rocketmq/AliyunOnsRocketMqAdapter.java index 82dd5b3b4..e64e0cbd5 100644 --- a/adapter/adapter-rocketmq/src/main/java/org/dromara/dynamictp/adapter/rocketmq/AliyunOnsRocketMqAdapter.java +++ b/adapter/adapter-rocketmq/src/main/java/org/dromara/dynamictp/adapter/rocketmq/AliyunOnsRocketMqAdapter.java @@ -29,7 +29,6 @@ import org.dromara.dynamictp.adapter.common.AbstractDtpAdapter; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.common.util.ReflectionUtil; -import org.dromara.dynamictp.spring.ex.ApplicationContextHolder; import java.util.Objects; import java.util.concurrent.ThreadPoolExecutor; diff --git a/common/src/main/java/org/dromara/dynamictp/common/spring/BeanProviderHelper.java b/common/src/main/java/org/dromara/dynamictp/common/spring/BeanProviderHelper.java deleted file mode 100644 index 0daa8d1a1..000000000 --- a/common/src/main/java/org/dromara/dynamictp/common/spring/BeanProviderHelper.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.dromara.dynamictp.common.spring; - -import org.dromara.dynamictp.common.util.ExtensionServiceLoader; - -import java.util.Map; - -public class BeanProviderHelper { - - private static BeanProvider provider; - - static { - provider = ExtensionServiceLoader.getFirst(BeanProvider.class); - if (provider == null) { - throw new IllegalStateException("No BeanProvider implementation found"); - } - } - - public static T getBean(Class clazz) { - return provider.getBean(clazz); - } - - public static Map getBeansOfType(Class clazz) { - return provider.getBeansOfType(clazz); - } -} diff --git a/common/src/main/java/org/dromara/dynamictp/common/spring/BeanProvider.java b/common/src/main/java/org/dromara/dynamictp/common/spring/ContextHolder.java similarity index 57% rename from common/src/main/java/org/dromara/dynamictp/common/spring/BeanProvider.java rename to common/src/main/java/org/dromara/dynamictp/common/spring/ContextHolder.java index 1814c0167..843e8ce82 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/spring/BeanProvider.java +++ b/common/src/main/java/org/dromara/dynamictp/common/spring/ContextHolder.java @@ -2,7 +2,9 @@ import java.util.Map; -public interface BeanProvider { +public interface ContextHolder { T getBean(Class clazz); + T getBean(String name, Class clazz); Map getBeansOfType(Class clazz); + void publishEvent(Object event); } \ No newline at end of file diff --git a/common/src/main/java/org/dromara/dynamictp/common/spring/Event.java b/common/src/main/java/org/dromara/dynamictp/common/spring/Event.java new file mode 100644 index 000000000..fa56283b9 --- /dev/null +++ b/common/src/main/java/org/dromara/dynamictp/common/spring/Event.java @@ -0,0 +1,5 @@ +package org.dromara.dynamictp.common.spring; + +public class Event { + // 通用事件类,可以扩展添加更多信息 +} \ No newline at end of file diff --git a/common/src/main/java/org/dromara/dynamictp/common/spring/EventListener.java b/common/src/main/java/org/dromara/dynamictp/common/spring/EventListener.java new file mode 100644 index 000000000..0667d694f --- /dev/null +++ b/common/src/main/java/org/dromara/dynamictp/common/spring/EventListener.java @@ -0,0 +1,6 @@ +package org.dromara.dynamictp.common.spring; + + +public interface EventListener { + void onEvent(T event); +} \ No newline at end of file diff --git a/common/src/main/java/org/dromara/dynamictp/common/spring/EventPublisher.java b/common/src/main/java/org/dromara/dynamictp/common/spring/EventPublisher.java new file mode 100644 index 000000000..92ab78dc5 --- /dev/null +++ b/common/src/main/java/org/dromara/dynamictp/common/spring/EventPublisher.java @@ -0,0 +1,25 @@ +package org.dromara.dynamictp.common.spring; + +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; + +public class EventPublisher { + + private final List> listeners = new CopyOnWriteArrayList<>(); + + public void publish(T event) { + for (EventListener listener : listeners) { + if (listener.getClass().isAssignableFrom(event.getClass())) { + ((EventListener) listener).onEvent(event); + } + } + } + + public void registerListener(EventListener listener) { + listeners.add(listener); + } + + public void unregisterListener(EventListener listener) { + listeners.remove(listener); + } +} \ No newline at end of file diff --git a/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyFilterBuilder.java b/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyFilterBuilder.java index 9790a405c..194fa665b 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyFilterBuilder.java +++ b/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyFilterBuilder.java @@ -21,7 +21,6 @@ import org.dromara.dynamictp.common.pattern.filter.Filter; import org.dromara.dynamictp.common.pattern.filter.InvokerChain; import org.dromara.dynamictp.common.pattern.filter.InvokerChainFactory; -import org.dromara.dynamictp.common.spring.BeanProviderHelper; import org.dromara.dynamictp.core.notifier.context.BaseNotifyCtx; import org.dromara.dynamictp.core.notifier.chain.filter.AlarmBaseFilter; import org.dromara.dynamictp.core.notifier.chain.filter.NoticeBaseFilter; diff --git a/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyHelper.java b/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyHelper.java index e3d927d0b..8afebc288 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyHelper.java +++ b/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyHelper.java @@ -29,7 +29,6 @@ import org.dromara.dynamictp.common.entity.NotifyPlatform; import org.dromara.dynamictp.common.entity.TpExecutorProps; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.common.spring.BeanProviderHelper; import org.dromara.dynamictp.common.util.StreamUtil; import org.dromara.dynamictp.core.executor.DtpExecutor; import org.dromara.dynamictp.core.support.ExecutorWrapper; diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/ContextHolderHelper.java b/core/src/main/java/org/dromara/dynamictp/core/spring/ContextHolderHelper.java new file mode 100644 index 000000000..cea51fbcd --- /dev/null +++ b/core/src/main/java/org/dromara/dynamictp/core/spring/ContextHolderHelper.java @@ -0,0 +1,45 @@ +package org.dromara.dynamictp.core.spring; + +import org.dromara.dynamictp.common.spring.ContextHolder; +import org.dromara.dynamictp.common.util.ExtensionServiceLoader; + +import java.util.Map; +import java.util.ServiceLoader; + +public class ContextHolderHelper { + + private static final ContextHolder CONTEXT_HOLDER; + + static { + ContextHolder holder = null; + ServiceLoader loader = ServiceLoader.load(ContextHolder.class); + for (ContextHolder contextHolder : loader) { + if (contextHolder.getClass().getName().equals("org.dromara.dynamictp.spring.ex.SpringContextHolder")) { + holder = contextHolder; + break; + } else { + holder = contextHolder; + } + } + if (holder == null) { + throw new IllegalStateException("No ContextHolder implementation found"); + } + CONTEXT_HOLDER = holder; + } + + public static T getBean(Class clazz) { + return CONTEXT_HOLDER.getBean(clazz); + } + + public static T getBean(String name, Class clazz) { + return CONTEXT_HOLDER.getBean(name, clazz); + } + + public static Map getBeansOfType(Class clazz) { + return CONTEXT_HOLDER.getBeansOfType(clazz); + } + + public static void publishEvent(Object event) { + CONTEXT_HOLDER.publishEvent(event); + } +} \ No newline at end of file diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/SimpleContextHolder.java b/core/src/main/java/org/dromara/dynamictp/core/spring/SimpleContextHolder.java new file mode 100644 index 000000000..1178842c3 --- /dev/null +++ b/core/src/main/java/org/dromara/dynamictp/core/spring/SimpleContextHolder.java @@ -0,0 +1,57 @@ +package org.dromara.dynamictp.core.spring; + + +import org.dromara.dynamictp.common.spring.ContextHolder; +import org.dromara.dynamictp.common.spring.Event; +import org.dromara.dynamictp.common.spring.EventListener; +import org.dromara.dynamictp.common.spring.EventPublisher; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.stream.Collectors; + +public class SimpleContextHolder implements ContextHolder { + + private final Map, Object> beans = new ConcurrentHashMap<>(); + private final EventPublisher eventPublisher = new EventPublisher(); + + @Override + public T getBean(Class clazz) { + return clazz.cast(beans.get(clazz)); + } + + @Override + public T getBean(String name, Class clazz) { + // 简单实现:假设name是类的全限定名 + try { + Class beanClass = Class.forName(name); + return clazz.cast(beans.get(beanClass)); + } catch (ClassNotFoundException e) { + throw new RuntimeException("Bean not found: " + name, e); + } + } + + @Override + public Map getBeansOfType(Class clazz) { + return beans.entrySet().stream() + .filter(entry -> clazz.isAssignableFrom(entry.getKey())) + .collect(Collectors.toMap( + entry -> entry.getKey().getName(), + entry -> clazz.cast(entry.getValue()))); + } + + @Override + public void publishEvent(Object event) { + if (event instanceof Event) { + eventPublisher.publish((Event) event); + } + } + + public void registerBean(Class clazz, T bean) { + beans.put(clazz, bean); + } + + public void registerListener(EventListener listener) { + eventPublisher.registerListener(listener); + } +} \ No newline at end of file diff --git a/core/src/main/java/org/dromara/dynamictp/core/support/ThreadPoolStatProvider.java b/core/src/main/java/org/dromara/dynamictp/core/support/ThreadPoolStatProvider.java index 8656ae1c6..69ae93b26 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/support/ThreadPoolStatProvider.java +++ b/core/src/main/java/org/dromara/dynamictp/core/support/ThreadPoolStatProvider.java @@ -18,7 +18,6 @@ package org.dromara.dynamictp.core.support; import lombok.val; -import org.dromara.dynamictp.common.spring.BeanProviderHelper; import org.dromara.dynamictp.common.timer.HashedWheelTimer; import org.dromara.dynamictp.common.timer.Timeout; import org.dromara.dynamictp.core.executor.DtpExecutor; diff --git a/core/src/main/resources/META-INF/services/org.dromara.dynamictp.common.spring.ContextHolder b/core/src/main/resources/META-INF/services/org.dromara.dynamictp.common.spring.ContextHolder new file mode 100644 index 000000000..c94a5c35d --- /dev/null +++ b/core/src/main/resources/META-INF/services/org.dromara.dynamictp.common.spring.ContextHolder @@ -0,0 +1 @@ +org.dromara.dynamictp.core.spring.SimpleContextHolder \ No newline at end of file diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/ex/ApplicationContextHolder.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/ApplicationContextHolder.java deleted file mode 100644 index 264df6539..000000000 --- a/spring/src/main/java/org/dromara/dynamictp/spring/ex/ApplicationContextHolder.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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 org.dromara.dynamictp.spring.ex; - -import org.springframework.beans.BeansException; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; -import org.springframework.context.ApplicationEvent; -import org.springframework.core.env.Environment; - -import java.util.Map; -import java.util.Objects; - -/** - * ApplicationContextHolder related - * - * @author yanhom - * @since 1.0.0 - **/ -public class ApplicationContextHolder implements ApplicationContextAware { - - private static ApplicationContext context; - - @Override - public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { - context = applicationContext; - } - - public static T getBean(Class clazz) { - return getInstance().getBean(clazz); - } - - public static T getBean(String name, Class clazz) { - return getInstance().getBean(name, clazz); - } - - public static Map getBeansOfType(Class clazz) { - return getInstance().getBeansOfType(clazz); - } - - public static ApplicationContext getInstance() { - if (Objects.isNull(context)) { - throw new NullPointerException("ApplicationContext is null, please check if the spring container is started."); - } - return context; - } - - public static Environment getEnvironment() { - return getInstance().getEnvironment(); - } - - public static void publishEvent(ApplicationEvent event) { - getInstance().publishEvent(event); - } - -} diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringBeanProvider.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringBeanProvider.java deleted file mode 100644 index 39deee26e..000000000 --- a/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringBeanProvider.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.dromara.dynamictp.spring.ex; - -import org.dromara.dynamictp.common.spring.BeanProvider; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; -import org.springframework.stereotype.Component; - -import java.util.Map; - -@Component -public class SpringBeanProvider implements BeanProvider, ApplicationContextAware { - - private static ApplicationContext context; - - @Override - public void setApplicationContext(ApplicationContext applicationContext) { - context = applicationContext; - } - - @Override - public T getBean(Class clazz) { - return context.getBean(clazz); - } - - @Override - public Map getBeansOfType(Class clazz) { - return context.getBeansOfType(clazz); - } -} diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringContextHolder.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringContextHolder.java new file mode 100644 index 000000000..953265d98 --- /dev/null +++ b/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringContextHolder.java @@ -0,0 +1,58 @@ +package org.dromara.dynamictp.spring.ex; + + +import org.dromara.dynamictp.common.spring.ContextHolder; +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.context.ApplicationEvent; +import org.springframework.core.env.Environment; +import org.springframework.stereotype.Component; + +import java.util.Map; +import java.util.Objects; + +@Component +public class SpringContextHolder implements ContextHolder, ApplicationContextAware { + + private static ApplicationContext context; + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + context = applicationContext; + } + + @Override + public T getBean(Class clazz) { + return getInstance().getBean(clazz); + } + + @Override + public T getBean(String name, Class clazz) { + return getInstance().getBean(name, clazz); + } + + @Override + public Map getBeansOfType(Class clazz) { + return getInstance().getBeansOfType(clazz); + } + + + public static ApplicationContext getInstance() { + if (Objects.isNull(context)) { + throw new NullPointerException("ApplicationContext is null, please check if the spring container is started."); + } + return context; + } + + public static Environment getEnvironment() { + return getInstance().getEnvironment(); + } + + @Override + public void publishEvent(Object event) { + if (event instanceof ApplicationEvent) { + getInstance().publishEvent((ApplicationEvent) event); + } + } +} diff --git a/spring/src/main/resources/META-INF/services/org.dromara.dynamictp.common.spring.BeanProvider b/spring/src/main/resources/META-INF/services/org.dromara.dynamictp.common.spring.BeanProvider deleted file mode 100644 index 90d6091a7..000000000 --- a/spring/src/main/resources/META-INF/services/org.dromara.dynamictp.common.spring.BeanProvider +++ /dev/null @@ -1 +0,0 @@ -org.dromara.dynamictp.spring.ex.SpringBeanProvider diff --git a/spring/src/main/resources/META-INF/services/org.dromara.dynamictp.common.spring.ContextHolder b/spring/src/main/resources/META-INF/services/org.dromara.dynamictp.common.spring.ContextHolder new file mode 100644 index 000000000..1af5ca70a --- /dev/null +++ b/spring/src/main/resources/META-INF/services/org.dromara.dynamictp.common.spring.ContextHolder @@ -0,0 +1 @@ +org.dromara.dynamictp.spring.ex.SpringContextHolder diff --git a/starter/starter-adapter/starter-adapter-brpc/src/main/java/org/dromara/dynamictp/starter/adapter/brpc/autoconfigure/BrpcTpAutoConfiguration.java b/starter/starter-adapter/starter-adapter-brpc/src/main/java/org/dromara/dynamictp/starter/adapter/brpc/autoconfigure/BrpcTpAutoConfiguration.java index db75e00be..b49b3ab4a 100644 --- a/starter/starter-adapter/starter-adapter-brpc/src/main/java/org/dromara/dynamictp/starter/adapter/brpc/autoconfigure/BrpcTpAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-brpc/src/main/java/org/dromara/dynamictp/starter/adapter/brpc/autoconfigure/BrpcTpAutoConfiguration.java @@ -19,6 +19,7 @@ import org.dromara.dynamictp.apapter.brpc.client.StarlightClientDtpAdapter; import org.dromara.dynamictp.apapter.brpc.server.StarlightServerDtpAdapter; +import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; diff --git a/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/AbstractWebServerDtpAdapter.java b/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/AbstractWebServerDtpAdapter.java index ae78293ed..c851561a9 100644 --- a/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/AbstractWebServerDtpAdapter.java +++ b/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/AbstractWebServerDtpAdapter.java @@ -21,6 +21,7 @@ import org.dromara.dynamictp.adapter.common.AbstractDtpAdapter; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.core.converter.ExecutorConverter; +import org.dromara.dynamictp.spring.ex.SpringContextHolder; import org.springframework.boot.web.context.WebServerApplicationContext; import org.springframework.boot.web.context.WebServerInitializedEvent; import org.springframework.boot.web.server.WebServer; @@ -45,7 +46,7 @@ public abstract class AbstractWebServerDtpAdapter extends Ab public void onApplicationEvent(ApplicationEvent event) { if (event instanceof WebServerInitializedEvent) { try { - DtpProperties dtpProperties = ApplicationContextHolder.getBean(DtpProperties.class); + DtpProperties dtpProperties = SpringContextHolder.getInstance().getBean(DtpProperties.class); initialize(); afterInitialize(); refresh(dtpProperties); @@ -59,7 +60,7 @@ public void onApplicationEvent(ApplicationEvent event) { protected void initialize() { super.initialize(); if (executors.get(getTpName()) == null) { - ApplicationContext applicationContext = ApplicationContextHolder.getInstance(); + ApplicationContext applicationContext = SpringContextHolder.getInstance(); WebServer webServer = ((WebServerApplicationContext) applicationContext).getWebServer(); doEnhance(webServer); log.info("DynamicTp adapter, web server {} executor init end, executor: {}", diff --git a/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/monitor/DtpEndpoint.java b/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/monitor/DtpEndpoint.java index 4bb8e25cd..fb3789ef1 100644 --- a/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/monitor/DtpEndpoint.java +++ b/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/monitor/DtpEndpoint.java @@ -27,7 +27,6 @@ import org.dromara.dynamictp.core.converter.ExecutorConverter; import org.dromara.dynamictp.core.support.ExecutorWrapper; import org.dromara.dynamictp.core.aware.MetricsAware; -import org.dromara.dynamictp.spring.ex.ApplicationContextHolder; import org.springframework.boot.actuate.endpoint.annotation.Endpoint; import org.springframework.boot.actuate.endpoint.annotation.ReadOperation; diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/AbstractDtpNotifierTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/AbstractDtpNotifierTest.java index 46d4e4bce..f86d67282 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/AbstractDtpNotifierTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/AbstractDtpNotifierTest.java @@ -23,6 +23,7 @@ import org.dromara.dynamictp.common.entity.NotifyPlatform; import org.dromara.dynamictp.common.entity.ServiceInstance; import org.dromara.dynamictp.common.entity.TpMainFields; +import org.dromara.dynamictp.common.util.CommonUtil; import org.dromara.dynamictp.core.notifier.AbstractDtpNotifier; import org.dromara.dynamictp.core.notifier.DtpDingNotifier; import org.dromara.dynamictp.common.notifier.Notifier; @@ -32,6 +33,7 @@ import org.dromara.dynamictp.core.support.ExecutorWrapper; import org.dromara.dynamictp.core.support.ThreadPoolCreator; import org.dromara.dynamictp.core.executor.DtpExecutor; +import org.dromara.dynamictp.spring.ex.SpringContextHolder; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -60,7 +62,7 @@ * @since 1.1.3 */ @RunWith(PowerMockRunner.class) -@PrepareForTest({ApplicationContextHolder.class, CommonUtil.class}) +@PrepareForTest({SpringContextHolder.class, CommonUtil.class}) @SuppressStaticInitializationFor("org.dromara.dynamictp.common.util.CommonUtil") public class AbstractDtpNotifierTest { @@ -71,11 +73,11 @@ public class AbstractDtpNotifierTest { @Before public void setUp() { ApplicationContext contextMock = mock(ApplicationContext.class); - PowerMockito.mockStatic(ApplicationContextHolder.class); - when(ApplicationContextHolder.getInstance()).thenAnswer((Answer) c -> contextMock); + PowerMockito.mockStatic(SpringContextHolder.class); + when(SpringContextHolder.getInstance()).thenAnswer((Answer) c -> contextMock); Environment envMock = mock(Environment.class); - when(ApplicationContextHolder.getEnvironment()).thenAnswer((Answer) c -> envMock); + when(SpringContextHolder.getEnvironment()).thenAnswer((Answer) c -> envMock); when(envMock.getProperty("spring.application.name")).thenReturn("test"); when(envMock.getProperty("server.port")).thenReturn("8080"); when(envMock.getActiveProfiles()).thenReturn(new String[]{"dev"}); diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpBaseBeanConfigurationTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpBaseBeanConfigurationTest.java index aa6a17448..766b835b6 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpBaseBeanConfigurationTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpBaseBeanConfigurationTest.java @@ -22,6 +22,7 @@ import org.dromara.dynamictp.core.support.DtpBannerPrinter; import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; import org.dromara.dynamictp.spring.ex.DtpPostProcessor; +import org.dromara.dynamictp.spring.ex.SpringContextHolder; import org.dromara.dynamictp.spring.ex.YamlPropertySourceFactory; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -50,7 +51,7 @@ public static class EnableDynamicTpAnnotationTest { @Test void test() { Assertions.assertNotNull(applicationContext.getBean(DtpBaseBeanConfiguration.class)); - Assertions.assertNotNull(applicationContext.getBean(ApplicationContextHolder.class)); + Assertions.assertNotNull(applicationContext.getBean(SpringContextHolder.class)); Assertions.assertNotNull(applicationContext.getBean(DtpBannerPrinter.class)); Assertions.assertNotNull(applicationContext.getBean(DtpPostProcessor.class)); Assertions.assertNotNull(applicationContext.getBean(DtpRegistry.class)); @@ -68,7 +69,7 @@ public static class DisableDynamicTpAnnotationTest { @Test void test() { Assertions.assertThrows(NoSuchBeanDefinitionException.class, () -> applicationContext.getBean(DtpBaseBeanConfiguration.class)); - Assertions.assertThrows(NoSuchBeanDefinitionException.class, () -> applicationContext.getBean(ApplicationContextHolder.class)); + Assertions.assertThrows(NoSuchBeanDefinitionException.class, () -> applicationContext.getBean(SpringContextHolder.class)); Assertions.assertThrows(NoSuchBeanDefinitionException.class, () -> applicationContext.getBean(DtpBannerPrinter.class)); Assertions.assertThrows(NoSuchBeanDefinitionException.class, () -> applicationContext.getBean(DtpPostProcessor.class)); Assertions.assertThrows(NoSuchBeanDefinitionException.class, () -> applicationContext.getBean(DtpRegistry.class)); From 8bfd03a90da492d0b3c80f8c2c44f7b80d01b87d Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Thu, 11 Jul 2024 16:42:40 +0800 Subject: [PATCH 005/101] =?UTF-8?q?refactor=EF=BC=9ADynamicTp=E8=BF=81?= =?UTF-8?q?=E7=A7=BBspring=E6=A8=A1=E5=9D=97,=E5=88=9B=E5=BB=BA=E9=A1=B6?= =?UTF-8?q?=E5=B1=82=E6=8E=A5=E5=8F=A3=E4=BD=BF=E7=94=A8spi=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E7=8E=B0=E6=9C=89=E4=BD=93=E7=B3=BB,=E5=B9=B6?= =?UTF-8?q?=E6=8A=BD=E8=B1=A1environment=E5=AF=B9=E8=B1=A1=E4=B8=BAObject?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/manager/ContextManager.java | 14 ++++ .../common/manager/ContextManagerHelper.java | 54 +++++++++++++ .../common/spring/ContextHolder.java | 10 --- .../dynamictp/common/util/CommonUtil.java | 4 +- .../notifier/manager/NotifyFilterBuilder.java | 6 +- .../core/notifier/manager/NotifyHelper.java | 6 +- .../core/spring/ContextHolderHelper.java | 45 ----------- .../core/spring/SimpleContextHolder.java | 57 -------------- .../dynamictp/core/support/BinderHelper.java | 6 +- .../{spring => support}/PropertiesBinder.java | 5 +- .../core/support/ThreadPoolStatProvider.java | 5 +- ...ara.dynamictp.common.manager.ContextHolder | 1 + ...mara.dynamictp.common.spring.ContextHolder | 1 - .../spring/ex/DtpBaseBeanConfiguration.java | 9 +-- .../ex/DtpBaseBeanDefinitionRegistrar.java | 2 +- .../spring/ex/SpringContextHolder.java | 76 +++++++++++++++++-- ...a.dynamictp.common.manager.ContextManager} | 0 .../binder/SpringBootPropertiesBinder.java | 19 +++-- ...a.dynamictp.core.support.PropertiesBinder} | 0 19 files changed, 169 insertions(+), 151 deletions(-) create mode 100644 common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java create mode 100644 common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java delete mode 100644 common/src/main/java/org/dromara/dynamictp/common/spring/ContextHolder.java delete mode 100644 core/src/main/java/org/dromara/dynamictp/core/spring/ContextHolderHelper.java delete mode 100644 core/src/main/java/org/dromara/dynamictp/core/spring/SimpleContextHolder.java rename core/src/main/java/org/dromara/dynamictp/core/{spring => support}/PropertiesBinder.java (88%) create mode 100644 core/src/main/resources/META-INF/services/org.dromara.dynamictp.common.manager.ContextHolder delete mode 100644 core/src/main/resources/META-INF/services/org.dromara.dynamictp.common.spring.ContextHolder rename spring/src/main/resources/META-INF/services/{org.dromara.dynamictp.common.spring.ContextHolder => org.dromara.dynamictp.common.manager.ContextManager} (100%) rename starter/starter-common/src/main/resources/META-INF/services/{org.dromara.dynamictp.core.spring.PropertiesBinder => org.dromara.dynamictp.core.support.PropertiesBinder} (100%) diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java new file mode 100644 index 000000000..ecea7ec7a --- /dev/null +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java @@ -0,0 +1,14 @@ +package org.dromara.dynamictp.common.manager; + +import java.util.Map; + +public interface ContextManager { + T getBean(Class clazz); + T getBean(String name, Class clazz); + Map getBeansOfType(Class clazz); + void setContext(Object context); + void onEvent(Object event); + Object getEnvironment(); + String getEnvironmentProperty(String key); + String getEnvironmentProperty(String key, String defaultValue); +} \ No newline at end of file diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java new file mode 100644 index 000000000..fd2f14557 --- /dev/null +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java @@ -0,0 +1,54 @@ +package org.dromara.dynamictp.common.manager; +import java.util.Map; +import java.util.ServiceLoader; + +public class ContextManagerHelper { + + private static final ContextManager CONTEXT_MANAGER; + + static { + ContextManager context = null; + ServiceLoader loader = ServiceLoader.load(ContextManager.class); + for (ContextManager contextManager : loader) { + context = contextManager; + break; + } + if (context == null) { + throw new IllegalStateException("No ContextManager implementation found"); + } + CONTEXT_MANAGER = context; + } + + public static T getBean(Class clazz) { + return CONTEXT_MANAGER.getBean(clazz); + } + + public static T getBean(String name, Class clazz) { + return CONTEXT_MANAGER.getBean(name, clazz); + } + + public static Map getBeansOfType(Class clazz) { + return CONTEXT_MANAGER.getBeansOfType(clazz); + } + + public static void setContext(Object context) { + CONTEXT_MANAGER.setContext(context); + } + + public static void onEvent(Object event) { + CONTEXT_MANAGER.onEvent(event); + } + + public static Object getEnvironment() { + return CONTEXT_MANAGER.getEnvironment(); + } + + public static String getEnvironmentProperty(String key) { + return CONTEXT_MANAGER.getEnvironmentProperty(key); + } + + public static String getEnvironmentProperty(String key, String defaultValue) { + return CONTEXT_MANAGER.getEnvironmentProperty(key, defaultValue); + } + +} \ No newline at end of file diff --git a/common/src/main/java/org/dromara/dynamictp/common/spring/ContextHolder.java b/common/src/main/java/org/dromara/dynamictp/common/spring/ContextHolder.java deleted file mode 100644 index 843e8ce82..000000000 --- a/common/src/main/java/org/dromara/dynamictp/common/spring/ContextHolder.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.dromara.dynamictp.common.spring; - -import java.util.Map; - -public interface ContextHolder { - T getBean(Class clazz); - T getBean(String name, Class clazz); - Map getBeansOfType(Class clazz); - void publishEvent(Object event); -} \ No newline at end of file diff --git a/common/src/main/java/org/dromara/dynamictp/common/util/CommonUtil.java b/common/src/main/java/org/dromara/dynamictp/common/util/CommonUtil.java index 4ca11751f..3ca0a5af0 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/util/CommonUtil.java +++ b/common/src/main/java/org/dromara/dynamictp/common/util/CommonUtil.java @@ -18,10 +18,10 @@ package org.dromara.dynamictp.common.util; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.common.spring.ApplicationContextHolder; import org.dromara.dynamictp.common.entity.ServiceInstance; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.dromara.dynamictp.common.manager.ContextManagerHelper; import org.springframework.core.env.Environment; import java.net.InetAddress; @@ -44,7 +44,7 @@ private CommonUtil() { private static final ServiceInstance SERVICE_INSTANCE; static { - Environment environment = ApplicationContextHolder.getEnvironment(); + Environment environment = (Environment) ContextManagerHelper.getEnvironment(); String appName = environment.getProperty("spring.application.name"); appName = StringUtils.isNoneBlank(appName) ? appName : "application"; diff --git a/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyFilterBuilder.java b/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyFilterBuilder.java index 194fa665b..4cb104b4b 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyFilterBuilder.java +++ b/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyFilterBuilder.java @@ -30,6 +30,8 @@ import com.google.common.collect.Lists; import lombok.val; +import org.dromara.dynamictp.common.manager.ContextManagerHelper; + import java.util.Collection; import java.util.Comparator; import java.util.stream.Collectors; @@ -45,7 +47,7 @@ public class NotifyFilterBuilder { private NotifyFilterBuilder() { } public static InvokerChain getAlarmInvokerChain() { - val filters = BeanProviderHelper.getBeansOfType(NotifyFilter.class); + val filters = ContextManagerHelper.getBeansOfType(NotifyFilter.class); Collection alarmFilters = Lists.newArrayList(filters.values()); alarmFilters.add(new AlarmBaseFilter()); alarmFilters = alarmFilters.stream() @@ -56,7 +58,7 @@ public static InvokerChain getAlarmInvokerChain() { } public static InvokerChain getCommonInvokerChain() { - val filters = BeanProviderHelper.getBeansOfType(NotifyFilter.class); + val filters = ContextManagerHelper.getBeansOfType(NotifyFilter.class); Collection noticeFilters = Lists.newArrayList(filters.values()); noticeFilters.add(new NoticeBaseFilter()); noticeFilters = noticeFilters.stream() diff --git a/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyHelper.java b/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyHelper.java index 8afebc288..cb923291f 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyHelper.java +++ b/core/src/main/java/org/dromara/dynamictp/core/notifier/manager/NotifyHelper.java @@ -31,6 +31,8 @@ import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.common.util.StreamUtil; import org.dromara.dynamictp.core.executor.DtpExecutor; + +import org.dromara.dynamictp.common.manager.ContextManagerHelper; import org.dromara.dynamictp.core.support.ExecutorWrapper; import java.util.Collection; @@ -135,7 +137,7 @@ public static Optional getPlatform(String platformId) { } public static Map getAllPlatforms() { - val dtpProperties = BeanProviderHelper.getBean(DtpProperties.class); + val dtpProperties = ContextManagerHelper.getBean(DtpProperties.class); if (CollectionUtils.isEmpty(dtpProperties.getPlatforms())) { return Collections.emptyMap(); } @@ -143,7 +145,7 @@ public static Map getAllPlatforms() { } public static void initNotify(DtpExecutor executor) { - val dtpProperties = BeanProviderHelper.getBean(DtpProperties.class); + val dtpProperties = ContextManagerHelper.getBean(DtpProperties.class); val platforms = dtpProperties.getPlatforms(); if (CollectionUtils.isEmpty(platforms)) { executor.setNotifyItems(Lists.newArrayList()); diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/ContextHolderHelper.java b/core/src/main/java/org/dromara/dynamictp/core/spring/ContextHolderHelper.java deleted file mode 100644 index cea51fbcd..000000000 --- a/core/src/main/java/org/dromara/dynamictp/core/spring/ContextHolderHelper.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.dromara.dynamictp.core.spring; - -import org.dromara.dynamictp.common.spring.ContextHolder; -import org.dromara.dynamictp.common.util.ExtensionServiceLoader; - -import java.util.Map; -import java.util.ServiceLoader; - -public class ContextHolderHelper { - - private static final ContextHolder CONTEXT_HOLDER; - - static { - ContextHolder holder = null; - ServiceLoader loader = ServiceLoader.load(ContextHolder.class); - for (ContextHolder contextHolder : loader) { - if (contextHolder.getClass().getName().equals("org.dromara.dynamictp.spring.ex.SpringContextHolder")) { - holder = contextHolder; - break; - } else { - holder = contextHolder; - } - } - if (holder == null) { - throw new IllegalStateException("No ContextHolder implementation found"); - } - CONTEXT_HOLDER = holder; - } - - public static T getBean(Class clazz) { - return CONTEXT_HOLDER.getBean(clazz); - } - - public static T getBean(String name, Class clazz) { - return CONTEXT_HOLDER.getBean(name, clazz); - } - - public static Map getBeansOfType(Class clazz) { - return CONTEXT_HOLDER.getBeansOfType(clazz); - } - - public static void publishEvent(Object event) { - CONTEXT_HOLDER.publishEvent(event); - } -} \ No newline at end of file diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/SimpleContextHolder.java b/core/src/main/java/org/dromara/dynamictp/core/spring/SimpleContextHolder.java deleted file mode 100644 index 1178842c3..000000000 --- a/core/src/main/java/org/dromara/dynamictp/core/spring/SimpleContextHolder.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.dromara.dynamictp.core.spring; - - -import org.dromara.dynamictp.common.spring.ContextHolder; -import org.dromara.dynamictp.common.spring.Event; -import org.dromara.dynamictp.common.spring.EventListener; -import org.dromara.dynamictp.common.spring.EventPublisher; - -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Collectors; - -public class SimpleContextHolder implements ContextHolder { - - private final Map, Object> beans = new ConcurrentHashMap<>(); - private final EventPublisher eventPublisher = new EventPublisher(); - - @Override - public T getBean(Class clazz) { - return clazz.cast(beans.get(clazz)); - } - - @Override - public T getBean(String name, Class clazz) { - // 简单实现:假设name是类的全限定名 - try { - Class beanClass = Class.forName(name); - return clazz.cast(beans.get(beanClass)); - } catch (ClassNotFoundException e) { - throw new RuntimeException("Bean not found: " + name, e); - } - } - - @Override - public Map getBeansOfType(Class clazz) { - return beans.entrySet().stream() - .filter(entry -> clazz.isAssignableFrom(entry.getKey())) - .collect(Collectors.toMap( - entry -> entry.getKey().getName(), - entry -> clazz.cast(entry.getValue()))); - } - - @Override - public void publishEvent(Object event) { - if (event instanceof Event) { - eventPublisher.publish((Event) event); - } - } - - public void registerBean(Class clazz, T bean) { - beans.put(clazz, bean); - } - - public void registerListener(EventListener listener) { - eventPublisher.registerListener(listener); - } -} \ No newline at end of file diff --git a/core/src/main/java/org/dromara/dynamictp/core/support/BinderHelper.java b/core/src/main/java/org/dromara/dynamictp/core/support/BinderHelper.java index cfc6a0e48..ec52ff082 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/support/BinderHelper.java +++ b/core/src/main/java/org/dromara/dynamictp/core/support/BinderHelper.java @@ -21,8 +21,6 @@ import org.dromara.dynamictp.common.pattern.singleton.Singleton; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.common.util.ExtensionServiceLoader; -import org.dromara.dynamictp.core.spring.PropertiesBinder; -import org.springframework.core.env.Environment; import java.util.Map; import java.util.Objects; @@ -45,7 +43,7 @@ private static PropertiesBinder getBinder() { } final PropertiesBinder loadedFirstBinder = ExtensionServiceLoader.getFirst(PropertiesBinder.class); if (Objects.isNull(loadedFirstBinder)) { - log.error("DynamicTp refresh, no SPI for org.dromara.dynamictp.core.spring.PropertiesBinder."); + log.error("DynamicTp refresh, no SPI for org.dromara.dynamictp.spring.ex.PropertiesBinder."); return null; } Singleton.INST.single(PropertiesBinder.class, loadedFirstBinder); @@ -60,7 +58,7 @@ public static void bindDtpProperties(Map properties, DtpProperties dt binder.bindDtpProperties(properties, dtpProperties); } - public static void bindDtpProperties(Environment environment, DtpProperties dtpProperties) { + public static void bindDtpProperties(Object environment, DtpProperties dtpProperties) { final PropertiesBinder binder = getBinder(); if (Objects.isNull(binder)) { return; diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/PropertiesBinder.java b/core/src/main/java/org/dromara/dynamictp/core/support/PropertiesBinder.java similarity index 88% rename from core/src/main/java/org/dromara/dynamictp/core/spring/PropertiesBinder.java rename to core/src/main/java/org/dromara/dynamictp/core/support/PropertiesBinder.java index 75e97dcb6..ddeea1667 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/spring/PropertiesBinder.java +++ b/core/src/main/java/org/dromara/dynamictp/core/support/PropertiesBinder.java @@ -15,10 +15,9 @@ * limitations under the License. */ -package org.dromara.dynamictp.core.spring; +package org.dromara.dynamictp.core.support; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.springframework.core.env.Environment; import java.util.Map; @@ -44,5 +43,5 @@ public interface PropertiesBinder { * @param environment environment * @param dtpProperties dtp properties */ - void bindDtpProperties(Environment environment, DtpProperties dtpProperties); + void bindDtpProperties(Object environment, DtpProperties dtpProperties); } diff --git a/core/src/main/java/org/dromara/dynamictp/core/support/ThreadPoolStatProvider.java b/core/src/main/java/org/dromara/dynamictp/core/support/ThreadPoolStatProvider.java index 69ae93b26..a4488b92d 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/support/ThreadPoolStatProvider.java +++ b/core/src/main/java/org/dromara/dynamictp/core/support/ThreadPoolStatProvider.java @@ -22,6 +22,7 @@ import org.dromara.dynamictp.common.timer.Timeout; import org.dromara.dynamictp.core.executor.DtpExecutor; import org.dromara.dynamictp.core.monitor.PerformanceProvider; +import org.dromara.dynamictp.common.manager.ContextManagerHelper; import org.dromara.dynamictp.core.timer.QueueTimeoutTimerTask; import org.dromara.dynamictp.core.timer.RunTimeoutTimerTask; @@ -163,7 +164,7 @@ public void startQueueTimeoutTask(Runnable r) { if (queueTimeout <= 0) { return; } - HashedWheelTimer timer = BeanProviderHelper.getBean(HashedWheelTimer.class); + HashedWheelTimer timer = ContextManagerHelper.getBean(HashedWheelTimer.class); QueueTimeoutTimerTask timerTask = new QueueTimeoutTimerTask(executorWrapper, r); queueTimeoutMap.put(r, new SoftReference<>(timer.newTimeout(timerTask, queueTimeout, TimeUnit.MILLISECONDS))); } @@ -178,7 +179,7 @@ public void startRunTimeoutTask(Thread t, Runnable r) { if (runTimeout <= 0) { return; } - HashedWheelTimer timer = BeanProviderHelper.getBean(HashedWheelTimer.class); + HashedWheelTimer timer = ContextManagerHelper.getBean(HashedWheelTimer.class); RunTimeoutTimerTask timerTask = new RunTimeoutTimerTask(executorWrapper, r, t); runTimeoutMap.put(r, new SoftReference<>(timer.newTimeout(timerTask, runTimeout, TimeUnit.MILLISECONDS))); } diff --git a/core/src/main/resources/META-INF/services/org.dromara.dynamictp.common.manager.ContextHolder b/core/src/main/resources/META-INF/services/org.dromara.dynamictp.common.manager.ContextHolder new file mode 100644 index 000000000..a8384283f --- /dev/null +++ b/core/src/main/resources/META-INF/services/org.dromara.dynamictp.common.manager.ContextHolder @@ -0,0 +1 @@ +org.dromara.dynamictp.core.support.BinderHelper \ No newline at end of file diff --git a/core/src/main/resources/META-INF/services/org.dromara.dynamictp.common.spring.ContextHolder b/core/src/main/resources/META-INF/services/org.dromara.dynamictp.common.spring.ContextHolder deleted file mode 100644 index c94a5c35d..000000000 --- a/core/src/main/resources/META-INF/services/org.dromara.dynamictp.common.spring.ContextHolder +++ /dev/null @@ -1 +0,0 @@ -org.dromara.dynamictp.core.spring.SimpleContextHolder \ No newline at end of file diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBaseBeanConfiguration.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBaseBeanConfiguration.java index d81f01026..4a6d33f61 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBaseBeanConfiguration.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBaseBeanConfiguration.java @@ -27,6 +27,8 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Role; +import java.util.EventListenerProxy; + /** * DtpBaseBeanConfiguration related * @@ -61,11 +63,4 @@ public DtpMonitor dtpMonitor(DtpProperties dtpProperties) { public DtpBannerPrinter dtpBannerPrinter() { return new DtpBannerPrinter(); } - - - - @Bean - public DtpLifecycleSpringAdapter dtpLifecycleSpringAdapter(DtpLifecycle dtpLifecycle) { - return new DtpLifecycleSpringAdapter(dtpLifecycle); - } } diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBaseBeanDefinitionRegistrar.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBaseBeanDefinitionRegistrar.java index 427cb9038..70aab0919 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBaseBeanDefinitionRegistrar.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBaseBeanDefinitionRegistrar.java @@ -44,7 +44,7 @@ public class DtpBaseBeanDefinitionRegistrar implements ImportBeanDefinitionRegis @Override public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { registerHashedWheelTimer(registry); - SpringBeanHelper.registerIfAbsent(registry, APPLICATION_CONTEXT_HOLDER, ApplicationContextHolder.class); + SpringBeanHelper.registerIfAbsent(registry, APPLICATION_CONTEXT_HOLDER, SpringContextHolder.class); // ApplicationContextHolder and HashedWheelTimer are required in DtpExecutor execute method, so they must be registered first SpringBeanHelper.registerIfAbsent(registry, DTP_POST_PROCESSOR, DtpPostProcessor.class, diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringContextHolder.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringContextHolder.java index 953265d98..c3b351f3e 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringContextHolder.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringContextHolder.java @@ -1,19 +1,20 @@ package org.dromara.dynamictp.spring.ex; -import org.dromara.dynamictp.common.spring.ContextHolder; + +import org.dromara.dynamictp.common.manager.ContextManager; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.context.ApplicationEvent; +import org.springframework.context.ApplicationListener; +import org.springframework.context.event.*; import org.springframework.core.env.Environment; -import org.springframework.stereotype.Component; import java.util.Map; import java.util.Objects; -@Component -public class SpringContextHolder implements ContextHolder, ApplicationContextAware { +public class SpringContextHolder implements ContextManager, ApplicationContextAware, ApplicationListener { private static ApplicationContext context; @@ -37,7 +38,6 @@ public Map getBeansOfType(Class clazz) { return getInstance().getBeansOfType(clazz); } - public static ApplicationContext getInstance() { if (Objects.isNull(context)) { throw new NullPointerException("ApplicationContext is null, please check if the spring container is started."); @@ -45,14 +45,74 @@ public static ApplicationContext getInstance() { return context; } - public static Environment getEnvironment() { + @Override + public Environment getEnvironment() { return getInstance().getEnvironment(); } - @Override + public void publishEvent(Object event) { if (event instanceof ApplicationEvent) { getInstance().publishEvent((ApplicationEvent) event); } } -} + + @Override + public void onApplicationEvent(ApplicationEvent event) { + if (isOriginalEventSource(event) && event instanceof ApplicationContextEvent) { + if (event instanceof ContextRefreshedEvent) { + onContextRefreshedEvent((ContextRefreshedEvent) event); + } else if (event instanceof ContextStartedEvent) { + onContextStartedEvent((ContextStartedEvent) event); + } else if (event instanceof ContextStoppedEvent) { + onContextStoppedEvent((ContextStoppedEvent) event); + } else if (event instanceof ContextClosedEvent) { + onContextClosedEvent((ContextClosedEvent) event); + } + } + } + + protected void onContextRefreshedEvent(ContextRefreshedEvent event) { + // Override to handle ContextRefreshedEvent + } + + protected void onContextStartedEvent(ContextStartedEvent event) { + // Override to handle ContextStartedEvent + } + + protected void onContextStoppedEvent(ContextStoppedEvent event) { + // Override to handle ContextStoppedEvent + } + + protected void onContextClosedEvent(ContextClosedEvent event) { + // Override to handle ContextClosedEvent + } + + private boolean isOriginalEventSource(ApplicationEvent event) { + return Objects.equals(context, event.getSource()); + } + + @Override + public void onEvent(Object event) { + if (event instanceof ApplicationEvent) { + onApplicationEvent((ApplicationEvent) event); + } + } + + @Override + public String getEnvironmentProperty(String key) { + return getInstance().getEnvironment().getProperty(key); + } + + @Override + public String getEnvironmentProperty(String key, String defaultValue) { + return getInstance().getEnvironment().getProperty(key, defaultValue); + } + + @Override + public void setContext(Object context) { + if (context instanceof ApplicationContext) { + setApplicationContext((ApplicationContext) context); + } + } +} \ No newline at end of file diff --git a/spring/src/main/resources/META-INF/services/org.dromara.dynamictp.common.spring.ContextHolder b/spring/src/main/resources/META-INF/services/org.dromara.dynamictp.common.manager.ContextManager similarity index 100% rename from spring/src/main/resources/META-INF/services/org.dromara.dynamictp.common.spring.ContextHolder rename to spring/src/main/resources/META-INF/services/org.dromara.dynamictp.common.manager.ContextManager diff --git a/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/binder/SpringBootPropertiesBinder.java b/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/binder/SpringBootPropertiesBinder.java index c5c2dc52c..ce62dd8d4 100644 --- a/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/binder/SpringBootPropertiesBinder.java +++ b/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/binder/SpringBootPropertiesBinder.java @@ -20,7 +20,8 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.core.spring.PropertiesBinder; + +import org.dromara.dynamictp.core.support.PropertiesBinder; import org.springframework.beans.MutablePropertyValues; import org.springframework.beans.PropertyValues; import org.springframework.boot.context.properties.bind.Bindable; @@ -58,12 +59,16 @@ public void bindDtpProperties(Map properties, DtpProperties dtpProper } @Override - public void bindDtpProperties(Environment environment, DtpProperties dtpProperties) { - try { - Class.forName("org.springframework.boot.context.properties.bind.Binder"); - doBindIn2X(environment, dtpProperties); - } catch (ClassNotFoundException e) { - doBindIn1X(environment, dtpProperties); + public void bindDtpProperties(Object environment, DtpProperties dtpProperties) { + if (environment instanceof Environment) { + try { + Class.forName("org.springframework.boot.context.properties.bind.Binder"); + doBindIn2X((Environment) environment, dtpProperties); + } catch (ClassNotFoundException e) { + doBindIn1X((Environment) environment, dtpProperties); + } + } else { + throw new IllegalArgumentException("Invalid environment type, expected org.springframework.core.env.Environment"); } } diff --git a/starter/starter-common/src/main/resources/META-INF/services/org.dromara.dynamictp.core.spring.PropertiesBinder b/starter/starter-common/src/main/resources/META-INF/services/org.dromara.dynamictp.core.support.PropertiesBinder similarity index 100% rename from starter/starter-common/src/main/resources/META-INF/services/org.dromara.dynamictp.core.spring.PropertiesBinder rename to starter/starter-common/src/main/resources/META-INF/services/org.dromara.dynamictp.core.support.PropertiesBinder From d03733fab23cb8fb1722a37ee501c97a42ed2b9b Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Tue, 16 Jul 2024 14:56:00 +0800 Subject: [PATCH 006/101] =?UTF-8?q?refactor=EF=BC=9ADynamicTp=E8=BF=81?= =?UTF-8?q?=E7=A7=BBspring=E6=A8=A1=E5=9D=97,=E6=9B=BF=E6=8D=A2=E7=9B=91?= =?UTF-8?q?=E5=90=AC=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/event/AlarmCheckEvent.java | 4 ++- .../dynamictp/common/event/CollectEvent.java | 3 ++- .../dynamictp/common/event/RefreshEvent.java | 3 ++- .../common/manager/EventBusManager.java | 27 +++++++++++++++++++ .../common/manager/RefreshedEvent.java | 21 +++++++++++++++ .../dynamictp/common/spring/Event.java | 5 ---- .../common/spring/EventListener.java | 6 ----- .../common/spring/EventPublisher.java | 25 ----------------- 8 files changed, 55 insertions(+), 39 deletions(-) create mode 100644 common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java create mode 100644 common/src/main/java/org/dromara/dynamictp/common/manager/RefreshedEvent.java delete mode 100644 common/src/main/java/org/dromara/dynamictp/common/spring/Event.java delete mode 100644 common/src/main/java/org/dromara/dynamictp/common/spring/EventListener.java delete mode 100644 common/src/main/java/org/dromara/dynamictp/common/spring/EventPublisher.java diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java index ff5ab0f7f..ca2fc1959 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java @@ -17,6 +17,7 @@ package org.dromara.dynamictp.common.event; +import org.dromara.dynamictp.common.manager.RefreshedEvent; import org.dromara.dynamictp.common.properties.DtpProperties; import org.springframework.context.ApplicationEvent; @@ -26,7 +27,7 @@ * @author yanhom * @since 1.0.0 */ -public class AlarmCheckEvent extends ApplicationEvent { +public class AlarmCheckEvent extends RefreshedEvent { private final transient DtpProperties dtpProperties; @@ -35,6 +36,7 @@ public AlarmCheckEvent(Object source, DtpProperties dtpProperties) { this.dtpProperties = dtpProperties; } + @Override public DtpProperties getDtpProperties() { return dtpProperties; } diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java index d796773e7..b3be4720c 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java @@ -17,6 +17,7 @@ package org.dromara.dynamictp.common.event; +import org.dromara.dynamictp.common.manager.RefreshedEvent; import org.dromara.dynamictp.common.properties.DtpProperties; import org.springframework.context.ApplicationEvent; @@ -26,7 +27,7 @@ * @author yanhom * @since 1.0.0 */ -public class CollectEvent extends ApplicationEvent { +public class CollectEvent extends RefreshedEvent { private final transient DtpProperties dtpProperties; diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java index caf52aeb1..b05e89875 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java @@ -17,6 +17,7 @@ package org.dromara.dynamictp.common.event; +import org.dromara.dynamictp.common.manager.RefreshedEvent; import org.dromara.dynamictp.common.properties.DtpProperties; import org.springframework.context.ApplicationEvent; @@ -26,7 +27,7 @@ * @author yanhom * @since 1.0.0 */ -public class RefreshEvent extends ApplicationEvent { +public class RefreshEvent extends RefreshedEvent { private final transient DtpProperties dtpProperties; diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java b/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java new file mode 100644 index 000000000..c9ef8def4 --- /dev/null +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java @@ -0,0 +1,27 @@ +package org.dromara.dynamictp.common.manager; + +import com.google.common.eventbus.EventBus; + +public class EventBusManager { + + private static final EventBus EVENT_BUS = new EventBus(); + + private EventBusManager() { } + + public static void register(Object object) { + EVENT_BUS.register(object); + } + + public static void unregister(Object object) { + EVENT_BUS.unregister(object); + } + + public static void post(Object event) { + EVENT_BUS.post(event); + } + + public static EventBus getInstance() { + return EVENT_BUS; + } +} + diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/RefreshedEvent.java b/common/src/main/java/org/dromara/dynamictp/common/manager/RefreshedEvent.java new file mode 100644 index 000000000..86279dfd5 --- /dev/null +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/RefreshedEvent.java @@ -0,0 +1,21 @@ +package org.dromara.dynamictp.common.manager; + +import org.dromara.dynamictp.common.properties.DtpProperties; + +public class RefreshedEvent { + private final Object source; + + public RefreshedEvent(Object source) { + this.source = source; + } + + public Object getSource() { + return source; + } + + // 提供默认实现,子类可以重写这个方法 + public DtpProperties getDtpProperties() { + return null; + } +} + diff --git a/common/src/main/java/org/dromara/dynamictp/common/spring/Event.java b/common/src/main/java/org/dromara/dynamictp/common/spring/Event.java deleted file mode 100644 index fa56283b9..000000000 --- a/common/src/main/java/org/dromara/dynamictp/common/spring/Event.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.dromara.dynamictp.common.spring; - -public class Event { - // 通用事件类,可以扩展添加更多信息 -} \ No newline at end of file diff --git a/common/src/main/java/org/dromara/dynamictp/common/spring/EventListener.java b/common/src/main/java/org/dromara/dynamictp/common/spring/EventListener.java deleted file mode 100644 index 0667d694f..000000000 --- a/common/src/main/java/org/dromara/dynamictp/common/spring/EventListener.java +++ /dev/null @@ -1,6 +0,0 @@ -package org.dromara.dynamictp.common.spring; - - -public interface EventListener { - void onEvent(T event); -} \ No newline at end of file diff --git a/common/src/main/java/org/dromara/dynamictp/common/spring/EventPublisher.java b/common/src/main/java/org/dromara/dynamictp/common/spring/EventPublisher.java deleted file mode 100644 index 92ab78dc5..000000000 --- a/common/src/main/java/org/dromara/dynamictp/common/spring/EventPublisher.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.dromara.dynamictp.common.spring; - -import java.util.List; -import java.util.concurrent.CopyOnWriteArrayList; - -public class EventPublisher { - - private final List> listeners = new CopyOnWriteArrayList<>(); - - public void publish(T event) { - for (EventListener listener : listeners) { - if (listener.getClass().isAssignableFrom(event.getClass())) { - ((EventListener) listener).onEvent(event); - } - } - } - - public void registerListener(EventListener listener) { - listeners.add(listener); - } - - public void unregisterListener(EventListener listener) { - listeners.remove(listener); - } -} \ No newline at end of file From aba05f62c1691d9bd2cca2f7d21af2ae35ea2c31 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Tue, 16 Jul 2024 15:00:17 +0800 Subject: [PATCH 007/101] =?UTF-8?q?refactor=EF=BC=9ADynamicTp=E8=BF=81?= =?UTF-8?q?=E7=A7=BBspring=E6=A8=A1=E5=9D=97,=E4=BF=AE=E6=94=B9Application?= =?UTF-8?q?ContextHolder=E7=9B=B8=E5=85=B3=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dromara/dynamictp/logging/AbstractDtpLogging.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/logging/src/main/java/org/dromara/dynamictp/logging/AbstractDtpLogging.java b/logging/src/main/java/org/dromara/dynamictp/logging/AbstractDtpLogging.java index 58ffab78f..ce10c5440 100644 --- a/logging/src/main/java/org/dromara/dynamictp/logging/AbstractDtpLogging.java +++ b/logging/src/main/java/org/dromara/dynamictp/logging/AbstractDtpLogging.java @@ -20,6 +20,7 @@ import org.dromara.dynamictp.common.properties.DtpProperties; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.dromara.dynamictp.common.manager.ContextManagerHelper; import java.io.File; import java.io.FileNotFoundException; @@ -43,7 +44,7 @@ public abstract class AbstractDtpLogging { static { try { - DtpProperties dtpProperties = ApplicationContextHolder.getBean(DtpProperties.class); + DtpProperties dtpProperties = ContextManagerHelper.getBean(DtpProperties.class); String logPath = dtpProperties.getLogPath(); if (StringUtils.isBlank(logPath)) { String userHome = System.getProperty("user.home"); @@ -52,7 +53,7 @@ public abstract class AbstractDtpLogging { System.setProperty(LOGGING_PATH, logPath); } - String appName = ApplicationContextHolder.getEnvironment().getProperty("spring.application.name"); + String appName = ContextManagerHelper.getEnvironmentProperty("spring.application.name"); appName = StringUtils.isNotBlank(appName) ? appName : "application"; System.setProperty(APP_NAME, appName); } catch (Exception e) { From ca1b3cc29e9178fcb01221a66e585144a0f6b6fe Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Tue, 16 Jul 2024 15:46:19 +0800 Subject: [PATCH 008/101] =?UTF-8?q?refactor=EF=BC=9A=E6=9B=BF=E6=8D=A2Spri?= =?UTF-8?q?ng=20Assert=E4=B8=BAGuava=E7=9A=84Preconditions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/dynamictp/common/util/StreamUtil.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/common/src/main/java/org/dromara/dynamictp/common/util/StreamUtil.java b/common/src/main/java/org/dromara/dynamictp/common/util/StreamUtil.java index 084730dda..ba290c1d0 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/util/StreamUtil.java +++ b/common/src/main/java/org/dromara/dynamictp/common/util/StreamUtil.java @@ -17,8 +17,9 @@ package org.dromara.dynamictp.common.util; +import com.google.common.base.Preconditions; import org.apache.commons.collections4.CollectionUtils; -import org.springframework.util.Assert; + import java.util.Collection; import java.util.Collections; @@ -48,7 +49,7 @@ private StreamUtil() { } */ public static List fetchProperty(Collection data, Function mapping) { - Assert.notNull(mapping, "mapping function must not be null"); + Preconditions.checkNotNull(mapping, "mapping function must not be null"); if (CollectionUtils.isEmpty(data)) { return Collections.emptyList(); } @@ -65,7 +66,7 @@ public static List fetchProperty(Collection data, * @return a map which key from list data and value is data */ public static Map toMap(Collection

coll, Function key) { - Assert.notNull(key, "key function must not be null"); + Preconditions.checkNotNull(key, "key function must not be null"); if (CollectionUtils.isEmpty(coll)) { return Collections.emptyMap(); } @@ -87,8 +88,8 @@ public static Map toMap(Collection

coll, Function key) { public static Map toMap(Collection list, Function key, Function value) { - Assert.notNull(key, "Key function must not be null"); - Assert.notNull(value, "Value function must not be null"); + Preconditions.checkNotNull(key, "Key function must not be null"); + Preconditions.checkNotNull(value, "Value function must not be null"); if (CollectionUtils.isEmpty(list)) { return Collections.emptyMap(); } @@ -108,7 +109,7 @@ public static Map toMap(Collection list, public static Map> toListMap(Collection ids, Collection list, Function key) { - Assert.notNull(key, "mapping function must not be null"); + Preconditions.checkNotNull(key, "mapping function must not be null"); if (CollectionUtils.isEmpty(ids) || CollectionUtils.isEmpty(list)) { return Collections.emptyMap(); } @@ -117,4 +118,4 @@ public static Map> toListMap(Collection ids, return resultMap; } -} +} \ No newline at end of file From bfe8fdaac36a69e93ba3240c9b2a60efdaf9d933 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Tue, 16 Jul 2024 15:50:25 +0800 Subject: [PATCH 009/101] =?UTF-8?q?refactor=EF=BC=9A=E6=9B=BF=E6=8D=A2Spri?= =?UTF-8?q?ng=20ReflectionUtils=E4=B8=BAApacheCommons=20Lang=E7=9A=84Field?= =?UTF-8?q?Utils?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dynamictp/common/util/ReflectionUtil.java | 37 ++++++++++++------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/common/src/main/java/org/dromara/dynamictp/common/util/ReflectionUtil.java b/common/src/main/java/org/dromara/dynamictp/common/util/ReflectionUtil.java index 520ddb666..68f90f6b7 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/util/ReflectionUtil.java +++ b/common/src/main/java/org/dromara/dynamictp/common/util/ReflectionUtil.java @@ -18,8 +18,10 @@ package org.dromara.dynamictp.common.util; import lombok.val; +import org.apache.commons.lang3.reflect.FieldUtils; import org.springframework.util.ReflectionUtils; + import java.lang.reflect.Field; import java.util.Objects; @@ -38,11 +40,12 @@ public static Object getFieldValue(String fieldName, Object targetObj) { if (Objects.isNull(field)) { return null; } - val fieldObj = ReflectionUtils.getField(field, targetObj); - if (Objects.isNull(fieldObj)) { + try { + val fieldObj = FieldUtils.readField(field, targetObj, true); + return fieldObj; + } catch (IllegalAccessException e) { return null; } - return fieldObj; } public static Object getFieldValue(Class targetClass, String fieldName, Object targetObj) { @@ -50,37 +53,43 @@ public static Object getFieldValue(Class targetClass, String fieldName, Objec if (Objects.isNull(field)) { return null; } - val fieldObj = ReflectionUtils.getField(field, targetObj); - if (Objects.isNull(fieldObj)) { + try { + val fieldObj = FieldUtils.readField(field, targetObj, true); + return fieldObj; + } catch (IllegalAccessException e) { return null; } - return fieldObj; } - public static void setFieldValue(String fieldName, Object targetObj, Object targetVal) - throws IllegalAccessException { + public static void setFieldValue(String fieldName, Object targetObj, Object targetVal) { val field = getField(targetObj.getClass(), fieldName); if (Objects.isNull(field)) { return; } - field.set(targetObj, targetVal); + try { + FieldUtils.writeField(field, targetObj, targetVal, true); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } } - public static void setFieldValue(Class targetClass, String fieldName, Object targetObj, Object targetVal) - throws IllegalAccessException { + public static void setFieldValue(Class targetClass, String fieldName, Object targetObj, Object targetVal) { val field = getField(targetClass, fieldName); if (Objects.isNull(field)) { return; } - field.set(targetObj, targetVal); + try { + FieldUtils.writeField(field, targetObj, targetVal, true); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } } public static Field getField(Class targetClass, String fieldName) { - Field field = ReflectionUtils.findField(targetClass, fieldName); + Field field = FieldUtils.getField(targetClass, fieldName, true); if (Objects.isNull(field)) { return null; } - ReflectionUtils.makeAccessible(field); return field; } } From 9af03b21944193d7e767a0f13d9661737a20c543 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Tue, 16 Jul 2024 15:53:19 +0800 Subject: [PATCH 010/101] =?UTF-8?q?refactor=EF=BC=9A=E6=9B=BF=E6=8D=A2Spri?= =?UTF-8?q?ng=20ReflectionUtils=E4=B8=BAApacheCommons=20Lang=E7=9A=84Field?= =?UTF-8?q?Utils?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/dromara/dynamictp/common/util/ReflectionUtil.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/common/src/main/java/org/dromara/dynamictp/common/util/ReflectionUtil.java b/common/src/main/java/org/dromara/dynamictp/common/util/ReflectionUtil.java index 68f90f6b7..c964686a7 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/util/ReflectionUtil.java +++ b/common/src/main/java/org/dromara/dynamictp/common/util/ReflectionUtil.java @@ -19,8 +19,6 @@ import lombok.val; import org.apache.commons.lang3.reflect.FieldUtils; -import org.springframework.util.ReflectionUtils; - import java.lang.reflect.Field; import java.util.Objects; From 44560fa5a4a58970b24ab8010ccee46ccd83c4bd Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Tue, 16 Jul 2024 16:05:38 +0800 Subject: [PATCH 011/101] =?UTF-8?q?refactor=EF=BC=9A=E6=9B=BF=E6=8D=A2Spri?= =?UTF-8?q?ng=20NonNull=E4=B8=BAlombok=E7=9A=84NonNull?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dromara/dynamictp/core/executor/eager/TaskQueue.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/org/dromara/dynamictp/core/executor/eager/TaskQueue.java b/core/src/main/java/org/dromara/dynamictp/core/executor/eager/TaskQueue.java index 9dd3331d2..42eb8af67 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/executor/eager/TaskQueue.java +++ b/core/src/main/java/org/dromara/dynamictp/core/executor/eager/TaskQueue.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.core.executor.eager; import org.dromara.dynamictp.common.queue.VariableLinkedBlockingQueue; -import org.springframework.lang.NonNull; +import lombok.NonNull; import java.util.concurrent.RejectedExecutionException; import java.util.concurrent.TimeUnit; From a7f4e3607229a7ca338534ad12792257e9e429f5 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Tue, 16 Jul 2024 16:08:48 +0800 Subject: [PATCH 012/101] =?UTF-8?q?refactor=EF=BC=9A=E6=9B=BF=E6=8D=A2Spri?= =?UTF-8?q?ng=20CollectionUtils=E4=B8=BAApache=20Commons=20Collections?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dromara/dynamictp/core/handler/CollectorHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/org/dromara/dynamictp/core/handler/CollectorHandler.java b/core/src/main/java/org/dromara/dynamictp/core/handler/CollectorHandler.java index 8275a3bc0..2ea3665d9 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/handler/CollectorHandler.java +++ b/core/src/main/java/org/dromara/dynamictp/core/handler/CollectorHandler.java @@ -26,7 +26,7 @@ import org.dromara.dynamictp.core.monitor.collector.MetricsCollector; import org.dromara.dynamictp.core.monitor.collector.MicroMeterCollector; import org.dromara.dynamictp.core.monitor.collector.jmx.JMXCollector; -import org.springframework.util.CollectionUtils; +import org.apache.commons.collections4.CollectionUtils; import java.util.List; import java.util.Map; From 636a79b63b1b8c181e77a708ec96e1f7244704aa Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Tue, 16 Jul 2024 16:13:10 +0800 Subject: [PATCH 013/101] =?UTF-8?q?refactor=EF=BC=9A=E6=9B=BF=E6=8D=A2Spri?= =?UTF-8?q?ng=20BeanUtils=E4=B8=BAApache=20Commons=20BeanUtils?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/monitor/collector/MicroMeterCollector.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/dromara/dynamictp/core/monitor/collector/MicroMeterCollector.java b/core/src/main/java/org/dromara/dynamictp/core/monitor/collector/MicroMeterCollector.java index 37b7f1d48..b834cea26 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/monitor/collector/MicroMeterCollector.java +++ b/core/src/main/java/org/dromara/dynamictp/core/monitor/collector/MicroMeterCollector.java @@ -23,7 +23,7 @@ import org.dromara.dynamictp.common.em.CollectorTypeEnum; import org.dromara.dynamictp.common.entity.ThreadPoolStats; import org.dromara.dynamictp.common.util.CommonUtil; -import org.springframework.beans.BeanUtils; +import org.apache.commons.beanutils.BeanUtils; import java.util.ArrayList; import java.util.List; @@ -61,7 +61,11 @@ public void collect(ThreadPoolStats threadPoolStats) { if (Objects.isNull(oldStats)) { GAUGE_CACHE.put(threadPoolStats.getPoolName(), threadPoolStats); } else { - BeanUtils.copyProperties(threadPoolStats, oldStats); + try { + BeanUtils.copyProperties(oldStats, threadPoolStats); + } catch (Exception e) { + log.error("Error copying properties", e); + } } gauge(GAUGE_CACHE.get(threadPoolStats.getPoolName())); } From 00fc0460ef63a2bec06516dd37a0174f06d079e5 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Tue, 16 Jul 2024 16:17:54 +0800 Subject: [PATCH 014/101] =?UTF-8?q?refactor=EF=BC=9A=E6=9B=BF=E6=8D=A2Spri?= =?UTF-8?q?ng=20BeanUtils=E4=B8=BAApache=20Commons=20BeanUtils?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dynamictp/core/support/ExecutorWrapper.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/org/dromara/dynamictp/core/support/ExecutorWrapper.java b/core/src/main/java/org/dromara/dynamictp/core/support/ExecutorWrapper.java index 2b8745ff7..7ddc2f3ba 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/support/ExecutorWrapper.java +++ b/core/src/main/java/org/dromara/dynamictp/core/support/ExecutorWrapper.java @@ -27,8 +27,9 @@ import org.dromara.dynamictp.core.notifier.capture.CapturedExecutor; import org.dromara.dynamictp.core.notifier.manager.AlarmManager; import org.dromara.dynamictp.core.support.task.wrapper.TaskWrapper; -import org.springframework.beans.BeanUtils; +import org.apache.commons.beanutils.BeanUtils; +import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.concurrent.Executor; @@ -81,7 +82,7 @@ public class ExecutorWrapper { /** * Aware names */ - private Set awareNames = Sets.newHashSet(); + private Set awareNames = new HashSet<>(); private ExecutorWrapper() { } @@ -139,7 +140,11 @@ public static ExecutorWrapper of(DtpExecutor executor) { */ public ExecutorWrapper capture() { ExecutorWrapper executorWrapper = new ExecutorWrapper(); - BeanUtils.copyProperties(this, executorWrapper); + try { + BeanUtils.copyProperties(executorWrapper, this); + } catch (Exception e) { + throw new RuntimeException("Failed to copy properties", e); + } executorWrapper.executor = new CapturedExecutor(this.getExecutor()); return executorWrapper; } From 3a97955ceafe10878339cb9f3e13067975ef1d6a Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Tue, 16 Jul 2024 16:21:32 +0800 Subject: [PATCH 015/101] =?UTF-8?q?refactor=EF=BC=9A=E6=9B=BF=E6=8D=A2Spri?= =?UTF-8?q?ng=20Assert=E4=B8=BAGuava=E7=9A=84Preconditions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dromara/dynamictp/core/support/ThreadPoolBuilder.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/dromara/dynamictp/core/support/ThreadPoolBuilder.java b/core/src/main/java/org/dromara/dynamictp/core/support/ThreadPoolBuilder.java index 5465a69e7..ca2f82e93 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/support/ThreadPoolBuilder.java +++ b/core/src/main/java/org/dromara/dynamictp/core/support/ThreadPoolBuilder.java @@ -37,7 +37,7 @@ import org.dromara.dynamictp.core.executor.priority.PriorityDtpExecutor; import org.dromara.dynamictp.core.reject.RejectHandlerGetter; import org.dromara.dynamictp.core.support.task.wrapper.TaskWrapper; -import org.springframework.util.Assert; +import com.google.common.base.Preconditions; import java.util.List; import java.util.Objects; @@ -578,7 +578,7 @@ public ExecutorService buildWithTtl() { * @return the newly created DtpExecutor instance */ private DtpExecutor buildDtpExecutor(ThreadPoolBuilder builder) { - Assert.notNull(builder.threadPoolName, "The thread pool name must not be null."); + Preconditions.checkNotNull(builder.threadPoolName, "The thread pool name must not be null."); DtpExecutor dtpExecutor = createInternal(builder); dtpExecutor.setThreadPoolName(builder.threadPoolName); dtpExecutor.allowCoreThreadTimeOut(builder.allowCoreThreadTimeOut); From 2e79723b70bf9314de28d844367afb38b297cb6a Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Wed, 17 Jul 2024 14:48:30 +0800 Subject: [PATCH 016/101] =?UTF-8?q?refactor=EF=BC=9A=E6=9B=BF=E6=8D=A2Spri?= =?UTF-8?q?ng=20Yaml=E4=B8=BASnakeYAML?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../parser/config/YamlConfigParser.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/common/src/main/java/org/dromara/dynamictp/common/parser/config/YamlConfigParser.java b/common/src/main/java/org/dromara/dynamictp/common/parser/config/YamlConfigParser.java index af7fd6d2d..7bb19f7b4 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/parser/config/YamlConfigParser.java +++ b/common/src/main/java/org/dromara/dynamictp/common/parser/config/YamlConfigParser.java @@ -17,12 +17,10 @@ package org.dromara.dynamictp.common.parser.config; +import org.apache.commons.lang3.StringUtils; import org.dromara.dynamictp.common.em.ConfigFileTypeEnum; import com.google.common.collect.Lists; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; -import org.springframework.core.io.ByteArrayResource; - +import org.yaml.snakeyaml.Yaml; import java.util.Collections; import java.util.List; import java.util.Map; @@ -45,12 +43,17 @@ public List types() { @Override public Map doParse(String content) { - if (StringUtils.isEmpty(content)) { return Collections.emptyMap(); } - YamlPropertiesFactoryBean bean = new YamlPropertiesFactoryBean(); - bean.setResources(new ByteArrayResource(content.getBytes())); - return bean.getObject(); + + Yaml yaml = new Yaml(); + Map loadedYaml = yaml.load(content); + + if (loadedYaml == null) { + return Collections.emptyMap(); + } + + return loadedYaml; } } From e65d96c0e0dcfca2f06fef5232fcb20dd4a59e34 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Fri, 19 Jul 2024 15:12:46 +0800 Subject: [PATCH 017/101] =?UTF-8?q?refactor=EF=BC=9A=E5=88=A0=E9=99=A4Asyn?= =?UTF-8?q?cTaskExecutor=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dromara/dynamictp/core/executor/DtpExecutor.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java b/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java index c9590c61c..386519f31 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java +++ b/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java @@ -54,7 +54,7 @@ **/ @Slf4j public class DtpExecutor extends ThreadPoolExecutor - implements TaskEnhanceAware, ExecutorAdapter, AsyncTaskExecutor { + implements TaskEnhanceAware, ExecutorAdapter{ /** * The name of the thread pool. @@ -182,8 +182,8 @@ public DtpExecutor(int corePoolSize, public ThreadPoolExecutor getOriginal() { return this; } - - @Override + + public void execute(Runnable task, long startTimeout) { execute(task); } From 733ce41fe7a8422aa0bb61bc8f4eac7be3c7a7bb Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Fri, 19 Jul 2024 15:15:50 +0800 Subject: [PATCH 018/101] =?UTF-8?q?refactor=EF=BC=9A=E5=88=A0=E9=99=A4Asyn?= =?UTF-8?q?cTaskExecutor=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/dromara/dynamictp/core/executor/DtpExecutor.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java b/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java index 386519f31..7ba945125 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java +++ b/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java @@ -53,8 +53,7 @@ * @since 1.0.0 **/ @Slf4j -public class DtpExecutor extends ThreadPoolExecutor - implements TaskEnhanceAware, ExecutorAdapter{ +public class DtpExecutor extends ThreadPoolExecutor implements TaskEnhanceAware, ExecutorAdapter{ /** * The name of the thread pool. From 98506d067cae274c2247612d65673b0b61a36497 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Fri, 19 Jul 2024 15:18:12 +0800 Subject: [PATCH 019/101] =?UTF-8?q?refactor=EF=BC=9A=E5=88=A0=E9=99=A4Asyn?= =?UTF-8?q?cTaskExecutor=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/dromara/dynamictp/core/executor/DtpExecutor.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java b/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java index 7ba945125..386519f31 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java +++ b/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java @@ -53,7 +53,8 @@ * @since 1.0.0 **/ @Slf4j -public class DtpExecutor extends ThreadPoolExecutor implements TaskEnhanceAware, ExecutorAdapter{ +public class DtpExecutor extends ThreadPoolExecutor + implements TaskEnhanceAware, ExecutorAdapter{ /** * The name of the thread pool. From 7545020e7f61155859ee25ad15a86abf749d02c2 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Fri, 19 Jul 2024 15:19:40 +0800 Subject: [PATCH 020/101] =?UTF-8?q?refactor=EF=BC=9A=E5=88=A0=E9=99=A4Asyn?= =?UTF-8?q?cTaskExecutor=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/dromara/dynamictp/core/executor/DtpExecutor.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java b/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java index 386519f31..7ba945125 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java +++ b/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java @@ -53,8 +53,7 @@ * @since 1.0.0 **/ @Slf4j -public class DtpExecutor extends ThreadPoolExecutor - implements TaskEnhanceAware, ExecutorAdapter{ +public class DtpExecutor extends ThreadPoolExecutor implements TaskEnhanceAware, ExecutorAdapter{ /** * The name of the thread pool. From 052ff31b5db3dc95a4e3dfc4046dc7c326769c4a Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Fri, 19 Jul 2024 15:39:15 +0800 Subject: [PATCH 021/101] =?UTF-8?q?refactor=EF=BC=9A=E5=9F=BA=E6=9C=AC?= =?UTF-8?q?=E5=AE=8C=E6=88=90spring=E6=A8=A1=E5=9D=97=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/common/AbstractDtpAdapter.java | 7 +- .../adapter/common/DtpAdapterListener.java | 53 ++------- .../dubbo/alibaba/AlibabaDubboDtpAdapter.java | 3 +- .../dubbo/apache/ApacheDubboDtpAdapter.java | 3 +- .../DtpMetricsPublisherThreadPool.java | 3 +- .../adapter/hystrix/HystrixDtpAdapter.java | 3 +- .../adapter/motan/MotanDtpAdapter.java | 3 +- .../adapter/okhttp3/Okhttp3DtpAdapter.java | 5 +- .../adapter/rabbitmq/RabbitMqDtpAdapter.java | 3 +- .../rocketmq/AliyunOnsRocketMqAdapter.java | 3 +- common/pom.xml | 4 + .../common/manager/ContextManager.java | 2 + .../common/manager/ContextManagerHelper.java | 8 ++ .../dynamictp/common/util/CommonUtil.java | 15 +-- core/pom.xml | 6 + .../dromara/dynamictp/core/DtpRegistry.java | 18 ++- .../dynamictp/core/monitor/DtpMonitor.java | 23 ++-- .../core/refresher/AbstractRefresher.java | 21 ++-- .../core/spring/GuiceContextHolder.java | 55 --------- .../core/support/DtpBannerPrinter.java | 9 +- ...ara.dynamictp.common.manager.ContextHolder | 1 - .../notify/email/DtpEmailNotifier.java | 4 +- .../yunzhijia/DtpYunZhiJiaNotifier.java | 3 +- .../spring/ex/AbstractSpringRefresher.java | 33 ++++++ .../spring/ex/DtpLifecycleSpringAdapter.java | 46 -------- .../OnceApplicationContextEventListener.java | 104 ------------------ .../spring/ex/SpringContextHolder.java | 18 ++- .../dynamictp/spring/ex/SpringExecutor.java | 30 ----- .../AbstractWebServerDtpAdapter.java | 6 +- .../starter/common/monitor/DtpEndpoint.java | 3 +- .../refresher/CloudConsulRefresher.java | 3 +- .../refresher/CloudHuaweiRefresher.java | 3 +- .../nacos/refresher/CloudNacosRefresher.java | 3 +- .../refresher/CloudPolarisRefresher.java | 3 +- .../refresher/CloudZookeeperRefresher.java | 3 +- .../apollo/refresher/ApolloRefresher.java | 3 +- .../starter/etcd/refresher/EtcdRefresher.java | 3 +- .../nacos/refresher/NacosRefresher.java | 3 +- .../refresher/ZookeeperRefresher.java | 3 +- test/pom.xml | 7 ++ test/test-configcenter/pom.xml | 7 ++ .../test/configcenter/DtpBaseTest.java | 6 +- .../nacos/NacosRefresherTest.java | 10 ++ .../core/notify/AbstractDtpNotifierTest.java | 2 +- .../test/resources/META-INF/spring.factories | 4 + 45 files changed, 211 insertions(+), 347 deletions(-) delete mode 100644 core/src/main/java/org/dromara/dynamictp/core/spring/GuiceContextHolder.java delete mode 100644 core/src/main/resources/META-INF/services/org.dromara.dynamictp.common.manager.ContextHolder create mode 100644 spring/src/main/java/org/dromara/dynamictp/spring/ex/AbstractSpringRefresher.java delete mode 100644 spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpLifecycleSpringAdapter.java delete mode 100644 spring/src/main/java/org/dromara/dynamictp/spring/ex/OnceApplicationContextEventListener.java delete mode 100644 spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringExecutor.java create mode 100644 test/test-core/src/test/resources/META-INF/spring.factories diff --git a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java index da6e25d8c..6071c5bf6 100644 --- a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java +++ b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java @@ -31,6 +31,7 @@ import org.dromara.dynamictp.common.entity.ThreadPoolStats; import org.dromara.dynamictp.common.entity.TpExecutorProps; import org.dromara.dynamictp.common.entity.TpMainFields; +import org.dromara.dynamictp.common.manager.ContextManagerHelper; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.common.util.ReflectionUtil; import org.dromara.dynamictp.common.util.StreamUtil; @@ -42,7 +43,7 @@ import org.dromara.dynamictp.core.support.ThreadPoolExecutorProxy; import org.dromara.dynamictp.core.support.task.wrapper.TaskWrapper; import org.dromara.dynamictp.core.support.task.wrapper.TaskWrappers; -import org.dromara.dynamictp.spring.ex.OnceApplicationContextEventListener; +import org.dromara.dynamictp.spring.ex.SpringContextHolder; import org.springframework.context.event.ContextRefreshedEvent; import java.util.Collections; @@ -66,7 +67,7 @@ * @since 1.0.6 */ @Slf4j -public abstract class AbstractDtpAdapter extends OnceApplicationContextEventListener implements DtpAdapter { +public abstract class AbstractDtpAdapter extends SpringContextHolder implements DtpAdapter { private static final Equator EQUATOR = new GetterBaseEquator(); @@ -75,7 +76,7 @@ public abstract class AbstractDtpAdapter extends OnceApplicationContextEventList @Override protected void onContextRefreshedEvent(ContextRefreshedEvent event) { try { - DtpProperties dtpProperties = ApplicationContextHolder.getBean(DtpProperties.class); + DtpProperties dtpProperties = ContextManagerHelper.getBean(DtpProperties.class); initialize(); afterInitialize(); refresh(dtpProperties); diff --git a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java index 05f879344..be7cd4396 100644 --- a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java +++ b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java @@ -17,9 +17,12 @@ package org.dromara.dynamictp.adapter.common; +import com.google.common.eventbus.Subscribe; import org.dromara.dynamictp.common.event.AlarmCheckEvent; import org.dromara.dynamictp.common.event.CollectEvent; import org.dromara.dynamictp.common.event.RefreshEvent; +import org.dromara.dynamictp.common.manager.ContextManagerHelper; +import org.dromara.dynamictp.common.manager.RefreshedEvent; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.core.handler.CollectorHandler; import org.dromara.dynamictp.core.notifier.manager.AlarmManager; @@ -41,61 +44,29 @@ * @since 1.0.6 */ @Slf4j -public class DtpAdapterListener implements GenericApplicationListener { +public class DtpAdapterListener{ - @Override - public boolean supportsEventType(ResolvableType resolvableType) { - Class type = resolvableType.getRawClass(); - if (type != null) { - return RefreshEvent.class.isAssignableFrom(type) - || CollectEvent.class.isAssignableFrom(type) - || AlarmCheckEvent.class.isAssignableFrom(type); - } - return false; - } - - @Override - public void onApplicationEvent(@NonNull ApplicationEvent event) { + @Subscribe + public void handleRefreshedEvent(RefreshedEvent event) { try { if (event instanceof RefreshEvent) { - doRefresh(((RefreshEvent) event).getDtpProperties()); + doRefresh(event.getDtpProperties()); } else if (event instanceof CollectEvent) { - doCollect(((CollectEvent) event).getDtpProperties()); + doCollect(event.getDtpProperties()); } else if (event instanceof AlarmCheckEvent) { - doAlarmCheck(((AlarmCheckEvent) event).getDtpProperties()); + doAlarmCheck(event.getDtpProperties()); } } catch (Exception e) { log.error("DynamicTp adapter, event handle failed.", e); } } - /** - * Compatible with lower versions of spring. - * - * @param sourceType sourceType - * @return true if support - */ - @Override - public boolean supportsSourceType(@Nullable Class sourceType) { - return true; - } - - /** - * Compatible with lower versions of spring. - * - * @return order - */ - @Override - public int getOrder() { - return LOWEST_PRECEDENCE; - } - /** * Do collect thread pool stats. * @param dtpProperties dtpProperties */ protected void doCollect(DtpProperties dtpProperties) { - val handlerMap = ApplicationContextHolder.getBeansOfType(DtpAdapter.class); + val handlerMap = ContextManagerHelper.getBeansOfType(DtpAdapter.class); if (CollectionUtils.isEmpty(handlerMap)) { return; } @@ -108,7 +79,7 @@ protected void doCollect(DtpProperties dtpProperties) { * @param dtpProperties dtpProperties */ protected void doRefresh(DtpProperties dtpProperties) { - val handlerMap = ApplicationContextHolder.getBeansOfType(DtpAdapter.class); + val handlerMap = ContextManagerHelper.getBeansOfType(DtpAdapter.class); if (CollectionUtils.isEmpty(handlerMap)) { return; } @@ -120,7 +91,7 @@ protected void doRefresh(DtpProperties dtpProperties) { * @param dtpProperties dtpProperties */ protected void doAlarmCheck(DtpProperties dtpProperties) { - val handlerMap = ApplicationContextHolder.getBeansOfType(DtpAdapter.class); + val handlerMap = ContextManagerHelper.getBeansOfType(DtpAdapter.class); if (CollectionUtils.isEmpty(handlerMap)) { return; } diff --git a/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/alibaba/AlibabaDubboDtpAdapter.java b/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/alibaba/AlibabaDubboDtpAdapter.java index c9021281e..d245b88b7 100644 --- a/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/alibaba/AlibabaDubboDtpAdapter.java +++ b/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/alibaba/AlibabaDubboDtpAdapter.java @@ -23,6 +23,7 @@ import lombok.val; import org.apache.commons.collections4.CollectionUtils; import org.dromara.dynamictp.adapter.common.AbstractDtpAdapter; +import org.dromara.dynamictp.common.manager.ContextManagerHelper; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.jvmti.JVMTI; import org.springframework.beans.factory.InitializingBean; @@ -58,7 +59,7 @@ public void afterPropertiesSet() throws Exception { while (!registered.get()) { try { Thread.sleep(1000); - DtpProperties dtpProperties = ApplicationContextHolder.getBean(DtpProperties.class); + DtpProperties dtpProperties = ContextManagerHelper.getBean(DtpProperties.class); this.initialize(); this.refresh(dtpProperties); } catch (Throwable e) { } diff --git a/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/apache/ApacheDubboDtpAdapter.java b/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/apache/ApacheDubboDtpAdapter.java index 8d347c660..65525a42e 100644 --- a/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/apache/ApacheDubboDtpAdapter.java +++ b/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/apache/ApacheDubboDtpAdapter.java @@ -32,6 +32,7 @@ import org.apache.dubbo.remoting.transport.dispatcher.WrappedChannelHandler; import org.apache.dubbo.rpc.model.ApplicationModel; import org.dromara.dynamictp.adapter.common.AbstractDtpAdapter; +import org.dromara.dynamictp.common.manager.ContextManagerHelper; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.common.util.ReflectionUtil; import org.dromara.dynamictp.core.support.ThreadPoolExecutorProxy; @@ -68,7 +69,7 @@ public class ApacheDubboDtpAdapter extends AbstractDtpAdapter { public void onApplicationEvent(ApplicationEvent event) { if (event instanceof ServiceBeanExportedEvent) { try { - DtpProperties dtpProperties = ApplicationContextHolder.getBean(DtpProperties.class); + DtpProperties dtpProperties = ContextManagerHelper.getBean(DtpProperties.class); initialize(); refresh(dtpProperties); } catch (Exception e) { diff --git a/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/DtpMetricsPublisherThreadPool.java b/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/DtpMetricsPublisherThreadPool.java index c9b6bf028..40ac12ff7 100644 --- a/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/DtpMetricsPublisherThreadPool.java +++ b/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/DtpMetricsPublisherThreadPool.java @@ -25,6 +25,7 @@ import lombok.extern.slf4j.Slf4j; import lombok.val; import org.dromara.dynamictp.common.entity.TpExecutorProps; +import org.dromara.dynamictp.common.manager.ContextManagerHelper; import org.dromara.dynamictp.common.util.ReflectionUtil; import java.util.Objects; @@ -69,7 +70,7 @@ public DtpMetricsPublisherThreadPool( @Override public void initialize() { metricsPublisherForThreadPool.initialize(); - HystrixDtpAdapter hystrixTpHandler = ApplicationContextHolder.getBean(HystrixDtpAdapter.class); + HystrixDtpAdapter hystrixTpHandler = ContextManagerHelper.getBean(HystrixDtpAdapter.class); hystrixTpHandler.cacheMetricsPublisher(threadPoolKey.name(), this); hystrixTpHandler.register(threadPoolKey.name(), metrics); } diff --git a/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/HystrixDtpAdapter.java b/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/HystrixDtpAdapter.java index fab1dc4d7..657f1f8f3 100644 --- a/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/HystrixDtpAdapter.java +++ b/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/HystrixDtpAdapter.java @@ -30,6 +30,7 @@ import org.dromara.dynamictp.adapter.common.AbstractDtpAdapter; import org.dromara.dynamictp.common.entity.NotifyPlatform; import org.dromara.dynamictp.common.entity.TpExecutorProps; +import org.dromara.dynamictp.common.manager.ContextManagerHelper; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.common.util.StreamUtil; import org.dromara.dynamictp.core.support.ExecutorWrapper; @@ -80,7 +81,7 @@ public void register(String poolName, HystrixThreadPoolMetrics metrics) { return; } - DtpProperties dtpProperties = ApplicationContextHolder.getBean(DtpProperties.class); + DtpProperties dtpProperties = ContextManagerHelper.getBean(DtpProperties.class); val prop = StreamUtil.toMap(dtpProperties.getHystrixTp(), TpExecutorProps::getThreadPoolName); String tpName = TP_PREFIX + "#" + poolName; enhanceOriginExecutor(tpName, threadPoolExecutor, THREAD_POOL_FIELD, metrics); diff --git a/adapter/adapter-motan/src/main/java/org/dromara/dynamictp/adapter/motan/MotanDtpAdapter.java b/adapter/adapter-motan/src/main/java/org/dromara/dynamictp/adapter/motan/MotanDtpAdapter.java index 2a70b41ad..a65081f69 100644 --- a/adapter/adapter-motan/src/main/java/org/dromara/dynamictp/adapter/motan/MotanDtpAdapter.java +++ b/adapter/adapter-motan/src/main/java/org/dromara/dynamictp/adapter/motan/MotanDtpAdapter.java @@ -28,6 +28,7 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; import org.dromara.dynamictp.adapter.common.AbstractDtpAdapter; +import org.dromara.dynamictp.common.manager.ContextManagerHelper; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.common.util.ReflectionUtil; @@ -64,7 +65,7 @@ protected String getTpPrefix() { protected void initialize() { super.initialize(); - val beans = ApplicationContextHolder.getBeansOfType(ServiceConfigBean.class); + val beans = ContextManagerHelper.getBeansOfType(ServiceConfigBean.class); if (MapUtils.isEmpty(beans)) { log.warn("Cannot find beans of type ServiceConfigBean."); return; diff --git a/adapter/adapter-okhttp3/src/main/java/org/dromara/dynamictp/adapter/okhttp3/Okhttp3DtpAdapter.java b/adapter/adapter-okhttp3/src/main/java/org/dromara/dynamictp/adapter/okhttp3/Okhttp3DtpAdapter.java index 1e3db3bd6..6eea786f9 100644 --- a/adapter/adapter-okhttp3/src/main/java/org/dromara/dynamictp/adapter/okhttp3/Okhttp3DtpAdapter.java +++ b/adapter/adapter-okhttp3/src/main/java/org/dromara/dynamictp/adapter/okhttp3/Okhttp3DtpAdapter.java @@ -23,7 +23,8 @@ import org.apache.commons.collections4.MapUtils; import org.dromara.dynamictp.adapter.common.AbstractDtpAdapter; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.spring.ex.SpringContextHolder; +import org.dromara.dynamictp.common.manager.ContextManagerHelper; + import java.util.concurrent.ThreadPoolExecutor; /** @@ -52,7 +53,7 @@ protected String getTpPrefix() { @Override protected void initialize() { super.initialize(); - val beans = SpringContextHolder.getInstance().getBeansOfType(OkHttpClient.class); + val beans = ContextManagerHelper.getBeansOfType(OkHttpClient.class); if (MapUtils.isEmpty(beans)) { log.warn("Cannot find beans of type OkHttpClient."); return; diff --git a/adapter/adapter-rabbitmq/src/main/java/org/dromara/dynamictp/adapter/rabbitmq/RabbitMqDtpAdapter.java b/adapter/adapter-rabbitmq/src/main/java/org/dromara/dynamictp/adapter/rabbitmq/RabbitMqDtpAdapter.java index d7f4056a6..f2968ceb6 100644 --- a/adapter/adapter-rabbitmq/src/main/java/org/dromara/dynamictp/adapter/rabbitmq/RabbitMqDtpAdapter.java +++ b/adapter/adapter-rabbitmq/src/main/java/org/dromara/dynamictp/adapter/rabbitmq/RabbitMqDtpAdapter.java @@ -21,6 +21,7 @@ import lombok.val; import org.apache.commons.collections4.MapUtils; import org.dromara.dynamictp.adapter.common.AbstractDtpAdapter; +import org.dromara.dynamictp.common.manager.ContextManagerHelper; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.common.util.ReflectionUtil; import org.springframework.amqp.rabbit.connection.AbstractConnectionFactory; @@ -57,7 +58,7 @@ protected String getTpPrefix() { protected void initialize() { super.initialize(); - val beans = ApplicationContextHolder.getBeansOfType(AbstractConnectionFactory.class); + val beans = ContextManagerHelper.getBeansOfType(AbstractConnectionFactory.class); if (MapUtils.isEmpty(beans)) { log.warn("Cannot find beans of type AbstractConnectionFactory."); return; diff --git a/adapter/adapter-rocketmq/src/main/java/org/dromara/dynamictp/adapter/rocketmq/AliyunOnsRocketMqAdapter.java b/adapter/adapter-rocketmq/src/main/java/org/dromara/dynamictp/adapter/rocketmq/AliyunOnsRocketMqAdapter.java index e64e0cbd5..263a833e2 100644 --- a/adapter/adapter-rocketmq/src/main/java/org/dromara/dynamictp/adapter/rocketmq/AliyunOnsRocketMqAdapter.java +++ b/adapter/adapter-rocketmq/src/main/java/org/dromara/dynamictp/adapter/rocketmq/AliyunOnsRocketMqAdapter.java @@ -27,6 +27,7 @@ import lombok.val; import org.apache.commons.collections4.MapUtils; import org.dromara.dynamictp.adapter.common.AbstractDtpAdapter; +import org.dromara.dynamictp.common.manager.ContextManagerHelper; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.common.util.ReflectionUtil; @@ -62,7 +63,7 @@ protected void initialize() { private void adaptConsumerExecutors() { // get consumer beans - val beans = ApplicationContextHolder.getBeansOfType(Consumer.class); + val beans = ContextManagerHelper.getBeansOfType(Consumer.class); if (MapUtils.isEmpty(beans)) { log.warn("Cannot find beans of type Consumer."); return; diff --git a/common/pom.xml b/common/pom.xml index d3b3951b9..14f299e8b 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -60,5 +60,9 @@ cglib cglib + + org.yaml + snakeyaml + diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java index ecea7ec7a..87fa62797 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java @@ -11,4 +11,6 @@ public interface ContextManager { Object getEnvironment(); String getEnvironmentProperty(String key); String getEnvironmentProperty(String key, String defaultValue); + String[] getActiveProfiles(); + String[] getDefaultProfiles(); } \ No newline at end of file diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java index fd2f14557..53ca35758 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java @@ -51,4 +51,12 @@ public static String getEnvironmentProperty(String key, String defaultValue) { return CONTEXT_MANAGER.getEnvironmentProperty(key, defaultValue); } + public static String[] getActiveProfiles() { + return CONTEXT_MANAGER.getActiveProfiles(); + } + + public static String[] getDefaultProfiles() { + return CONTEXT_MANAGER.getDefaultProfiles(); + } + } \ No newline at end of file diff --git a/common/src/main/java/org/dromara/dynamictp/common/util/CommonUtil.java b/common/src/main/java/org/dromara/dynamictp/common/util/CommonUtil.java index 3ca0a5af0..24ee13316 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/util/CommonUtil.java +++ b/common/src/main/java/org/dromara/dynamictp/common/util/CommonUtil.java @@ -44,12 +44,9 @@ private CommonUtil() { private static final ServiceInstance SERVICE_INSTANCE; static { - Environment environment = (Environment) ContextManagerHelper.getEnvironment(); + String appName = ContextManagerHelper.getEnvironmentProperty("spring.application.name", "application"); - String appName = environment.getProperty("spring.application.name"); - appName = StringUtils.isNoneBlank(appName) ? appName : "application"; - - String portStr = environment.getProperty("server.port"); + String portStr = ContextManagerHelper.getEnvironmentProperty("server.port", "0"); int port = StringUtils.isNotBlank(portStr) ? Integer.parseInt(portStr) : 0; String address = null; @@ -62,12 +59,12 @@ private CommonUtil() { String env = DtpProperties.getInstance().getEnv(); if (StringUtils.isBlank(env)) { // fix #I8SSGQ - env = environment.getProperty("spring.profiles.active"); + env = ContextManagerHelper.getEnvironmentProperty("spring.profiles.active"); } if (StringUtils.isBlank(env)) { - String[] profiles = environment.getActiveProfiles(); + String[] profiles = ContextManagerHelper.getActiveProfiles(); if (profiles.length < 1) { - profiles = environment.getDefaultProfiles(); + profiles = ContextManagerHelper.getDefaultProfiles(); } if (profiles.length >= 1) { env = profiles[0]; @@ -99,4 +96,4 @@ private static InetAddress getLocalHostExactAddress() throws SocketException, Un } return candidateAddress == null ? InetAddress.getLocalHost() : candidateAddress; } -} +} \ No newline at end of file diff --git a/core/pom.xml b/core/pom.xml index 1ac766400..7abc286ae 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -68,6 +68,12 @@ governator 1.17.12 + + commons-beanutils + commons-beanutils + 1.9.4 + compile + diff --git a/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java b/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java index 6c1054ec8..0c3cab5c1 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java +++ b/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java @@ -21,6 +21,7 @@ import com.github.dadiyang.equator.FieldInfo; import com.github.dadiyang.equator.GetterBaseEquator; import com.google.common.collect.Sets; +import com.google.common.eventbus.Subscribe; import lombok.extern.slf4j.Slf4j; import lombok.val; import org.apache.commons.collections4.CollectionUtils; @@ -28,6 +29,8 @@ import org.dromara.dynamictp.common.entity.DtpExecutorProps; import org.dromara.dynamictp.common.entity.TpMainFields; import org.dromara.dynamictp.common.ex.DtpException; +import org.dromara.dynamictp.common.manager.EventBusManager; +import org.dromara.dynamictp.common.manager.RefreshedEvent; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.common.queue.MemorySafeLinkedBlockingQueue; import org.dromara.dynamictp.common.queue.VariableLinkedBlockingQueue; @@ -42,7 +45,7 @@ import org.dromara.dynamictp.core.support.ExecutorWrapper; import org.dromara.dynamictp.core.support.task.wrapper.TaskWrapper; import org.dromara.dynamictp.core.support.task.wrapper.TaskWrappers; -import org.springframework.context.event.ContextRefreshedEvent; + import java.util.Collections; import java.util.List; @@ -63,7 +66,7 @@ * @since 1.0.0 **/ @Slf4j -public class DtpRegistry extends OnceApplicationContextEventListener { +public class DtpRegistry { /** * Maintain all automatically registered and manually registered Executors. @@ -76,9 +79,16 @@ public class DtpRegistry extends OnceApplicationContextEventListener { private static final Equator EQUATOR = new GetterBaseEquator(); private static DtpProperties dtpProperties; + private static DtpRegistry INSTANCE; public DtpRegistry(DtpProperties dtpProperties) { DtpRegistry.dtpProperties = dtpProperties; + INSTANCE = this; + EventBusManager.register(this); + } + + public static void destroy() { + EventBusManager.unregister(INSTANCE); } /** @@ -326,8 +336,8 @@ private static void updateQueueProps(ExecutorAdapter executor, DtpExecutorPro props.getThreadPoolName(), blockingQueue.getClass().getSimpleName()); } - @Override - protected void onContextRefreshedEvent(ContextRefreshedEvent event) { + @Subscribe + public void onContextRefreshedEvent(RefreshedEvent event) { Set remoteExecutors = Collections.emptySet(); if (CollectionUtils.isNotEmpty(dtpProperties.getExecutors())) { remoteExecutors = dtpProperties.getExecutors().stream() diff --git a/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java b/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java index 1578e449c..651e30c73 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java +++ b/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java @@ -17,18 +17,24 @@ package org.dromara.dynamictp.core.monitor; + +import com.google.common.eventbus.Subscribe; import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.common.entity.ThreadPoolStats; import org.dromara.dynamictp.common.event.AlarmCheckEvent; import org.dromara.dynamictp.common.event.CollectEvent; +import org.dromara.dynamictp.common.manager.EventBusManager; + +import org.dromara.dynamictp.common.manager.RefreshedEvent; import org.dromara.dynamictp.common.properties.DtpProperties; + import org.dromara.dynamictp.core.DtpRegistry; import org.dromara.dynamictp.core.converter.ExecutorConverter; import org.dromara.dynamictp.core.handler.CollectorHandler; import org.dromara.dynamictp.core.notifier.manager.AlarmManager; import org.dromara.dynamictp.core.support.ExecutorWrapper; import org.dromara.dynamictp.core.support.ThreadPoolCreator; -import org.springframework.context.event.ContextRefreshedEvent; + import java.util.Set; import java.util.concurrent.ScheduledExecutorService; @@ -44,10 +50,10 @@ * @since 1.0.0 **/ @Slf4j -public class DtpMonitor extends OnceApplicationContextEventListener { +public class DtpMonitor{ private static final ScheduledExecutorService MONITOR_EXECUTOR = ThreadPoolCreator.newScheduledThreadPool("dtp-monitor", 1); - + private static DtpMonitor INSTANCE; private final DtpProperties dtpProperties; private ScheduledFuture monitorFuture; @@ -56,10 +62,12 @@ public class DtpMonitor extends OnceApplicationContextEventListener { public DtpMonitor(DtpProperties dtpProperties) { this.dtpProperties = dtpProperties; + INSTANCE = this; + EventBusManager.register(this); } - @Override - protected synchronized void onContextRefreshedEvent(ContextRefreshedEvent event) { + @Subscribe + public synchronized void onContextRefreshedEvent(RefreshedEvent event) { // if monitorInterval is same as before, do nothing. if (monitorInterval == dtpProperties.getMonitorInterval()) { return; @@ -108,15 +116,16 @@ private void doCollect(ThreadPoolStats threadPoolStats) { private void publishCollectEvent() { CollectEvent event = new CollectEvent(this, dtpProperties); - ApplicationContextHolder.publishEvent(event); + EventBusManager.post(event); } private void publishAlarmCheckEvent() { AlarmCheckEvent event = new AlarmCheckEvent(this, dtpProperties); - ApplicationContextHolder.publishEvent(event); + EventBusManager.post(event); } public static void destroy() { MONITOR_EXECUTOR.shutdownNow(); + EventBusManager.unregister(INSTANCE); } } diff --git a/core/src/main/java/org/dromara/dynamictp/core/refresher/AbstractRefresher.java b/core/src/main/java/org/dromara/dynamictp/core/refresher/AbstractRefresher.java index 313f42b72..860a8114e 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/refresher/AbstractRefresher.java +++ b/core/src/main/java/org/dromara/dynamictp/core/refresher/AbstractRefresher.java @@ -28,14 +28,14 @@ import org.dromara.dynamictp.core.DtpRegistry; import org.dromara.dynamictp.core.handler.ConfigHandler; import org.dromara.dynamictp.core.support.BinderHelper; -import org.springframework.context.EnvironmentAware; -import org.springframework.core.env.Environment; + import java.io.IOException; import java.util.Map; import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; +import org.dromara.dynamictp.common.manager.EventBusManager; import static org.dromara.dynamictp.common.constant.DynamicTpConst.MAIN_PROPERTIES_PREFIX; @@ -46,24 +46,17 @@ * @since 1.0.0 **/ @Slf4j -public abstract class AbstractRefresher implements Refresher, EnvironmentAware { - - protected final DtpProperties dtpProperties; +public abstract class AbstractRefresher implements Refresher{ - protected Environment environment; + public final DtpProperties dtpProperties; protected AbstractRefresher(DtpProperties dtpProperties) { this.dtpProperties = dtpProperties; - } - - @Override - public void setEnvironment(Environment environment) { - this.environment = environment; + EventBusManager.register(this); } @Override public void refresh(String content, ConfigFileTypeEnum fileType) { - if (StringUtils.isBlank(content) || Objects.isNull(fileType)) { log.warn("DynamicTp refresh, empty content or null fileType."); return; @@ -87,7 +80,7 @@ protected void refresh(Map properties) { doRefresh(dtpProperties); } - protected void refresh(Environment environment) { + protected void refresh(Object environment) { BinderHelper.bindDtpProperties(environment, dtpProperties); doRefresh(dtpProperties); } @@ -109,6 +102,6 @@ protected boolean needRefresh(Set changedKeys) { private void publishEvent(DtpProperties dtpProperties) { RefreshEvent event = new RefreshEvent(this, dtpProperties); - ApplicationContextHolder.publishEvent(event); + EventBusManager.post(event); } } diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/GuiceContextHolder.java b/core/src/main/java/org/dromara/dynamictp/core/spring/GuiceContextHolder.java deleted file mode 100644 index a47f0dc56..000000000 --- a/core/src/main/java/org/dromara/dynamictp/core/spring/GuiceContextHolder.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.dromara.dynamictp.core.spring; -import com.google.inject.Guice; -import com.google.inject.Injector; -import com.google.inject.Module; -import com.google.inject.Key; - -import java.util.Map; -import java.util.Objects; -import java.util.stream.Collectors; - -/** - * GuiceContextHolder - * - * Provides similar functionality to Spring's ApplicationContextHolder using Google Guice. - */ -public class GuiceContextHolder { - - private static Injector injector; - - private GuiceContextHolder() { - // Private constructor to prevent instantiation - } - - public static void setInjector(Module... modules) { - if (injector == null) { - synchronized (GuiceContextHolder.class) { - if (injector == null) { - injector = Guice.createInjector(modules); - } - } - } - } - - public static T getBean(Class clazz) { - return getInstance().getInstance(clazz); - } - - public static T getBean(Key key) { - return getInstance().getInstance(key); - } - - public static Map, T> getBeansOfType(Class clazz) { - return getInstance().getAllBindings().entrySet().stream() - .filter(entry -> clazz.isAssignableFrom(entry.getKey().getTypeLiteral().getRawType())) - .collect(Collectors.toMap(Map.Entry::getKey, entry -> (T) entry.getValue().getProvider().get())); - } - - private static Injector getInstance() { - if (injector == null) { - throw new IllegalStateException("Injector is not initialized. Please set the injector before using it."); - } - return injector; - } -} - diff --git a/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java b/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java index c1f8b5f93..adc2d54ac 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java +++ b/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java @@ -18,6 +18,7 @@ package org.dromara.dynamictp.core.support; import org.dromara.dynamictp.common.constant.DynamicTpConst; +import org.dromara.dynamictp.common.manager.ContextManagerHelper; import org.dromara.dynamictp.common.util.VersionUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.context.EnvironmentAware; @@ -30,7 +31,7 @@ * @since 1.0.0 **/ @Slf4j -public class DtpBannerPrinter implements EnvironmentAware { +public class DtpBannerPrinter{ private static final String NAME = " :: Dynamic Thread Pool :: "; @@ -45,10 +46,8 @@ public class DtpBannerPrinter implements EnvironmentAware { " __/ | | | \n" + " |___/ |_| "; - @Override - public void setEnvironment(Environment environment) { - boolean enable = environment.getProperty(DynamicTpConst.BANNER_ENABLED_PROP, - boolean.class, true); + public static void printBanner() { + boolean enable = Boolean.parseBoolean(ContextManagerHelper.getEnvironmentProperty(DynamicTpConst.BANNER_ENABLED_PROP, "true")); if (enable) { log.info(BANNER + "\n" + NAME + "\n :: " + VersionUtil.getVersion() + " :: \n" + SITE + "\n"); } diff --git a/core/src/main/resources/META-INF/services/org.dromara.dynamictp.common.manager.ContextHolder b/core/src/main/resources/META-INF/services/org.dromara.dynamictp.common.manager.ContextHolder deleted file mode 100644 index a8384283f..000000000 --- a/core/src/main/resources/META-INF/services/org.dromara.dynamictp.common.manager.ContextHolder +++ /dev/null @@ -1 +0,0 @@ -org.dromara.dynamictp.core.support.BinderHelper \ No newline at end of file diff --git a/extension/extension-notify-email/src/main/java/org/dromara/dynamictp/extension/notify/email/DtpEmailNotifier.java b/extension/extension-notify-email/src/main/java/org/dromara/dynamictp/extension/notify/email/DtpEmailNotifier.java index 3adbbfeba..ca1aa3049 100644 --- a/extension/extension-notify-email/src/main/java/org/dromara/dynamictp/extension/notify/email/DtpEmailNotifier.java +++ b/extension/extension-notify-email/src/main/java/org/dromara/dynamictp/extension/notify/email/DtpEmailNotifier.java @@ -26,6 +26,8 @@ import org.dromara.dynamictp.common.entity.NotifyItem; import org.dromara.dynamictp.common.entity.NotifyPlatform; import org.dromara.dynamictp.common.entity.TpMainFields; +import org.dromara.dynamictp.common.manager.ContextManagerHelper; +import org.dromara.dynamictp.common.util.CommonUtil; import org.dromara.dynamictp.common.util.DateUtil; import org.dromara.dynamictp.core.notifier.AbstractDtpNotifier; import org.dromara.dynamictp.core.notifier.alarm.AlarmCounter; @@ -52,7 +54,7 @@ public class DtpEmailNotifier extends AbstractDtpNotifier { public DtpEmailNotifier() { - super(ApplicationContextHolder.getBean(EmailNotifier.class)); + super(ContextManagerHelper.getBean(EmailNotifier.class)); } @Override diff --git a/extension/extension-notify-yunzhijia/src/main/java/org/dromara/dynamictp/extension/notify/yunzhijia/DtpYunZhiJiaNotifier.java b/extension/extension-notify-yunzhijia/src/main/java/org/dromara/dynamictp/extension/notify/yunzhijia/DtpYunZhiJiaNotifier.java index cbba9c8ea..fa6ce1da2 100644 --- a/extension/extension-notify-yunzhijia/src/main/java/org/dromara/dynamictp/extension/notify/yunzhijia/DtpYunZhiJiaNotifier.java +++ b/extension/extension-notify-yunzhijia/src/main/java/org/dromara/dynamictp/extension/notify/yunzhijia/DtpYunZhiJiaNotifier.java @@ -20,6 +20,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; +import org.dromara.dynamictp.common.manager.ContextManagerHelper; import org.dromara.dynamictp.core.notifier.AbstractDtpNotifier; /** @@ -32,7 +33,7 @@ public class DtpYunZhiJiaNotifier extends AbstractDtpNotifier { public DtpYunZhiJiaNotifier() { - super(ApplicationContextHolder.getBean(YunZhiJiaNotifier.class)); + super(ContextManagerHelper.getBean(YunZhiJiaNotifier.class)); } @Override diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/ex/AbstractSpringRefresher.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/AbstractSpringRefresher.java new file mode 100644 index 000000000..f9915497f --- /dev/null +++ b/spring/src/main/java/org/dromara/dynamictp/spring/ex/AbstractSpringRefresher.java @@ -0,0 +1,33 @@ +package org.dromara.dynamictp.spring.ex; + +import lombok.extern.slf4j.Slf4j; +import org.dromara.dynamictp.common.properties.DtpProperties; +import org.dromara.dynamictp.core.refresher.AbstractRefresher; +import org.dromara.dynamictp.core.support.BinderHelper; +import org.springframework.context.EnvironmentAware; +import org.springframework.core.env.Environment; + +@Slf4j +public abstract class AbstractSpringRefresher extends AbstractRefresher implements EnvironmentAware { + + protected Environment environment; + + protected AbstractSpringRefresher(DtpProperties dtpProperties) { + super(dtpProperties); + } + + @Override + public void setEnvironment(Environment environment) { + this.environment = environment; + } + + @Override + protected void refresh(Object environment) { + if (environment instanceof Environment) { + BinderHelper.bindDtpProperties((Environment) environment, dtpProperties); + doRefresh(dtpProperties); + } else { + super.refresh(environment); + } + } +} diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpLifecycleSpringAdapter.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpLifecycleSpringAdapter.java deleted file mode 100644 index b12d1d9b1..000000000 --- a/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpLifecycleSpringAdapter.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.dromara.dynamictp.spring.ex; - -import org.dromara.dynamictp.core.spring.LifeCycleManagement; -import org.springframework.context.SmartLifecycle; - -public class DtpLifecycleSpringAdapter implements SmartLifecycle { - private final LifeCycleManagement lifeCycleManagement; - private boolean isRunning = false; - - public DtpLifecycleSpringAdapter(LifeCycleManagement lifeCycleManagement) { - this.lifeCycleManagement = lifeCycleManagement; - } - - @Override - public void start() { - lifeCycleManagement.start(); - isRunning = true; - } - - @Override - public void stop() { - lifeCycleManagement.stop(); - isRunning = false; - } - - @Override - public boolean isRunning() { - return isRunning; - } - - public void stop(Runnable callback) { - lifeCycleManagement.stop(); - callback.run(); - isRunning = false; - } - - @Override - public boolean isAutoStartup() { - return lifeCycleManagement.isAutoStartup(); - } - - @Override - public int getPhase() { - return lifeCycleManagement.getPhase(); - } -} diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/ex/OnceApplicationContextEventListener.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/OnceApplicationContextEventListener.java deleted file mode 100644 index b9f016c4c..000000000 --- a/spring/src/main/java/org/dromara/dynamictp/spring/ex/OnceApplicationContextEventListener.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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 org.dromara.dynamictp.spring.ex; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; -import org.springframework.context.ApplicationEvent; -import org.springframework.context.ApplicationListener; -import org.springframework.context.event.*; - -import static org.springframework.util.ObjectUtils.nullSafeEquals; - -/** - * The abstract class {@link ApplicationListener} for {@link ApplicationEvent} guarantees just one-time execution - * and prevents the event propagation in the hierarchical {@link ApplicationContext ApplicationContexts} - * @author yanhom - * @since 1.1.4 - */ -@Slf4j -public abstract class OnceApplicationContextEventListener implements ApplicationContextAware, ApplicationListener { - - private ApplicationContext applicationContext; - - protected OnceApplicationContextEventListener() { } - - @Override - public void onApplicationEvent(ApplicationEvent event) { - if (isOriginalEventSource(event) && event instanceof ApplicationContextEvent) { - if (event instanceof ContextRefreshedEvent) { - onContextRefreshedEvent((ContextRefreshedEvent) event); - } else if (event instanceof ContextStartedEvent) { - onContextStartedEvent((ContextStartedEvent) event); - } else if (event instanceof ContextStoppedEvent) { - onContextStoppedEvent((ContextStoppedEvent) event); - } else if (event instanceof ContextClosedEvent) { - onContextClosedEvent((ContextClosedEvent) event); - } - } - } - - /** - * The subclass overrides this method to handle {@link ContextRefreshedEvent} - * - * @param event {@link ContextRefreshedEvent} - */ - protected void onContextRefreshedEvent(ContextRefreshedEvent event) { - } - - /** - * The subclass overrides this method to handle {@link ContextStartedEvent} - * - * @param event {@link ContextStartedEvent} - */ - protected void onContextStartedEvent(ContextStartedEvent event) { - } - - /** - * The subclass overrides this method to handle {@link ContextStoppedEvent} - * - * @param event {@link ContextStoppedEvent} - */ - protected void onContextStoppedEvent(ContextStoppedEvent event) { - } - - /** - * The subclass overrides this method to handle {@link ContextClosedEvent} - * - * @param event {@link ContextClosedEvent} - */ - protected void onContextClosedEvent(ContextClosedEvent event) { - } - - /** - * Is original {@link ApplicationContext} as the event source - * @param event {@link ApplicationEvent} - * @return if original, return true, or false - */ - private boolean isOriginalEventSource(ApplicationEvent event) { - return nullSafeEquals(this.applicationContext, event.getSource()); - } - - @Override - public final void setApplicationContext(ApplicationContext applicationContext) { - this.applicationContext = applicationContext; - } -} - - diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringContextHolder.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringContextHolder.java index c3b351f3e..84b277c2c 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringContextHolder.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringContextHolder.java @@ -3,6 +3,9 @@ import org.dromara.dynamictp.common.manager.ContextManager; +import org.dromara.dynamictp.common.manager.EventBusManager; +import org.dromara.dynamictp.common.manager.RefreshedEvent; +import org.dromara.dynamictp.core.support.DtpBannerPrinter; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; @@ -10,6 +13,7 @@ import org.springframework.context.ApplicationListener; import org.springframework.context.event.*; import org.springframework.core.env.Environment; +import org.springframework.stereotype.Component; import java.util.Map; import java.util.Objects; @@ -21,6 +25,7 @@ public class SpringContextHolder implements ContextManager, ApplicationContextAw @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { context = applicationContext; + DtpBannerPrinter.printBanner(); // 打印 banner } @Override @@ -73,7 +78,8 @@ public void onApplicationEvent(ApplicationEvent event) { } protected void onContextRefreshedEvent(ContextRefreshedEvent event) { - // Override to handle ContextRefreshedEvent + RefreshedEvent refreshedEvent = new RefreshedEvent(this); + EventBusManager.post(refreshedEvent); } protected void onContextStartedEvent(ContextStartedEvent event) { @@ -109,6 +115,16 @@ public String getEnvironmentProperty(String key, String defaultValue) { return getInstance().getEnvironment().getProperty(key, defaultValue); } + @Override + public String[] getActiveProfiles() { + return getInstance().getEnvironment().getActiveProfiles(); + } + + @Override + public String[] getDefaultProfiles() { + return getInstance().getEnvironment().getDefaultProfiles(); + } + @Override public void setContext(Object context) { if (context instanceof ApplicationContext) { diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringExecutor.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringExecutor.java deleted file mode 100644 index 19358536b..000000000 --- a/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringExecutor.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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 org.dromara.dynamictp.spring.ex; - -import org.springframework.core.task.AsyncTaskExecutor; - -/** - * SpringExecutor related - * - * @author yanhom - * @since 1.1.0 - **/ -public interface SpringExecutor extends AsyncTaskExecutor { - -} diff --git a/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/AbstractWebServerDtpAdapter.java b/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/AbstractWebServerDtpAdapter.java index c851561a9..0982178d3 100644 --- a/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/AbstractWebServerDtpAdapter.java +++ b/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/AbstractWebServerDtpAdapter.java @@ -19,6 +19,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.adapter.common.AbstractDtpAdapter; +import org.dromara.dynamictp.common.manager.ContextManagerHelper; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.core.converter.ExecutorConverter; import org.dromara.dynamictp.spring.ex.SpringContextHolder; @@ -37,8 +38,7 @@ * @author yanhom * @author dragon-zhang * @since 1.0.0 - */ -@Slf4j + */@Slf4j public abstract class AbstractWebServerDtpAdapter extends AbstractDtpAdapter implements ApplicationListener { @@ -46,7 +46,7 @@ public abstract class AbstractWebServerDtpAdapter extends Ab public void onApplicationEvent(ApplicationEvent event) { if (event instanceof WebServerInitializedEvent) { try { - DtpProperties dtpProperties = SpringContextHolder.getInstance().getBean(DtpProperties.class); + DtpProperties dtpProperties = ContextManagerHelper.getBean(DtpProperties.class); initialize(); afterInitialize(); refresh(dtpProperties); diff --git a/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/monitor/DtpEndpoint.java b/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/monitor/DtpEndpoint.java index fb3789ef1..b1b508d57 100644 --- a/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/monitor/DtpEndpoint.java +++ b/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/monitor/DtpEndpoint.java @@ -25,6 +25,7 @@ import org.dromara.dynamictp.common.entity.Metrics; import org.dromara.dynamictp.core.DtpRegistry; import org.dromara.dynamictp.core.converter.ExecutorConverter; +import org.dromara.dynamictp.common.manager.ContextManagerHelper; import org.dromara.dynamictp.core.support.ExecutorWrapper; import org.dromara.dynamictp.core.aware.MetricsAware; import org.springframework.boot.actuate.endpoint.annotation.Endpoint; @@ -50,7 +51,7 @@ public List invoke() { metricsList.add(ExecutorConverter.toMetrics(wrapper)); }); - val handlerMap = ApplicationContextHolder.getBeansOfType(MetricsAware.class); + val handlerMap = ContextManagerHelper.getBeansOfType(MetricsAware.class); if (MapUtils.isNotEmpty(handlerMap)) { handlerMap.forEach((k, v) -> metricsList.addAll(v.getMultiPoolStats())); } diff --git a/starter/starter-configcenter/cloud-starter-consul/src/main/java/org/dromara/dynamictp/starter/cloud/consul/refresher/CloudConsulRefresher.java b/starter/starter-configcenter/cloud-starter-consul/src/main/java/org/dromara/dynamictp/starter/cloud/consul/refresher/CloudConsulRefresher.java index 31edd80de..b5e51040a 100644 --- a/starter/starter-configcenter/cloud-starter-consul/src/main/java/org/dromara/dynamictp/starter/cloud/consul/refresher/CloudConsulRefresher.java +++ b/starter/starter-configcenter/cloud-starter-consul/src/main/java/org/dromara/dynamictp/starter/cloud/consul/refresher/CloudConsulRefresher.java @@ -20,6 +20,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.core.refresher.AbstractRefresher; +import org.dromara.dynamictp.spring.ex.AbstractSpringRefresher; import org.springframework.cloud.context.environment.EnvironmentChangeEvent; import org.springframework.context.ApplicationEvent; import org.springframework.context.event.SmartApplicationListener; @@ -29,7 +30,7 @@ * @author Redick01 */ @Slf4j -public class CloudConsulRefresher extends AbstractRefresher implements SmartApplicationListener { +public class CloudConsulRefresher extends AbstractSpringRefresher implements SmartApplicationListener { public CloudConsulRefresher(DtpProperties dtpProperties) { super(dtpProperties); diff --git a/starter/starter-configcenter/cloud-starter-huawei/src/main/java/org/dromara/dynamictp/starter/cloud/huawei/refresher/CloudHuaweiRefresher.java b/starter/starter-configcenter/cloud-starter-huawei/src/main/java/org/dromara/dynamictp/starter/cloud/huawei/refresher/CloudHuaweiRefresher.java index 3e637c68d..58296fe9d 100644 --- a/starter/starter-configcenter/cloud-starter-huawei/src/main/java/org/dromara/dynamictp/starter/cloud/huawei/refresher/CloudHuaweiRefresher.java +++ b/starter/starter-configcenter/cloud-starter-huawei/src/main/java/org/dromara/dynamictp/starter/cloud/huawei/refresher/CloudHuaweiRefresher.java @@ -20,6 +20,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.core.refresher.AbstractRefresher; +import org.dromara.dynamictp.spring.ex.AbstractSpringRefresher; import org.springframework.cloud.context.environment.EnvironmentChangeEvent; import org.springframework.context.ApplicationEvent; import org.springframework.context.event.SmartApplicationListener; @@ -29,7 +30,7 @@ * @author windsearcher */ @Slf4j -public class CloudHuaweiRefresher extends AbstractRefresher implements SmartApplicationListener { +public class CloudHuaweiRefresher extends AbstractSpringRefresher implements SmartApplicationListener { public CloudHuaweiRefresher(DtpProperties dtpProperties) { super(dtpProperties); diff --git a/starter/starter-configcenter/cloud-starter-nacos/src/main/java/org/dromara/dynamictp/starter/cloud/nacos/refresher/CloudNacosRefresher.java b/starter/starter-configcenter/cloud-starter-nacos/src/main/java/org/dromara/dynamictp/starter/cloud/nacos/refresher/CloudNacosRefresher.java index 8da6c6e03..9a8aabd2f 100644 --- a/starter/starter-configcenter/cloud-starter-nacos/src/main/java/org/dromara/dynamictp/starter/cloud/nacos/refresher/CloudNacosRefresher.java +++ b/starter/starter-configcenter/cloud-starter-nacos/src/main/java/org/dromara/dynamictp/starter/cloud/nacos/refresher/CloudNacosRefresher.java @@ -20,6 +20,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.core.refresher.AbstractRefresher; +import org.dromara.dynamictp.spring.ex.AbstractSpringRefresher; import org.springframework.cloud.context.environment.EnvironmentChangeEvent; import org.springframework.context.ApplicationEvent; import org.springframework.context.event.SmartApplicationListener; @@ -32,7 +33,7 @@ * @since 1.0.0 **/ @Slf4j -public class CloudNacosRefresher extends AbstractRefresher implements SmartApplicationListener { +public class CloudNacosRefresher extends AbstractSpringRefresher implements SmartApplicationListener { public CloudNacosRefresher(DtpProperties dtpProperties) { super(dtpProperties); diff --git a/starter/starter-configcenter/cloud-starter-polaris/src/main/java/org/dromara/dynamictp/starter/cloud/polaris/refresher/CloudPolarisRefresher.java b/starter/starter-configcenter/cloud-starter-polaris/src/main/java/org/dromara/dynamictp/starter/cloud/polaris/refresher/CloudPolarisRefresher.java index 3c6d1d967..5a4863974 100644 --- a/starter/starter-configcenter/cloud-starter-polaris/src/main/java/org/dromara/dynamictp/starter/cloud/polaris/refresher/CloudPolarisRefresher.java +++ b/starter/starter-configcenter/cloud-starter-polaris/src/main/java/org/dromara/dynamictp/starter/cloud/polaris/refresher/CloudPolarisRefresher.java @@ -20,6 +20,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.core.refresher.AbstractRefresher; +import org.dromara.dynamictp.spring.ex.AbstractSpringRefresher; import org.springframework.cloud.context.environment.EnvironmentChangeEvent; import org.springframework.context.ApplicationEvent; import org.springframework.context.event.SmartApplicationListener; @@ -32,7 +33,7 @@ * @since 1.0.0 **/ @Slf4j -public class CloudPolarisRefresher extends AbstractRefresher implements SmartApplicationListener { +public class CloudPolarisRefresher extends AbstractSpringRefresher implements SmartApplicationListener { public CloudPolarisRefresher(DtpProperties dtpProperties) { super(dtpProperties); diff --git a/starter/starter-configcenter/cloud-starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/cloud/zookeeper/refresher/CloudZookeeperRefresher.java b/starter/starter-configcenter/cloud-starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/cloud/zookeeper/refresher/CloudZookeeperRefresher.java index bb9e0e175..99383305a 100644 --- a/starter/starter-configcenter/cloud-starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/cloud/zookeeper/refresher/CloudZookeeperRefresher.java +++ b/starter/starter-configcenter/cloud-starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/cloud/zookeeper/refresher/CloudZookeeperRefresher.java @@ -20,6 +20,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.core.refresher.AbstractRefresher; +import org.dromara.dynamictp.spring.ex.AbstractSpringRefresher; import org.springframework.cloud.context.environment.EnvironmentChangeEvent; import org.springframework.context.ApplicationEvent; import org.springframework.context.event.SmartApplicationListener; @@ -29,7 +30,7 @@ * @author Redick01 */ @Slf4j -public class CloudZookeeperRefresher extends AbstractRefresher implements SmartApplicationListener { +public class CloudZookeeperRefresher extends AbstractSpringRefresher implements SmartApplicationListener { public CloudZookeeperRefresher(DtpProperties dtpProperties) { super(dtpProperties); diff --git a/starter/starter-configcenter/starter-apollo/src/main/java/org/dromara/dynamictp/starter/apollo/refresher/ApolloRefresher.java b/starter/starter-configcenter/starter-apollo/src/main/java/org/dromara/dynamictp/starter/apollo/refresher/ApolloRefresher.java index 934495d9b..67c4c39b8 100644 --- a/starter/starter-configcenter/starter-apollo/src/main/java/org/dromara/dynamictp/starter/apollo/refresher/ApolloRefresher.java +++ b/starter/starter-configcenter/starter-apollo/src/main/java/org/dromara/dynamictp/starter/apollo/refresher/ApolloRefresher.java @@ -31,6 +31,7 @@ import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.core.handler.ConfigHandler; import org.dromara.dynamictp.core.refresher.AbstractRefresher; +import org.dromara.dynamictp.spring.ex.AbstractSpringRefresher; import org.springframework.beans.factory.InitializingBean; import java.io.IOException; @@ -46,7 +47,7 @@ * @since 1.0.0 **/ @Slf4j -public class ApolloRefresher extends AbstractRefresher implements ConfigFileChangeListener, InitializingBean { +public class ApolloRefresher extends AbstractSpringRefresher implements ConfigFileChangeListener, InitializingBean { private static final Splitter NAMESPACE_SPLITTER = Splitter.on(",").omitEmptyStrings().trimResults(); diff --git a/starter/starter-configcenter/starter-etcd/src/main/java/org/dromara/dynamictp/starter/etcd/refresher/EtcdRefresher.java b/starter/starter-configcenter/starter-etcd/src/main/java/org/dromara/dynamictp/starter/etcd/refresher/EtcdRefresher.java index 1798b2ac6..bdd2d75b3 100644 --- a/starter/starter-configcenter/starter-etcd/src/main/java/org/dromara/dynamictp/starter/etcd/refresher/EtcdRefresher.java +++ b/starter/starter-configcenter/starter-etcd/src/main/java/org/dromara/dynamictp/starter/etcd/refresher/EtcdRefresher.java @@ -21,6 +21,7 @@ import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.core.refresher.AbstractRefresher; import org.dromara.dynamictp.core.support.BinderHelper; +import org.dromara.dynamictp.spring.ex.AbstractSpringRefresher; import org.dromara.dynamictp.starter.etcd.util.EtcdUtil; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; @@ -32,7 +33,7 @@ * @author Redick01 */ @Slf4j -public class EtcdRefresher extends AbstractRefresher implements InitializingBean, Ordered, DisposableBean { +public class EtcdRefresher extends AbstractSpringRefresher implements InitializingBean, Ordered, DisposableBean { public EtcdRefresher(DtpProperties dtpProperties) { super(dtpProperties); diff --git a/starter/starter-configcenter/starter-nacos/src/main/java/org/dromara/dynamictp/starter/nacos/refresher/NacosRefresher.java b/starter/starter-configcenter/starter-nacos/src/main/java/org/dromara/dynamictp/starter/nacos/refresher/NacosRefresher.java index aab757b80..aa19cee5a 100644 --- a/starter/starter-configcenter/starter-nacos/src/main/java/org/dromara/dynamictp/starter/nacos/refresher/NacosRefresher.java +++ b/starter/starter-configcenter/starter-nacos/src/main/java/org/dromara/dynamictp/starter/nacos/refresher/NacosRefresher.java @@ -21,6 +21,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.core.refresher.AbstractRefresher; +import org.dromara.dynamictp.spring.ex.AbstractSpringRefresher; import org.springframework.context.ApplicationEvent; import org.springframework.context.event.SmartApplicationListener; @@ -31,7 +32,7 @@ * @since 1.0.0 **/ @Slf4j -public class NacosRefresher extends AbstractRefresher implements SmartApplicationListener { +public class NacosRefresher extends AbstractSpringRefresher implements SmartApplicationListener { public NacosRefresher(DtpProperties dtpProperties) { super(dtpProperties); diff --git a/starter/starter-configcenter/starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/zookeeper/refresher/ZookeeperRefresher.java b/starter/starter-configcenter/starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/zookeeper/refresher/ZookeeperRefresher.java index fa6b878b3..dd4408ae2 100644 --- a/starter/starter-configcenter/starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/zookeeper/refresher/ZookeeperRefresher.java +++ b/starter/starter-configcenter/starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/zookeeper/refresher/ZookeeperRefresher.java @@ -25,6 +25,7 @@ import org.apache.zookeeper.WatchedEvent; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.core.refresher.AbstractRefresher; +import org.dromara.dynamictp.spring.ex.AbstractSpringRefresher; import org.dromara.dynamictp.starter.zookeeper.autoconfigure.ZkConfigEnvironmentProcessor; import org.dromara.dynamictp.starter.zookeeper.util.CuratorUtil; import org.springframework.beans.factory.InitializingBean; @@ -36,7 +37,7 @@ * @author Redick01 */ @Slf4j -public class ZookeeperRefresher extends AbstractRefresher implements EnvironmentAware, InitializingBean { +public class ZookeeperRefresher extends AbstractSpringRefresher implements EnvironmentAware, InitializingBean { public ZookeeperRefresher(DtpProperties dtpProperties) { super(dtpProperties); diff --git a/test/pom.xml b/test/pom.xml index 0423f3252..c2ede7c40 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -32,6 +32,13 @@ dynamic-tp-core + + org.dromara.dynamictp + dynamic-tp-spring + 1.1.8-beta + compile + + org.dromara.dynamictp dynamic-tp-logging diff --git a/test/test-configcenter/pom.xml b/test/test-configcenter/pom.xml index 070221493..a1db9ce1d 100644 --- a/test/test-configcenter/pom.xml +++ b/test/test-configcenter/pom.xml @@ -54,5 +54,12 @@ spring-cloud-context test + + + org.dromara.dynamictp + dynamic-tp-spring + 1.1.8-beta + compile + diff --git a/test/test-configcenter/src/test/java/org/dromara/dynamictp/test/configcenter/DtpBaseTest.java b/test/test-configcenter/src/test/java/org/dromara/dynamictp/test/configcenter/DtpBaseTest.java index 8d10e8a85..1287f57d0 100644 --- a/test/test-configcenter/src/test/java/org/dromara/dynamictp/test/configcenter/DtpBaseTest.java +++ b/test/test-configcenter/src/test/java/org/dromara/dynamictp/test/configcenter/DtpBaseTest.java @@ -17,7 +17,7 @@ package org.dromara.dynamictp.test.configcenter; -import org.dromara.dynamictp.spring.ex.YamlPropertySourceFactory; +import org.dromara.dynamictp.spring.ex.*; import org.junit.jupiter.api.BeforeAll; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; @@ -28,6 +28,7 @@ import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Import; import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.ConfigurableEnvironment; @@ -37,10 +38,11 @@ * @author yanhom * @since 1.1.7 */ +@EnableDynamicTp @EnableAutoConfiguration @SpringBootTest(classes = {DtpBaseTest.class}) @PropertySource(value = "classpath:/dynamic-tp-demo-dtp-dev.yml", factory = YamlPropertySourceFactory.class) -@ComponentScan(basePackages = "org.dromara.dynamictp.test.configcenter") +@ComponentScan(basePackages = {"org.dromara.dynamictp.test.configcenter", "org.dromara.dynamictp.spring"}) @AutoConfigureAfter(ConfigurationPropertiesRebinderAutoConfiguration.class) public class DtpBaseTest { diff --git a/test/test-configcenter/src/test/java/org/dromara/dynamictp/test/configcenter/nacos/NacosRefresherTest.java b/test/test-configcenter/src/test/java/org/dromara/dynamictp/test/configcenter/nacos/NacosRefresherTest.java index d328c96d8..4c65ebc3a 100644 --- a/test/test-configcenter/src/test/java/org/dromara/dynamictp/test/configcenter/nacos/NacosRefresherTest.java +++ b/test/test-configcenter/src/test/java/org/dromara/dynamictp/test/configcenter/nacos/NacosRefresherTest.java @@ -41,6 +41,16 @@ class NacosRefresherTest extends DtpBaseTest { @Test void testRefresh() throws InterruptedException { + + // 打印所有bean名称 + String[] beanNames = context.getBeanDefinitionNames(); + System.out.println("所有bean名称:"); + for (String beanName : beanNames) { + System.out.println(beanName); + } + + assert context.containsBean("dtpExecutor1") : "dtpExecutor1 bean not found!"; + int corePoolSize = context.getBean("dtpExecutor1", ThreadPoolExecutor.class).getCorePoolSize(); System.out.println(corePoolSize); Assertions.assertEquals(6, corePoolSize); diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/AbstractDtpNotifierTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/AbstractDtpNotifierTest.java index f86d67282..79c949329 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/AbstractDtpNotifierTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/AbstractDtpNotifierTest.java @@ -77,7 +77,7 @@ public void setUp() { when(SpringContextHolder.getInstance()).thenAnswer((Answer) c -> contextMock); Environment envMock = mock(Environment.class); - when(SpringContextHolder.getEnvironment()).thenAnswer((Answer) c -> envMock); + when(SpringContextHolder.getInstance().getEnvironment()).thenAnswer((Answer) c -> envMock); when(envMock.getProperty("spring.application.name")).thenReturn("test"); when(envMock.getProperty("server.port")).thenReturn("8080"); when(envMock.getActiveProfiles()).thenReturn(new String[]{"dev"}); diff --git a/test/test-core/src/test/resources/META-INF/spring.factories b/test/test-core/src/test/resources/META-INF/spring.factories new file mode 100644 index 000000000..b4d25d8a1 --- /dev/null +++ b/test/test-core/src/test/resources/META-INF/spring.factories @@ -0,0 +1,4 @@ +org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ +org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration,\ +org.dromara.dynamictp.spring.ex.DtpBaseBeanDefinitionRegistrar,\ +org.dromara.dynamictp.spring.ex.DtpBeanDefinitionRegistrar From 6095049f5ba9561ae83f723bafb36e4d912eafc7 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Fri, 19 Jul 2024 15:46:56 +0800 Subject: [PATCH 022/101] =?UTF-8?q?refactor=EF=BC=9AIllegalAccessException?= =?UTF-8?q?=E7=A7=BB=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/common/AbstractDtpAdapter.java | 8 +-- .../DtpMetricsPublisherThreadPool.java | 58 +++++++++---------- .../adapter/motan/MotanDtpAdapter.java | 8 +-- 3 files changed, 31 insertions(+), 43 deletions(-) diff --git a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java index 6071c5bf6..96ed0c292 100644 --- a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java +++ b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java @@ -163,12 +163,8 @@ protected TpMainFields getTpMainFields(ExecutorWrapper executorWrapper, TpExecut protected void enhanceOriginExecutor(String tpName, ThreadPoolExecutor executor, String fieldName, Object targetObj) { ThreadPoolExecutorProxy proxy = new ThreadPoolExecutorProxy(executor); - try { - ReflectionUtil.setFieldValue(fieldName, targetObj, proxy); - putAndFinalize(tpName, executor, proxy); - } catch (IllegalAccessException e) { - log.error("DynamicTp adapter, enhance {} failed.", tpName, e); - } + ReflectionUtil.setFieldValue(fieldName, targetObj, proxy); + putAndFinalize(tpName, executor, proxy); } protected void putAndFinalize(String tpName, ExecutorService origin, Executor targetForWrapper) { diff --git a/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/DtpMetricsPublisherThreadPool.java b/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/DtpMetricsPublisherThreadPool.java index 40ac12ff7..87ad53548 100644 --- a/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/DtpMetricsPublisherThreadPool.java +++ b/adapter/adapter-hystrix/src/main/java/org/dromara/dynamictp/adapter/hystrix/DtpMetricsPublisherThreadPool.java @@ -80,37 +80,33 @@ public void refreshProperties(TpExecutorProps props) { return; } - try { - if (!Objects.equals(threadPoolProperties.coreSize().get(), props.getCorePoolSize())) { - val corePoolSize = getProperty(threadPoolKey, "coreSize", - props.getCorePoolSize(), DEFAULT_CORE_SIZE); - ReflectionUtil.setFieldValue(HystrixThreadPoolProperties.class, - "corePoolSize", threadPoolProperties, corePoolSize); - } - - if (!Objects.equals(threadPoolProperties.maximumSize().get(), props.getMaximumPoolSize())) { - val maxPoolSize = getProperty(threadPoolKey, "maximumSize", - props.getMaximumPoolSize(), DEFAULT_MAXIMUM_SIZE); - ReflectionUtil.setFieldValue(HystrixThreadPoolProperties.class, - "maximumPoolSize", threadPoolProperties, maxPoolSize); - } - - val keepAliveTimeMinutes = (int) TimeUnit.SECONDS.toMinutes(props.getKeepAliveTime()); - if (!Objects.equals(threadPoolProperties.keepAliveTimeMinutes().get(), keepAliveTimeMinutes)) { - val keepAliveTimeProperty = getProperty(threadPoolKey, - "keepAliveTimeMinutes", keepAliveTimeMinutes, DEFAULT_KEEP_ALIVE_TIME_MINUTES); - ReflectionUtil.setFieldValue(HystrixThreadPoolProperties.class, - "keepAliveTime", threadPoolProperties, keepAliveTimeProperty); - } - - if (init.compareAndSet(false, true)) { - val allowSetMax = getProperty(threadPoolKey, - "allowMaximumSizeToDivergeFromCoreSize", true, true); - ReflectionUtil.setFieldValue(HystrixThreadPoolProperties.class, - "allowMaximumSizeToDivergeFromCoreSize", threadPoolProperties, allowSetMax); - } - } catch (IllegalAccessException e) { - log.error("DynamicTp hystrix adapter, reset hystrix threadPool properties failed.", e); + if (!Objects.equals(threadPoolProperties.coreSize().get(), props.getCorePoolSize())) { + val corePoolSize = getProperty(threadPoolKey, "coreSize", + props.getCorePoolSize(), DEFAULT_CORE_SIZE); + ReflectionUtil.setFieldValue(HystrixThreadPoolProperties.class, + "corePoolSize", threadPoolProperties, corePoolSize); + } + + if (!Objects.equals(threadPoolProperties.maximumSize().get(), props.getMaximumPoolSize())) { + val maxPoolSize = getProperty(threadPoolKey, "maximumSize", + props.getMaximumPoolSize(), DEFAULT_MAXIMUM_SIZE); + ReflectionUtil.setFieldValue(HystrixThreadPoolProperties.class, + "maximumPoolSize", threadPoolProperties, maxPoolSize); + } + + val keepAliveTimeMinutes = (int) TimeUnit.SECONDS.toMinutes(props.getKeepAliveTime()); + if (!Objects.equals(threadPoolProperties.keepAliveTimeMinutes().get(), keepAliveTimeMinutes)) { + val keepAliveTimeProperty = getProperty(threadPoolKey, + "keepAliveTimeMinutes", keepAliveTimeMinutes, DEFAULT_KEEP_ALIVE_TIME_MINUTES); + ReflectionUtil.setFieldValue(HystrixThreadPoolProperties.class, + "keepAliveTime", threadPoolProperties, keepAliveTimeProperty); + } + + if (init.compareAndSet(false, true)) { + val allowSetMax = getProperty(threadPoolKey, + "allowMaximumSizeToDivergeFromCoreSize", true, true); + ReflectionUtil.setFieldValue(HystrixThreadPoolProperties.class, + "allowMaximumSizeToDivergeFromCoreSize", threadPoolProperties, allowSetMax); } } diff --git a/adapter/adapter-motan/src/main/java/org/dromara/dynamictp/adapter/motan/MotanDtpAdapter.java b/adapter/adapter-motan/src/main/java/org/dromara/dynamictp/adapter/motan/MotanDtpAdapter.java index a65081f69..80965eccf 100644 --- a/adapter/adapter-motan/src/main/java/org/dromara/dynamictp/adapter/motan/MotanDtpAdapter.java +++ b/adapter/adapter-motan/src/main/java/org/dromara/dynamictp/adapter/motan/MotanDtpAdapter.java @@ -89,12 +89,8 @@ protected void initialize() { if (Objects.nonNull(executor)) { StandardThreadExecutorProxy proxy = new StandardThreadExecutorProxy(executor); String tpName = TP_PREFIX + "#" + nettyServer.getUrl().getPort(); - try { - ReflectionUtil.setFieldValue(EXECUTOR_FIELD, nettyServer, proxy); - putAndFinalize(tpName, executor, proxy); - } catch (IllegalAccessException ex) { - log.error("DynamicTp adapter, enhance {} failed.", tpName, ex); - } + ReflectionUtil.setFieldValue(EXECUTOR_FIELD, nettyServer, proxy); + putAndFinalize(tpName, executor, proxy); } }); }); From 7741f095a7267b71888d69fa302d2bebefb1a07b Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Fri, 19 Jul 2024 15:50:22 +0800 Subject: [PATCH 023/101] =?UTF-8?q?refactor=EF=BC=9AIllegalAccessException?= =?UTF-8?q?=E7=A7=BB=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/motan/StandardThreadExecutorProxy.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/adapter/adapter-motan/src/main/java/org/dromara/dynamictp/adapter/motan/StandardThreadExecutorProxy.java b/adapter/adapter-motan/src/main/java/org/dromara/dynamictp/adapter/motan/StandardThreadExecutorProxy.java index 1f852d057..67a88290a 100644 --- a/adapter/adapter-motan/src/main/java/org/dromara/dynamictp/adapter/motan/StandardThreadExecutorProxy.java +++ b/adapter/adapter-motan/src/main/java/org/dromara/dynamictp/adapter/motan/StandardThreadExecutorProxy.java @@ -53,11 +53,7 @@ public StandardThreadExecutorProxy(StandardThreadExecutor executor) { this.rejectHandlerType = handler.getClass().getSimpleName(); setRejectedExecutionHandler(RejectHandlerGetter.getProxy(handler)); if (EXECUTOR_QUEUE.equals(executor.getQueue().getClass().getSimpleName())) { - try { - ReflectionUtil.setFieldValue("threadPoolExecutor", executor.getQueue(), this); - } catch (IllegalAccessException e) { - throw new RuntimeException(e); - } + ReflectionUtil.setFieldValue("threadPoolExecutor", executor.getQueue(), this); } } From 1a1654eedefb0845cf1d6344d1a98edabf7843eb Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Fri, 19 Jul 2024 15:53:27 +0800 Subject: [PATCH 024/101] =?UTF-8?q?refactor=EF=BC=9AIllegalAccessException?= =?UTF-8?q?=E7=A7=BB=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../limiter/redis/ratelimiter/SlidingWindowRateLimiter.java | 1 + .../starter/adapter/webserver/jetty/JettyDtpAdapter.java | 6 +----- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/extension/extension-limiter-redis/src/main/java/org/dromara/dynamictp/extension/limiter/redis/ratelimiter/SlidingWindowRateLimiter.java b/extension/extension-limiter-redis/src/main/java/org/dromara/dynamictp/extension/limiter/redis/ratelimiter/SlidingWindowRateLimiter.java index 1ab1d0a23..9bd5afdc2 100644 --- a/extension/extension-limiter-redis/src/main/java/org/dromara/dynamictp/extension/limiter/redis/ratelimiter/SlidingWindowRateLimiter.java +++ b/extension/extension-limiter-redis/src/main/java/org/dromara/dynamictp/extension/limiter/redis/ratelimiter/SlidingWindowRateLimiter.java @@ -17,6 +17,7 @@ package org.dromara.dynamictp.extension.limiter.redis.ratelimiter; +import org.dromara.dynamictp.common.util.CommonUtil; import org.dromara.dynamictp.extension.limiter.redis.em.RateLimitEnum; import org.springframework.data.redis.core.StringRedisTemplate; diff --git a/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/jetty/JettyDtpAdapter.java b/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/jetty/JettyDtpAdapter.java index 22f249dbb..e8cef06e0 100644 --- a/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/jetty/JettyDtpAdapter.java +++ b/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/jetty/JettyDtpAdapter.java @@ -95,11 +95,7 @@ private void enhanceOriginTask(JettyWebServer jettyWebServer, ThreadPool threadP } ExecutionStrategy.Producer producer = (ExecutionStrategy.Producer) ReflectionUtil.getFieldValue(PRODUCER_FIELD, eatWhatYouKill); SelectorProducerProxy selectorProducerProxy = new SelectorProducerProxy(producer, threadPool); - try { - ReflectionUtil.setFieldValue(PRODUCER_FIELD, eatWhatYouKill, selectorProducerProxy); - } catch (IllegalAccessException e) { - log.error("DynamicTp enhance jetty origin executor failed.", e); - } + ReflectionUtil.setFieldValue(PRODUCER_FIELD, eatWhatYouKill, selectorProducerProxy); } } } From dfaf69ab5272652ced84ab585c55d124b705eaa9 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Fri, 19 Jul 2024 15:59:11 +0800 Subject: [PATCH 025/101] =?UTF-8?q?refactor=EF=BC=9AIllegalAccessException?= =?UTF-8?q?=E7=A7=BB=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../webserver/tomcat/TomcatExecutorProxy.java | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/tomcat/TomcatExecutorProxy.java b/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/tomcat/TomcatExecutorProxy.java index 4fbd824c5..772e7e068 100644 --- a/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/tomcat/TomcatExecutorProxy.java +++ b/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/tomcat/TomcatExecutorProxy.java @@ -63,14 +63,10 @@ public TomcatExecutorProxy(ThreadPoolExecutor executor) { new Class[]{RejectedExecutionHandler.class}, new RejectedInvocationHandler(handler))); } catch (Throwable t) { - try { - ReflectionUtil.setFieldValue("handler", this, Proxy - .newProxyInstance(handler.getClass().getClassLoader(), - new Class[]{java.util.concurrent.RejectedExecutionHandler.class}, - new RejectedInvocationHandler(handler))); - } catch (IllegalAccessException ex) { - throw new RuntimeException(ex); - } + ReflectionUtil.setFieldValue("handler", this, Proxy + .newProxyInstance(handler.getClass().getClassLoader(), + new Class[]{java.util.concurrent.RejectedExecutionHandler.class}, + new RejectedInvocationHandler(handler))); } if (executor.getQueue() instanceof TaskQueue) { ((TaskQueue) executor.getQueue()).setParent(this); From 2c6f0dee68edf2340d72daa79f00ca862e4c9078 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Fri, 19 Jul 2024 16:12:52 +0800 Subject: [PATCH 026/101] =?UTF-8?q?refactor=EF=BC=9A=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/common/DtpAdapterListener.java | 7 +------ .../common/event/AlarmCheckEvent.java | 1 - .../dynamictp/common/event/CollectEvent.java | 1 - .../dynamictp/common/event/RefreshEvent.java | 1 - .../common/manager/ContextManager.java | 2 +- .../common/manager/ContextManagerHelper.java | 2 +- .../dynamictp/common/util/CommonUtil.java | 4 +--- .../dynamictp/common/util/StreamUtil.java | 2 +- .../dynamictp/core/executor/DtpExecutor.java | 3 +-- .../dynamictp/core/monitor/DtpMonitor.java | 2 +- .../core/refresher/AbstractRefresher.java | 4 ++-- .../core/support/DtpBannerPrinter.java | 4 +--- .../core/support/ExecutorWrapper.java | 1 - .../spring/ex/DtpBaseBeanConfiguration.java | 1 - .../spring/ex/SpringContextHolder.java | 3 +-- .../webserver/jetty/QueuedThreadPoolProxy.java | 18 +++++++----------- .../consul/refresher/CloudConsulRefresher.java | 1 - .../huawei/refresher/CloudHuaweiRefresher.java | 1 - .../nacos/refresher/CloudNacosRefresher.java | 1 - .../refresher/CloudPolarisRefresher.java | 1 - .../refresher/CloudZookeeperRefresher.java | 1 - .../apollo/refresher/ApolloRefresher.java | 1 - .../starter/etcd/refresher/EtcdRefresher.java | 1 - .../nacos/refresher/NacosRefresher.java | 1 - .../refresher/ZookeeperRefresher.java | 1 - 25 files changed, 18 insertions(+), 47 deletions(-) diff --git a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java index be7cd4396..1ca299b54 100644 --- a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java +++ b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java @@ -28,11 +28,6 @@ import org.dromara.dynamictp.core.notifier.manager.AlarmManager; import lombok.extern.slf4j.Slf4j; import lombok.val; -import org.springframework.context.ApplicationEvent; -import org.springframework.context.event.GenericApplicationListener; -import org.springframework.core.ResolvableType; -import org.springframework.lang.NonNull; -import org.springframework.lang.Nullable; import org.springframework.util.CollectionUtils; import static org.dromara.dynamictp.common.constant.DynamicTpConst.SCHEDULE_NOTIFY_ITEMS; @@ -44,7 +39,7 @@ * @since 1.0.6 */ @Slf4j -public class DtpAdapterListener{ +public class DtpAdapterListener { @Subscribe public void handleRefreshedEvent(RefreshedEvent event) { diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java index ca2fc1959..3d2e90877 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java @@ -19,7 +19,6 @@ import org.dromara.dynamictp.common.manager.RefreshedEvent; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.springframework.context.ApplicationEvent; /** * AlarmCheckEvent related diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java index b3be4720c..14d45c08a 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java @@ -19,7 +19,6 @@ import org.dromara.dynamictp.common.manager.RefreshedEvent; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.springframework.context.ApplicationEvent; /** * CollectEvent related diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java index b05e89875..48d133820 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java @@ -19,7 +19,6 @@ import org.dromara.dynamictp.common.manager.RefreshedEvent; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.springframework.context.ApplicationEvent; /** * RefreshEvent related diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java index 87fa62797..781294acc 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java @@ -13,4 +13,4 @@ public interface ContextManager { String getEnvironmentProperty(String key, String defaultValue); String[] getActiveProfiles(); String[] getDefaultProfiles(); -} \ No newline at end of file +} diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java index 53ca35758..bc1eb8ed2 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java @@ -59,4 +59,4 @@ public static String[] getDefaultProfiles() { return CONTEXT_MANAGER.getDefaultProfiles(); } -} \ No newline at end of file +} diff --git a/common/src/main/java/org/dromara/dynamictp/common/util/CommonUtil.java b/common/src/main/java/org/dromara/dynamictp/common/util/CommonUtil.java index 24ee13316..f6f8df761 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/util/CommonUtil.java +++ b/common/src/main/java/org/dromara/dynamictp/common/util/CommonUtil.java @@ -22,8 +22,6 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.dromara.dynamictp.common.manager.ContextManagerHelper; -import org.springframework.core.env.Environment; - import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; @@ -96,4 +94,4 @@ private static InetAddress getLocalHostExactAddress() throws SocketException, Un } return candidateAddress == null ? InetAddress.getLocalHost() : candidateAddress; } -} \ No newline at end of file +} diff --git a/common/src/main/java/org/dromara/dynamictp/common/util/StreamUtil.java b/common/src/main/java/org/dromara/dynamictp/common/util/StreamUtil.java index ba290c1d0..ce759b9a3 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/util/StreamUtil.java +++ b/common/src/main/java/org/dromara/dynamictp/common/util/StreamUtil.java @@ -118,4 +118,4 @@ public static Map> toListMap(Collection ids, return resultMap; } -} \ No newline at end of file +} diff --git a/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java b/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java index 7ba945125..04ce2ec9e 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java +++ b/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java @@ -30,7 +30,6 @@ import org.dromara.dynamictp.core.support.ExecutorAdapter; import org.dromara.dynamictp.core.support.task.wrapper.TaskWrapper; import org.slf4j.MDC; -import org.springframework.core.task.AsyncTaskExecutor; import java.util.List; import java.util.Objects; @@ -53,7 +52,7 @@ * @since 1.0.0 **/ @Slf4j -public class DtpExecutor extends ThreadPoolExecutor implements TaskEnhanceAware, ExecutorAdapter{ +public class DtpExecutor extends ThreadPoolExecutor implements TaskEnhanceAware, ExecutorAdapter { /** * The name of the thread pool. diff --git a/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java b/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java index 651e30c73..9a0262e1a 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java +++ b/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java @@ -50,7 +50,7 @@ * @since 1.0.0 **/ @Slf4j -public class DtpMonitor{ +public class DtpMonitor { private static final ScheduledExecutorService MONITOR_EXECUTOR = ThreadPoolCreator.newScheduledThreadPool("dtp-monitor", 1); private static DtpMonitor INSTANCE; diff --git a/core/src/main/java/org/dromara/dynamictp/core/refresher/AbstractRefresher.java b/core/src/main/java/org/dromara/dynamictp/core/refresher/AbstractRefresher.java index 860a8114e..9190a28de 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/refresher/AbstractRefresher.java +++ b/core/src/main/java/org/dromara/dynamictp/core/refresher/AbstractRefresher.java @@ -46,9 +46,9 @@ * @since 1.0.0 **/ @Slf4j -public abstract class AbstractRefresher implements Refresher{ +public abstract class AbstractRefresher implements Refresher { - public final DtpProperties dtpProperties; + protected final DtpProperties dtpProperties; protected AbstractRefresher(DtpProperties dtpProperties) { this.dtpProperties = dtpProperties; diff --git a/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java b/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java index adc2d54ac..a3f6ffde4 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java +++ b/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java @@ -21,8 +21,6 @@ import org.dromara.dynamictp.common.manager.ContextManagerHelper; import org.dromara.dynamictp.common.util.VersionUtil; import lombok.extern.slf4j.Slf4j; -import org.springframework.context.EnvironmentAware; -import org.springframework.core.env.Environment; /** * DtpBannerPrinter related @@ -31,7 +29,7 @@ * @since 1.0.0 **/ @Slf4j -public class DtpBannerPrinter{ +public class DtpBannerPrinter { private static final String NAME = " :: Dynamic Thread Pool :: "; diff --git a/core/src/main/java/org/dromara/dynamictp/core/support/ExecutorWrapper.java b/core/src/main/java/org/dromara/dynamictp/core/support/ExecutorWrapper.java index 7ddc2f3ba..1bbba530c 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/support/ExecutorWrapper.java +++ b/core/src/main/java/org/dromara/dynamictp/core/support/ExecutorWrapper.java @@ -17,7 +17,6 @@ package org.dromara.dynamictp.core.support; -import com.google.common.collect.Sets; import lombok.Data; import org.dromara.dynamictp.common.em.NotifyItemEnum; import org.dromara.dynamictp.common.entity.NotifyItem; diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBaseBeanConfiguration.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBaseBeanConfiguration.java index 4a6d33f61..a0d617093 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBaseBeanConfiguration.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBaseBeanConfiguration.java @@ -27,7 +27,6 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Role; -import java.util.EventListenerProxy; /** * DtpBaseBeanConfiguration related diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringContextHolder.java b/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringContextHolder.java index 84b277c2c..0982e7d39 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringContextHolder.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringContextHolder.java @@ -13,7 +13,6 @@ import org.springframework.context.ApplicationListener; import org.springframework.context.event.*; import org.springframework.core.env.Environment; -import org.springframework.stereotype.Component; import java.util.Map; import java.util.Objects; @@ -131,4 +130,4 @@ public void setContext(Object context) { setApplicationContext((ApplicationContext) context); } } -} \ No newline at end of file +} diff --git a/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/jetty/QueuedThreadPoolProxy.java b/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/jetty/QueuedThreadPoolProxy.java index a3d0dce94..642974562 100644 --- a/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/jetty/QueuedThreadPoolProxy.java +++ b/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/jetty/QueuedThreadPoolProxy.java @@ -39,18 +39,14 @@ public QueuedThreadPoolProxy(QueuedThreadPool threadPool, BlockingQueue Date: Wed, 24 Jul 2024 22:05:20 +0800 Subject: [PATCH 027/101] =?UTF-8?q?refactor=EF=BC=9A=E6=94=B9=E7=94=A8Even?= =?UTF-8?q?tObject?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/dynamictp/common/event/AlarmCheckEvent.java | 7 ++++--- .../org/dromara/dynamictp/common/event/CollectEvent.java | 5 +++-- .../org/dromara/dynamictp/common/event/RefreshEvent.java | 5 +++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java index 3d2e90877..868ee6800 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java @@ -17,16 +17,17 @@ package org.dromara.dynamictp.common.event; -import org.dromara.dynamictp.common.manager.RefreshedEvent; import org.dromara.dynamictp.common.properties.DtpProperties; +import java.util.EventObject; + /** * AlarmCheckEvent related * * @author yanhom * @since 1.0.0 */ -public class AlarmCheckEvent extends RefreshedEvent { +public class AlarmCheckEvent extends EventObject { private final transient DtpProperties dtpProperties; @@ -35,7 +36,7 @@ public AlarmCheckEvent(Object source, DtpProperties dtpProperties) { this.dtpProperties = dtpProperties; } - @Override + public DtpProperties getDtpProperties() { return dtpProperties; } diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java index 14d45c08a..eb21f2525 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java @@ -17,16 +17,17 @@ package org.dromara.dynamictp.common.event; -import org.dromara.dynamictp.common.manager.RefreshedEvent; import org.dromara.dynamictp.common.properties.DtpProperties; +import java.util.EventObject; + /** * CollectEvent related * * @author yanhom * @since 1.0.0 */ -public class CollectEvent extends RefreshedEvent { +public class CollectEvent extends EventObject{ private final transient DtpProperties dtpProperties; diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java index 48d133820..bc1fc800b 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java @@ -17,16 +17,17 @@ package org.dromara.dynamictp.common.event; -import org.dromara.dynamictp.common.manager.RefreshedEvent; import org.dromara.dynamictp.common.properties.DtpProperties; +import java.util.EventObject; + /** * RefreshEvent related * * @author yanhom * @since 1.0.0 */ -public class RefreshEvent extends RefreshedEvent { +public class RefreshEvent extends EventObject{ private final transient DtpProperties dtpProperties; From 49632df984b365fbdbc976f62dfc2f6f9c25c971 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Wed, 24 Jul 2024 22:25:58 +0800 Subject: [PATCH 028/101] =?UTF-8?q?refactor=EF=BC=9Adynamic-tp-spring?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=AE=9A=E4=B9=89=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adapter/adapter-common/pom.xml | 9 -------- adapter/adapter-okhttp3/pom.xml | 6 ------ adapter/pom.xml | 5 +++++ .../common/manager/RefreshedEvent.java | 21 ------------------- dependencies/pom.xml | 6 ++++++ spring/pom.xml | 9 +++----- 6 files changed, 14 insertions(+), 42 deletions(-) delete mode 100644 common/src/main/java/org/dromara/dynamictp/common/manager/RefreshedEvent.java diff --git a/adapter/adapter-common/pom.xml b/adapter/adapter-common/pom.xml index 988c1cc86..befb17810 100644 --- a/adapter/adapter-common/pom.xml +++ b/adapter/adapter-common/pom.xml @@ -9,13 +9,4 @@ ../pom.xml dynamic-tp-adapter-common - - - org.dromara.dynamictp - dynamic-tp-spring - 1.1.8-beta - compile - - - diff --git a/adapter/adapter-okhttp3/pom.xml b/adapter/adapter-okhttp3/pom.xml index 2e594cac0..ddf0cb290 100644 --- a/adapter/adapter-okhttp3/pom.xml +++ b/adapter/adapter-okhttp3/pom.xml @@ -22,12 +22,6 @@ true - - org.dromara.dynamictp - dynamic-tp-spring - 1.1.8-beta - compile - diff --git a/adapter/pom.xml b/adapter/pom.xml index ca1eb4e36..551af6ece 100644 --- a/adapter/pom.xml +++ b/adapter/pom.xml @@ -30,5 +30,10 @@ org.dromara.dynamictp dynamic-tp-core + + + org.dromara.dynamictp + dynamic-tp-spring + diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/RefreshedEvent.java b/common/src/main/java/org/dromara/dynamictp/common/manager/RefreshedEvent.java deleted file mode 100644 index 86279dfd5..000000000 --- a/common/src/main/java/org/dromara/dynamictp/common/manager/RefreshedEvent.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.dromara.dynamictp.common.manager; - -import org.dromara.dynamictp.common.properties.DtpProperties; - -public class RefreshedEvent { - private final Object source; - - public RefreshedEvent(Object source) { - this.source = source; - } - - public Object getSource() { - return source; - } - - // 提供默认实现,子类可以重写这个方法 - public DtpProperties getDtpProperties() { - return null; - } -} - diff --git a/dependencies/pom.xml b/dependencies/pom.xml index ba00b1c4e..12ae223cb 100644 --- a/dependencies/pom.xml +++ b/dependencies/pom.xml @@ -354,6 +354,12 @@ ${revision} + + org.dromara.dynamictp + dynamic-tp-spring + ${revision} + + org.dromara.dynamictp dynamic-tp-adapter-common diff --git a/spring/pom.xml b/spring/pom.xml index 82b19ad7d..1591425db 100644 --- a/spring/pom.xml +++ b/spring/pom.xml @@ -1,7 +1,6 @@ - + 4.0.0 org.dromara.dynamictp @@ -9,12 +8,10 @@ ${revision} ../pom.xml - - dynamic-tp-spring - + org.springframework spring-context From 3fd9c6199f79e3a841e0e7abe42bf2ce57f34787 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Wed, 24 Jul 2024 22:37:19 +0800 Subject: [PATCH 029/101] =?UTF-8?q?refactor=EF=BC=9Adynamic-tp-spring?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=AE=9A=E4=B9=89=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- starter/starter-common/pom.xml | 2 -- 1 file changed, 2 deletions(-) diff --git a/starter/starter-common/pom.xml b/starter/starter-common/pom.xml index 8ff312afa..74d2d4545 100644 --- a/starter/starter-common/pom.xml +++ b/starter/starter-common/pom.xml @@ -34,8 +34,6 @@ org.dromara.dynamictp dynamic-tp-spring - 1.1.8-beta - compile \ No newline at end of file From f3eb49cedaed46c33017594916197933c172564c Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Wed, 24 Jul 2024 22:37:42 +0800 Subject: [PATCH 030/101] =?UTF-8?q?refactor=EF=BC=9A=E8=AF=AF=E5=88=A0?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dromara/dynamictp/example/BrpcExampleApplication.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/example/example-adapter/example-adapter-brpc/src/main/java/org/dromara/dynamictp/example/BrpcExampleApplication.java b/example/example-adapter/example-adapter-brpc/src/main/java/org/dromara/dynamictp/example/BrpcExampleApplication.java index 694137497..dcb4d64d5 100644 --- a/example/example-adapter/example-adapter-brpc/src/main/java/org/dromara/dynamictp/example/BrpcExampleApplication.java +++ b/example/example-adapter/example-adapter-brpc/src/main/java/org/dromara/dynamictp/example/BrpcExampleApplication.java @@ -18,6 +18,7 @@ package org.dromara.dynamictp.example; import com.baidu.cloud.starlight.springcloud.server.annotation.StarlightScan; +import org.dromara.dynamictp.spring.ex.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -25,6 +26,7 @@ * @author fabian4 */ @StarlightScan +@EnableDynamicTp @SpringBootApplication public class BrpcExampleApplication { public static void main(String[] args) { From 0b7e22ce08ac7cfca41012c60b692d92239093b1 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Wed, 24 Jul 2024 22:46:10 +0800 Subject: [PATCH 031/101] =?UTF-8?q?refactor=EF=BC=9A=E6=94=B9=E7=94=A8Even?= =?UTF-8?q?tObject?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/common/DtpAdapterListener.java | 14 +++++++++----- .../dynamictp/common/event/AlarmCheckEvent.java | 2 +- .../dynamictp/common/event/CollectEvent.java | 3 ++- .../dynamictp/common/event/RefreshEvent.java | 2 +- .../org/dromara/dynamictp/core/DtpRegistry.java | 9 ++------- .../dromara/dynamictp/core/monitor/DtpMonitor.java | 4 ++-- 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java index 1ca299b54..47876e7ed 100644 --- a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java +++ b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java @@ -22,7 +22,6 @@ import org.dromara.dynamictp.common.event.CollectEvent; import org.dromara.dynamictp.common.event.RefreshEvent; import org.dromara.dynamictp.common.manager.ContextManagerHelper; -import org.dromara.dynamictp.common.manager.RefreshedEvent; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.core.handler.CollectorHandler; import org.dromara.dynamictp.core.notifier.manager.AlarmManager; @@ -30,6 +29,8 @@ import lombok.val; import org.springframework.util.CollectionUtils; +import java.util.EventObject; + import static org.dromara.dynamictp.common.constant.DynamicTpConst.SCHEDULE_NOTIFY_ITEMS; /** @@ -42,14 +43,17 @@ public class DtpAdapterListener { @Subscribe - public void handleRefreshedEvent(RefreshedEvent event) { + public void handleRefreshedEvent(EventObject event) { try { if (event instanceof RefreshEvent) { - doRefresh(event.getDtpProperties()); + RefreshEvent refreshEvent = (RefreshEvent) event; + doRefresh(refreshEvent.getDtpProperties()); } else if (event instanceof CollectEvent) { - doCollect(event.getDtpProperties()); + CollectEvent collectEvent = (CollectEvent) event; + doCollect(collectEvent.getDtpProperties()); } else if (event instanceof AlarmCheckEvent) { - doAlarmCheck(event.getDtpProperties()); + AlarmCheckEvent alarmCheckEvent = (AlarmCheckEvent) event; + doAlarmCheck(alarmCheckEvent.getDtpProperties()); } } catch (Exception e) { log.error("DynamicTp adapter, event handle failed.", e); diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java index 868ee6800..7eafdee98 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java @@ -21,6 +21,7 @@ import java.util.EventObject; + /** * AlarmCheckEvent related * @@ -36,7 +37,6 @@ public AlarmCheckEvent(Object source, DtpProperties dtpProperties) { this.dtpProperties = dtpProperties; } - public DtpProperties getDtpProperties() { return dtpProperties; } diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java index eb21f2525..e722ce10c 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java @@ -21,13 +21,14 @@ import java.util.EventObject; + /** * CollectEvent related * * @author yanhom * @since 1.0.0 */ -public class CollectEvent extends EventObject{ +public class CollectEvent extends EventObject { private final transient DtpProperties dtpProperties; diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java index bc1fc800b..2794b1858 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java @@ -27,7 +27,7 @@ * @author yanhom * @since 1.0.0 */ -public class RefreshEvent extends EventObject{ +public class RefreshEvent extends EventObject { private final transient DtpProperties dtpProperties; diff --git a/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java b/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java index 0c3cab5c1..9278372c5 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java +++ b/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java @@ -30,7 +30,6 @@ import org.dromara.dynamictp.common.entity.TpMainFields; import org.dromara.dynamictp.common.ex.DtpException; import org.dromara.dynamictp.common.manager.EventBusManager; -import org.dromara.dynamictp.common.manager.RefreshedEvent; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.common.queue.MemorySafeLinkedBlockingQueue; import org.dromara.dynamictp.common.queue.VariableLinkedBlockingQueue; @@ -47,11 +46,7 @@ import org.dromara.dynamictp.core.support.task.wrapper.TaskWrappers; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; +import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Executor; import java.util.stream.Collectors; @@ -337,7 +332,7 @@ private static void updateQueueProps(ExecutorAdapter executor, DtpExecutorPro } @Subscribe - public void onContextRefreshedEvent(RefreshedEvent event) { + public void onContextRefreshedEvent(EventObject event) { Set remoteExecutors = Collections.emptySet(); if (CollectionUtils.isNotEmpty(dtpProperties.getExecutors())) { remoteExecutors = dtpProperties.getExecutors().stream() diff --git a/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java b/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java index 9a0262e1a..af95a4168 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java +++ b/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java @@ -25,7 +25,6 @@ import org.dromara.dynamictp.common.event.CollectEvent; import org.dromara.dynamictp.common.manager.EventBusManager; -import org.dromara.dynamictp.common.manager.RefreshedEvent; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.core.DtpRegistry; @@ -36,6 +35,7 @@ import org.dromara.dynamictp.core.support.ThreadPoolCreator; +import java.util.EventObject; import java.util.Set; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; @@ -67,7 +67,7 @@ public DtpMonitor(DtpProperties dtpProperties) { } @Subscribe - public synchronized void onContextRefreshedEvent(RefreshedEvent event) { + public synchronized void onContextRefreshedEvent(EventObject event) { // if monitorInterval is same as before, do nothing. if (monitorInterval == dtpProperties.getMonitorInterval()) { return; From 7b5aac6a4cf12153c8c9820787f5d251dcfeda37 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Wed, 24 Jul 2024 22:51:22 +0800 Subject: [PATCH 032/101] =?UTF-8?q?refactor=EF=BC=9A=E5=8C=85=E5=90=8D?= =?UTF-8?q?=E7=A7=BB=E9=99=A4ex=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dynamictp/adapter/common/AbstractDtpAdapter.java | 2 +- .../dromara/dynamictp/example/BrpcExampleApplication.java | 2 +- .../spring/{ex => }/AbstractSpringRefresher.java | 2 +- .../spring/{ex => }/DtpBaseBeanConfiguration.java | 2 +- .../spring/{ex => }/DtpBaseBeanDefinitionRegistrar.java | 2 +- .../spring/{ex => }/DtpBeanDefinitionRegistrar.java | 2 +- .../spring/{ex => }/DtpConfigurationSelector.java | 2 +- .../dynamictp/spring/{ex => }/DtpPostProcessor.java | 2 +- .../dynamictp/spring/{ex => }/EnableDynamicTp.java | 2 +- .../dynamictp/spring/{ex => }/SpringBeanHelper.java | 2 +- .../dynamictp/spring/{ex => }/SpringContextHolder.java | 6 +++--- .../spring/{ex => }/YamlPropertySourceFactory.java | 2 +- .../org.dromara.dynamictp.common.manager.ContextManager | 2 +- .../brpc/autoconfigure/BrpcTpAutoConfiguration.java | 2 +- .../autoconfigure/AdapterCommonAutoConfiguration.java | 2 +- .../autoconfigure/AlibabaDubboTpAutoConfiguration.java | 2 +- .../autoconfigure/ApacheDubboTpAutoConfiguration.java | 2 +- .../grpc/autoconfigure/GrpcTpAutoConfiguration.java | 2 +- .../hystrix/autoconfigure/HystrixTpAutoConfiguration.java | 2 +- .../motan/autoconfigure/MotanTpAutoConfiguration.java | 2 +- .../okhttp3/autoconfigure/Okhttp3TpAutoConfiguration.java | 2 +- .../autoconfigure/RabbitMqTpAutoConfiguration.java | 2 +- .../autoconfigure/AliyunOnsRocketMqAutoConfiguration.java | 2 +- .../autoconfigure/RocketMqTpAutoConfiguration.java | 2 +- .../sofa/autoconfigure/SofaTpAutoConfiguration.java | 2 +- .../tars/autoconfigure/TarsTpAutoConfiguration.java | 2 +- .../adapter/webserver/AbstractWebServerDtpAdapter.java | 2 +- .../autocconfigure/WebServerTpAutoConfiguration.java | 2 +- .../starter/common/DtpBootBeanConfiguration.java | 2 +- .../consul/autoconfigure/DtpConsulAutoConfiguration.java | 2 +- .../cloud/consul/refresher/CloudConsulRefresher.java | 2 +- .../huawei/autoconfigure/DtpHuaweiAutoConfiguration.java | 2 +- .../cloud/huawei/refresher/CloudHuaweiRefresher.java | 2 +- .../autoconfigure/DtpCloudNacosAutoConfiguration.java | 2 +- .../cloud/nacos/refresher/CloudNacosRefresher.java | 2 +- .../autoconfigure/DtpPolarisAutoConfiguration.java | 2 +- .../cloud/polaris/refresher/CloudPolarisRefresher.java | 2 +- .../autoconfigure/DtpCloudZkAutoConfiguration.java | 2 +- .../zookeeper/refresher/CloudZookeeperRefresher.java | 2 +- .../apollo/autoconfigure/DtpApolloAutoConfiguration.java | 2 +- .../starter/apollo/refresher/ApolloRefresher.java | 2 +- .../etcd/autoconfigure/DtpEtcdAutoConfiguration.java | 2 +- .../dynamictp/starter/etcd/refresher/EtcdRefresher.java | 2 +- .../nacos/autoconfigure/DtpNacosAutoConfiguration.java | 2 +- .../dynamictp/starter/nacos/refresher/NacosRefresher.java | 2 +- .../zookeeper/autoconfigure/DtpZkAutoConfiguration.java | 2 +- .../starter/zookeeper/refresher/ZookeeperRefresher.java | 2 +- .../dromara/dynamictp/test/configcenter/DtpBaseTest.java | 4 ++-- .../test/core/notify/AbstractDtpNotifierTest.java | 2 +- .../test/core/spring/DtpBaseBeanConfigurationTest.java | 8 ++++---- .../dynamictp/test/core/spring/DtpPostProcessorTest.java | 2 +- .../dynamictp/test/core/spring/PropertiesBinderTest.java | 2 +- .../dynamictp/test/core/thread/DtpExecutorTest.java | 2 +- .../dynamictp/test/core/thread/EagerDtpExecutorTest.java | 2 +- .../test/core/thread/OrderedDtpExecutorTest.java | 2 +- .../test/core/thread/PriorityDtpExecutorTest.java | 2 +- .../test/core/thread/ScheduledDtpExecutorTest.java | 2 +- .../src/test/resources/META-INF/spring.factories | 6 +++--- 58 files changed, 66 insertions(+), 66 deletions(-) rename spring/src/main/java/org/dromara/dynamictp/spring/{ex => }/AbstractSpringRefresher.java (96%) rename spring/src/main/java/org/dromara/dynamictp/spring/{ex => }/DtpBaseBeanConfiguration.java (98%) rename spring/src/main/java/org/dromara/dynamictp/spring/{ex => }/DtpBaseBeanDefinitionRegistrar.java (98%) rename spring/src/main/java/org/dromara/dynamictp/spring/{ex => }/DtpBeanDefinitionRegistrar.java (99%) rename spring/src/main/java/org/dromara/dynamictp/spring/{ex => }/DtpConfigurationSelector.java (98%) rename spring/src/main/java/org/dromara/dynamictp/spring/{ex => }/DtpPostProcessor.java (99%) rename spring/src/main/java/org/dromara/dynamictp/spring/{ex => }/EnableDynamicTp.java (96%) rename spring/src/main/java/org/dromara/dynamictp/spring/{ex => }/SpringBeanHelper.java (99%) rename spring/src/main/java/org/dromara/dynamictp/spring/{ex => }/SpringContextHolder.java (96%) rename spring/src/main/java/org/dromara/dynamictp/spring/{ex => }/YamlPropertySourceFactory.java (97%) diff --git a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java index 96ed0c292..abc1b6d2e 100644 --- a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java +++ b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java @@ -43,7 +43,7 @@ import org.dromara.dynamictp.core.support.ThreadPoolExecutorProxy; import org.dromara.dynamictp.core.support.task.wrapper.TaskWrapper; import org.dromara.dynamictp.core.support.task.wrapper.TaskWrappers; -import org.dromara.dynamictp.spring.ex.SpringContextHolder; +import org.dromara.dynamictp.spring.SpringContextHolder; import org.springframework.context.event.ContextRefreshedEvent; import java.util.Collections; diff --git a/example/example-adapter/example-adapter-brpc/src/main/java/org/dromara/dynamictp/example/BrpcExampleApplication.java b/example/example-adapter/example-adapter-brpc/src/main/java/org/dromara/dynamictp/example/BrpcExampleApplication.java index dcb4d64d5..b04b01e42 100644 --- a/example/example-adapter/example-adapter-brpc/src/main/java/org/dromara/dynamictp/example/BrpcExampleApplication.java +++ b/example/example-adapter/example-adapter-brpc/src/main/java/org/dromara/dynamictp/example/BrpcExampleApplication.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.example; import com.baidu.cloud.starlight.springcloud.server.annotation.StarlightScan; -import org.dromara.dynamictp.spring.ex.EnableDynamicTp; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/ex/AbstractSpringRefresher.java b/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java similarity index 96% rename from spring/src/main/java/org/dromara/dynamictp/spring/ex/AbstractSpringRefresher.java rename to spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java index f9915497f..c5412edc7 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/ex/AbstractSpringRefresher.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java @@ -1,4 +1,4 @@ -package org.dromara.dynamictp.spring.ex; +package org.dromara.dynamictp.spring; import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.common.properties.DtpProperties; diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBaseBeanConfiguration.java b/spring/src/main/java/org/dromara/dynamictp/spring/DtpBaseBeanConfiguration.java similarity index 98% rename from spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBaseBeanConfiguration.java rename to spring/src/main/java/org/dromara/dynamictp/spring/DtpBaseBeanConfiguration.java index a0d617093..cd20f0faf 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBaseBeanConfiguration.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/DtpBaseBeanConfiguration.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.spring.ex; +package org.dromara.dynamictp.spring; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.core.DtpRegistry; diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBaseBeanDefinitionRegistrar.java b/spring/src/main/java/org/dromara/dynamictp/spring/DtpBaseBeanDefinitionRegistrar.java similarity index 98% rename from spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBaseBeanDefinitionRegistrar.java rename to spring/src/main/java/org/dromara/dynamictp/spring/DtpBaseBeanDefinitionRegistrar.java index 70aab0919..ebb75b5e6 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBaseBeanDefinitionRegistrar.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/DtpBaseBeanDefinitionRegistrar.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.spring.ex; +package org.dromara.dynamictp.spring; import com.google.common.collect.Lists; diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBeanDefinitionRegistrar.java b/spring/src/main/java/org/dromara/dynamictp/spring/DtpBeanDefinitionRegistrar.java similarity index 99% rename from spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBeanDefinitionRegistrar.java rename to spring/src/main/java/org/dromara/dynamictp/spring/DtpBeanDefinitionRegistrar.java index f4100a0f6..33f0155fb 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpBeanDefinitionRegistrar.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/DtpBeanDefinitionRegistrar.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.spring.ex; +package org.dromara.dynamictp.spring; import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpConfigurationSelector.java b/spring/src/main/java/org/dromara/dynamictp/spring/DtpConfigurationSelector.java similarity index 98% rename from spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpConfigurationSelector.java rename to spring/src/main/java/org/dromara/dynamictp/spring/DtpConfigurationSelector.java index 42a020fb9..e2b9ce29a 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpConfigurationSelector.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/DtpConfigurationSelector.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.spring.ex; +package org.dromara.dynamictp.spring; import org.apache.commons.lang3.BooleanUtils; import org.springframework.context.EnvironmentAware; diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpPostProcessor.java b/spring/src/main/java/org/dromara/dynamictp/spring/DtpPostProcessor.java similarity index 99% rename from spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpPostProcessor.java rename to spring/src/main/java/org/dromara/dynamictp/spring/DtpPostProcessor.java index ee7a179e2..4eadd9068 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/ex/DtpPostProcessor.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/DtpPostProcessor.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.spring.ex; +package org.dromara.dynamictp.spring; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/ex/EnableDynamicTp.java b/spring/src/main/java/org/dromara/dynamictp/spring/EnableDynamicTp.java similarity index 96% rename from spring/src/main/java/org/dromara/dynamictp/spring/ex/EnableDynamicTp.java rename to spring/src/main/java/org/dromara/dynamictp/spring/EnableDynamicTp.java index fc229ebe9..5474c84de 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/ex/EnableDynamicTp.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/EnableDynamicTp.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.spring.ex; +package org.dromara.dynamictp.spring; import org.springframework.context.annotation.Import; diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringBeanHelper.java b/spring/src/main/java/org/dromara/dynamictp/spring/SpringBeanHelper.java similarity index 99% rename from spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringBeanHelper.java rename to spring/src/main/java/org/dromara/dynamictp/spring/SpringBeanHelper.java index b3306cead..5e15c85df 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringBeanHelper.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/SpringBeanHelper.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.spring.ex; +package org.dromara.dynamictp.spring; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringContextHolder.java b/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java similarity index 96% rename from spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringContextHolder.java rename to spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java index 0982e7d39..e5754bc92 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/ex/SpringContextHolder.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java @@ -1,10 +1,9 @@ -package org.dromara.dynamictp.spring.ex; +package org.dromara.dynamictp.spring; import org.dromara.dynamictp.common.manager.ContextManager; import org.dromara.dynamictp.common.manager.EventBusManager; -import org.dromara.dynamictp.common.manager.RefreshedEvent; import org.dromara.dynamictp.core.support.DtpBannerPrinter; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; @@ -14,6 +13,7 @@ import org.springframework.context.event.*; import org.springframework.core.env.Environment; +import java.util.EventObject; import java.util.Map; import java.util.Objects; @@ -77,7 +77,7 @@ public void onApplicationEvent(ApplicationEvent event) { } protected void onContextRefreshedEvent(ContextRefreshedEvent event) { - RefreshedEvent refreshedEvent = new RefreshedEvent(this); + EventObject refreshedEvent = new EventObject(this); EventBusManager.post(refreshedEvent); } diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/ex/YamlPropertySourceFactory.java b/spring/src/main/java/org/dromara/dynamictp/spring/YamlPropertySourceFactory.java similarity index 97% rename from spring/src/main/java/org/dromara/dynamictp/spring/ex/YamlPropertySourceFactory.java rename to spring/src/main/java/org/dromara/dynamictp/spring/YamlPropertySourceFactory.java index a739b721d..05d0069be 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/ex/YamlPropertySourceFactory.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/YamlPropertySourceFactory.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.spring.ex; +package org.dromara.dynamictp.spring; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; diff --git a/spring/src/main/resources/META-INF/services/org.dromara.dynamictp.common.manager.ContextManager b/spring/src/main/resources/META-INF/services/org.dromara.dynamictp.common.manager.ContextManager index 1af5ca70a..c1fd3b234 100644 --- a/spring/src/main/resources/META-INF/services/org.dromara.dynamictp.common.manager.ContextManager +++ b/spring/src/main/resources/META-INF/services/org.dromara.dynamictp.common.manager.ContextManager @@ -1 +1 @@ -org.dromara.dynamictp.spring.ex.SpringContextHolder +org.dromara.dynamictp.spring.SpringContextHolder diff --git a/starter/starter-adapter/starter-adapter-brpc/src/main/java/org/dromara/dynamictp/starter/adapter/brpc/autoconfigure/BrpcTpAutoConfiguration.java b/starter/starter-adapter/starter-adapter-brpc/src/main/java/org/dromara/dynamictp/starter/adapter/brpc/autoconfigure/BrpcTpAutoConfiguration.java index b49b3ab4a..cf35f129c 100644 --- a/starter/starter-adapter/starter-adapter-brpc/src/main/java/org/dromara/dynamictp/starter/adapter/brpc/autoconfigure/BrpcTpAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-brpc/src/main/java/org/dromara/dynamictp/starter/adapter/brpc/autoconfigure/BrpcTpAutoConfiguration.java @@ -19,7 +19,7 @@ import org.dromara.dynamictp.apapter.brpc.client.StarlightClientDtpAdapter; import org.dromara.dynamictp.apapter.brpc.server.StarlightServerDtpAdapter; -import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; diff --git a/starter/starter-adapter/starter-adapter-common/src/main/java/org/dromara/dynamictp/starter/adapter/common/autoconfigure/AdapterCommonAutoConfiguration.java b/starter/starter-adapter/starter-adapter-common/src/main/java/org/dromara/dynamictp/starter/adapter/common/autoconfigure/AdapterCommonAutoConfiguration.java index 244760c18..f7dd10866 100644 --- a/starter/starter-adapter/starter-adapter-common/src/main/java/org/dromara/dynamictp/starter/adapter/common/autoconfigure/AdapterCommonAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-common/src/main/java/org/dromara/dynamictp/starter/adapter/common/autoconfigure/AdapterCommonAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.adapter.common.autoconfigure; import org.dromara.dynamictp.adapter.common.DtpAdapterListener; -import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; diff --git a/starter/starter-adapter/starter-adapter-dubbo/src/main/java/org/dromara/dynamictp/starter/adapter/dubbo/autoconfigure/AlibabaDubboTpAutoConfiguration.java b/starter/starter-adapter/starter-adapter-dubbo/src/main/java/org/dromara/dynamictp/starter/adapter/dubbo/autoconfigure/AlibabaDubboTpAutoConfiguration.java index 33231b440..2df9704b2 100644 --- a/starter/starter-adapter/starter-adapter-dubbo/src/main/java/org/dromara/dynamictp/starter/adapter/dubbo/autoconfigure/AlibabaDubboTpAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-dubbo/src/main/java/org/dromara/dynamictp/starter/adapter/dubbo/autoconfigure/AlibabaDubboTpAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.adapter.dubbo.autoconfigure; import org.dromara.dynamictp.adapter.dubbo.alibaba.AlibabaDubboDtpAdapter; -import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.adapter.dubbo.autoconfigure.condition.ConditionOnAlibabaDubboApp; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; diff --git a/starter/starter-adapter/starter-adapter-dubbo/src/main/java/org/dromara/dynamictp/starter/adapter/dubbo/autoconfigure/ApacheDubboTpAutoConfiguration.java b/starter/starter-adapter/starter-adapter-dubbo/src/main/java/org/dromara/dynamictp/starter/adapter/dubbo/autoconfigure/ApacheDubboTpAutoConfiguration.java index 6535b8da0..b1c11e331 100644 --- a/starter/starter-adapter/starter-adapter-dubbo/src/main/java/org/dromara/dynamictp/starter/adapter/dubbo/autoconfigure/ApacheDubboTpAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-dubbo/src/main/java/org/dromara/dynamictp/starter/adapter/dubbo/autoconfigure/ApacheDubboTpAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.adapter.dubbo.autoconfigure; import org.dromara.dynamictp.adapter.dubbo.apache.ApacheDubboDtpAdapter; -import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.adapter.dubbo.autoconfigure.condition.ConditionOnApacheDubboApp; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; diff --git a/starter/starter-adapter/starter-adapter-grpc/src/main/java/org/dromara/dynamictp/starter/adapter/grpc/autoconfigure/GrpcTpAutoConfiguration.java b/starter/starter-adapter/starter-adapter-grpc/src/main/java/org/dromara/dynamictp/starter/adapter/grpc/autoconfigure/GrpcTpAutoConfiguration.java index 9c3d55198..d28b85778 100644 --- a/starter/starter-adapter/starter-adapter-grpc/src/main/java/org/dromara/dynamictp/starter/adapter/grpc/autoconfigure/GrpcTpAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-grpc/src/main/java/org/dromara/dynamictp/starter/adapter/grpc/autoconfigure/GrpcTpAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.adapter.grpc.autoconfigure; import org.dromara.dynamictp.adapter.grpc.GrpcDtpAdapter; -import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; diff --git a/starter/starter-adapter/starter-adapter-hystrix/src/main/java/org/dromara/dynamictp/starter/adapter/hystrix/autoconfigure/HystrixTpAutoConfiguration.java b/starter/starter-adapter/starter-adapter-hystrix/src/main/java/org/dromara/dynamictp/starter/adapter/hystrix/autoconfigure/HystrixTpAutoConfiguration.java index 70537cdf4..d944f979f 100644 --- a/starter/starter-adapter/starter-adapter-hystrix/src/main/java/org/dromara/dynamictp/starter/adapter/hystrix/autoconfigure/HystrixTpAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-hystrix/src/main/java/org/dromara/dynamictp/starter/adapter/hystrix/autoconfigure/HystrixTpAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.adapter.hystrix.autoconfigure; import org.dromara.dynamictp.adapter.hystrix.HystrixDtpAdapter; -import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; diff --git a/starter/starter-adapter/starter-adapter-motan/src/main/java/org/dromara/dynamictp/starter/adapter/motan/autoconfigure/MotanTpAutoConfiguration.java b/starter/starter-adapter/starter-adapter-motan/src/main/java/org/dromara/dynamictp/starter/adapter/motan/autoconfigure/MotanTpAutoConfiguration.java index 4dc8dd5cd..7b2456ea4 100644 --- a/starter/starter-adapter/starter-adapter-motan/src/main/java/org/dromara/dynamictp/starter/adapter/motan/autoconfigure/MotanTpAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-motan/src/main/java/org/dromara/dynamictp/starter/adapter/motan/autoconfigure/MotanTpAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.adapter.motan.autoconfigure; import org.dromara.dynamictp.adapter.motan.MotanDtpAdapter; -import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; diff --git a/starter/starter-adapter/starter-adapter-okhttp3/src/main/java/org/dromara/dynamictp/starter/adapter/okhttp3/autoconfigure/Okhttp3TpAutoConfiguration.java b/starter/starter-adapter/starter-adapter-okhttp3/src/main/java/org/dromara/dynamictp/starter/adapter/okhttp3/autoconfigure/Okhttp3TpAutoConfiguration.java index 76f4c70dc..b38fd4c0b 100644 --- a/starter/starter-adapter/starter-adapter-okhttp3/src/main/java/org/dromara/dynamictp/starter/adapter/okhttp3/autoconfigure/Okhttp3TpAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-okhttp3/src/main/java/org/dromara/dynamictp/starter/adapter/okhttp3/autoconfigure/Okhttp3TpAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.adapter.okhttp3.autoconfigure; import org.dromara.dynamictp.adapter.okhttp3.Okhttp3DtpAdapter; -import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; diff --git a/starter/starter-adapter/starter-adapter-rabbitmq/src/main/java/org/dromara/dynamictp/starter/adapter/rabbitmq/autoconfigure/RabbitMqTpAutoConfiguration.java b/starter/starter-adapter/starter-adapter-rabbitmq/src/main/java/org/dromara/dynamictp/starter/adapter/rabbitmq/autoconfigure/RabbitMqTpAutoConfiguration.java index daaa05632..f9dc959be 100644 --- a/starter/starter-adapter/starter-adapter-rabbitmq/src/main/java/org/dromara/dynamictp/starter/adapter/rabbitmq/autoconfigure/RabbitMqTpAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-rabbitmq/src/main/java/org/dromara/dynamictp/starter/adapter/rabbitmq/autoconfigure/RabbitMqTpAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.adapter.rabbitmq.autoconfigure; import org.dromara.dynamictp.adapter.rabbitmq.RabbitMqDtpAdapter; -import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; diff --git a/starter/starter-adapter/starter-adapter-rocketmq/src/main/java/org/dromara/dynamictp/starter/adapter/rocketmq/autoconfigure/AliyunOnsRocketMqAutoConfiguration.java b/starter/starter-adapter/starter-adapter-rocketmq/src/main/java/org/dromara/dynamictp/starter/adapter/rocketmq/autoconfigure/AliyunOnsRocketMqAutoConfiguration.java index 5b02cf544..889f0c63f 100644 --- a/starter/starter-adapter/starter-adapter-rocketmq/src/main/java/org/dromara/dynamictp/starter/adapter/rocketmq/autoconfigure/AliyunOnsRocketMqAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-rocketmq/src/main/java/org/dromara/dynamictp/starter/adapter/rocketmq/autoconfigure/AliyunOnsRocketMqAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.adapter.rocketmq.autoconfigure; import org.dromara.dynamictp.adapter.rocketmq.AliyunOnsRocketMqAdapter; -import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; diff --git a/starter/starter-adapter/starter-adapter-rocketmq/src/main/java/org/dromara/dynamictp/starter/adapter/rocketmq/autoconfigure/RocketMqTpAutoConfiguration.java b/starter/starter-adapter/starter-adapter-rocketmq/src/main/java/org/dromara/dynamictp/starter/adapter/rocketmq/autoconfigure/RocketMqTpAutoConfiguration.java index 112c6c3b0..46681282c 100644 --- a/starter/starter-adapter/starter-adapter-rocketmq/src/main/java/org/dromara/dynamictp/starter/adapter/rocketmq/autoconfigure/RocketMqTpAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-rocketmq/src/main/java/org/dromara/dynamictp/starter/adapter/rocketmq/autoconfigure/RocketMqTpAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.adapter.rocketmq.autoconfigure; import org.dromara.dynamictp.adapter.rocketmq.RocketMqDtpAdapter; -import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; diff --git a/starter/starter-adapter/starter-adapter-sofa/src/main/java/org/dromara/dynamictp/starter/adapter/sofa/autoconfigure/SofaTpAutoConfiguration.java b/starter/starter-adapter/starter-adapter-sofa/src/main/java/org/dromara/dynamictp/starter/adapter/sofa/autoconfigure/SofaTpAutoConfiguration.java index c18355d44..a2fbf96e2 100644 --- a/starter/starter-adapter/starter-adapter-sofa/src/main/java/org/dromara/dynamictp/starter/adapter/sofa/autoconfigure/SofaTpAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-sofa/src/main/java/org/dromara/dynamictp/starter/adapter/sofa/autoconfigure/SofaTpAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.adapter.sofa.autoconfigure; import org.dromara.dynamictp.adapter.sofa.SofaDtpAdapter; -import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; diff --git a/starter/starter-adapter/starter-adapter-tars/src/main/java/org/dromara/dynamictp/starter/adapter/tars/autoconfigure/TarsTpAutoConfiguration.java b/starter/starter-adapter/starter-adapter-tars/src/main/java/org/dromara/dynamictp/starter/adapter/tars/autoconfigure/TarsTpAutoConfiguration.java index 717157f30..187fef76e 100644 --- a/starter/starter-adapter/starter-adapter-tars/src/main/java/org/dromara/dynamictp/starter/adapter/tars/autoconfigure/TarsTpAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-tars/src/main/java/org/dromara/dynamictp/starter/adapter/tars/autoconfigure/TarsTpAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.adapter.tars.autoconfigure; import org.dromara.dynamictp.adapter.tars.TarsDtpAdapter; -import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; diff --git a/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/AbstractWebServerDtpAdapter.java b/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/AbstractWebServerDtpAdapter.java index 0982178d3..8b899a338 100644 --- a/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/AbstractWebServerDtpAdapter.java +++ b/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/AbstractWebServerDtpAdapter.java @@ -22,7 +22,7 @@ import org.dromara.dynamictp.common.manager.ContextManagerHelper; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.core.converter.ExecutorConverter; -import org.dromara.dynamictp.spring.ex.SpringContextHolder; +import org.dromara.dynamictp.spring.SpringContextHolder; import org.springframework.boot.web.context.WebServerApplicationContext; import org.springframework.boot.web.context.WebServerInitializedEvent; import org.springframework.boot.web.server.WebServer; diff --git a/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/autocconfigure/WebServerTpAutoConfiguration.java b/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/autocconfigure/WebServerTpAutoConfiguration.java index 82aea84c9..3c60c07a1 100644 --- a/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/autocconfigure/WebServerTpAutoConfiguration.java +++ b/starter/starter-adapter/starter-adapter-webserver/src/main/java/org/dromara/dynamictp/starter/adapter/webserver/autocconfigure/WebServerTpAutoConfiguration.java @@ -17,7 +17,7 @@ package org.dromara.dynamictp.starter.adapter.webserver.autocconfigure; -import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.adapter.webserver.autocconfigure.condition.ConditionalOnJettyWebServer; import org.dromara.dynamictp.starter.adapter.webserver.autocconfigure.condition.ConditionalOnTomcatWebServer; import org.dromara.dynamictp.starter.adapter.webserver.autocconfigure.condition.ConditionalOnUndertowWebServer; diff --git a/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/DtpBootBeanConfiguration.java b/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/DtpBootBeanConfiguration.java index 52a8b2142..ec66e4174 100644 --- a/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/DtpBootBeanConfiguration.java +++ b/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/DtpBootBeanConfiguration.java @@ -17,7 +17,7 @@ package org.dromara.dynamictp.starter.common; -import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.common.monitor.DtpEndpoint; import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnAvailableEndpoint; import org.springframework.boot.autoconfigure.AutoConfigureAfter; diff --git a/starter/starter-configcenter/cloud-starter-consul/src/main/java/org/dromara/dynamictp/starter/cloud/consul/autoconfigure/DtpConsulAutoConfiguration.java b/starter/starter-configcenter/cloud-starter-consul/src/main/java/org/dromara/dynamictp/starter/cloud/consul/autoconfigure/DtpConsulAutoConfiguration.java index 7fd6c7214..6ae2b305c 100644 --- a/starter/starter-configcenter/cloud-starter-consul/src/main/java/org/dromara/dynamictp/starter/cloud/consul/autoconfigure/DtpConsulAutoConfiguration.java +++ b/starter/starter-configcenter/cloud-starter-consul/src/main/java/org/dromara/dynamictp/starter/cloud/consul/autoconfigure/DtpConsulAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.cloud.consul.autoconfigure; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.cloud.consul.refresher.CloudConsulRefresher; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; diff --git a/starter/starter-configcenter/cloud-starter-consul/src/main/java/org/dromara/dynamictp/starter/cloud/consul/refresher/CloudConsulRefresher.java b/starter/starter-configcenter/cloud-starter-consul/src/main/java/org/dromara/dynamictp/starter/cloud/consul/refresher/CloudConsulRefresher.java index 87ab0c8ba..0721efc39 100644 --- a/starter/starter-configcenter/cloud-starter-consul/src/main/java/org/dromara/dynamictp/starter/cloud/consul/refresher/CloudConsulRefresher.java +++ b/starter/starter-configcenter/cloud-starter-consul/src/main/java/org/dromara/dynamictp/starter/cloud/consul/refresher/CloudConsulRefresher.java @@ -19,7 +19,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.spring.ex.AbstractSpringRefresher; +import org.dromara.dynamictp.spring.AbstractSpringRefresher; import org.springframework.cloud.context.environment.EnvironmentChangeEvent; import org.springframework.context.ApplicationEvent; import org.springframework.context.event.SmartApplicationListener; diff --git a/starter/starter-configcenter/cloud-starter-huawei/src/main/java/org/dromara/dynamictp/starter/cloud/huawei/autoconfigure/DtpHuaweiAutoConfiguration.java b/starter/starter-configcenter/cloud-starter-huawei/src/main/java/org/dromara/dynamictp/starter/cloud/huawei/autoconfigure/DtpHuaweiAutoConfiguration.java index 6648272df..5d4f7702b 100644 --- a/starter/starter-configcenter/cloud-starter-huawei/src/main/java/org/dromara/dynamictp/starter/cloud/huawei/autoconfigure/DtpHuaweiAutoConfiguration.java +++ b/starter/starter-configcenter/cloud-starter-huawei/src/main/java/org/dromara/dynamictp/starter/cloud/huawei/autoconfigure/DtpHuaweiAutoConfiguration.java @@ -19,7 +19,7 @@ import com.huaweicloud.common.configration.bootstrap.ConfigBootstrapProperties; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.cloud.huawei.refresher.CloudHuaweiRefresher; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; diff --git a/starter/starter-configcenter/cloud-starter-huawei/src/main/java/org/dromara/dynamictp/starter/cloud/huawei/refresher/CloudHuaweiRefresher.java b/starter/starter-configcenter/cloud-starter-huawei/src/main/java/org/dromara/dynamictp/starter/cloud/huawei/refresher/CloudHuaweiRefresher.java index c2305c5aa..eeaca9e92 100644 --- a/starter/starter-configcenter/cloud-starter-huawei/src/main/java/org/dromara/dynamictp/starter/cloud/huawei/refresher/CloudHuaweiRefresher.java +++ b/starter/starter-configcenter/cloud-starter-huawei/src/main/java/org/dromara/dynamictp/starter/cloud/huawei/refresher/CloudHuaweiRefresher.java @@ -19,7 +19,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.spring.ex.AbstractSpringRefresher; +import org.dromara.dynamictp.spring.AbstractSpringRefresher; import org.springframework.cloud.context.environment.EnvironmentChangeEvent; import org.springframework.context.ApplicationEvent; import org.springframework.context.event.SmartApplicationListener; diff --git a/starter/starter-configcenter/cloud-starter-nacos/src/main/java/org/dromara/dynamictp/starter/cloud/nacos/autoconfigure/DtpCloudNacosAutoConfiguration.java b/starter/starter-configcenter/cloud-starter-nacos/src/main/java/org/dromara/dynamictp/starter/cloud/nacos/autoconfigure/DtpCloudNacosAutoConfiguration.java index e912620e0..9a67ceef9 100644 --- a/starter/starter-configcenter/cloud-starter-nacos/src/main/java/org/dromara/dynamictp/starter/cloud/nacos/autoconfigure/DtpCloudNacosAutoConfiguration.java +++ b/starter/starter-configcenter/cloud-starter-nacos/src/main/java/org/dromara/dynamictp/starter/cloud/nacos/autoconfigure/DtpCloudNacosAutoConfiguration.java @@ -20,7 +20,7 @@ import com.alibaba.cloud.nacos.NacosConfigManager; import com.alibaba.cloud.nacos.NacosConfigProperties; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.cloud.nacos.refresher.CloudNacosRefresher; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; diff --git a/starter/starter-configcenter/cloud-starter-nacos/src/main/java/org/dromara/dynamictp/starter/cloud/nacos/refresher/CloudNacosRefresher.java b/starter/starter-configcenter/cloud-starter-nacos/src/main/java/org/dromara/dynamictp/starter/cloud/nacos/refresher/CloudNacosRefresher.java index bbeeca0d3..555e2fc06 100644 --- a/starter/starter-configcenter/cloud-starter-nacos/src/main/java/org/dromara/dynamictp/starter/cloud/nacos/refresher/CloudNacosRefresher.java +++ b/starter/starter-configcenter/cloud-starter-nacos/src/main/java/org/dromara/dynamictp/starter/cloud/nacos/refresher/CloudNacosRefresher.java @@ -19,7 +19,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.spring.ex.AbstractSpringRefresher; +import org.dromara.dynamictp.spring.AbstractSpringRefresher; import org.springframework.cloud.context.environment.EnvironmentChangeEvent; import org.springframework.context.ApplicationEvent; import org.springframework.context.event.SmartApplicationListener; diff --git a/starter/starter-configcenter/cloud-starter-polaris/src/main/java/org/dromara/dynamictp/starter/cloud/polaris/autoconfigure/DtpPolarisAutoConfiguration.java b/starter/starter-configcenter/cloud-starter-polaris/src/main/java/org/dromara/dynamictp/starter/cloud/polaris/autoconfigure/DtpPolarisAutoConfiguration.java index 8d29ea6aa..d81c6f5bc 100644 --- a/starter/starter-configcenter/cloud-starter-polaris/src/main/java/org/dromara/dynamictp/starter/cloud/polaris/autoconfigure/DtpPolarisAutoConfiguration.java +++ b/starter/starter-configcenter/cloud-starter-polaris/src/main/java/org/dromara/dynamictp/starter/cloud/polaris/autoconfigure/DtpPolarisAutoConfiguration.java @@ -19,7 +19,7 @@ import com.tencent.cloud.polaris.config.config.PolarisConfigProperties; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.cloud.polaris.refresher.CloudPolarisRefresher; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; diff --git a/starter/starter-configcenter/cloud-starter-polaris/src/main/java/org/dromara/dynamictp/starter/cloud/polaris/refresher/CloudPolarisRefresher.java b/starter/starter-configcenter/cloud-starter-polaris/src/main/java/org/dromara/dynamictp/starter/cloud/polaris/refresher/CloudPolarisRefresher.java index c48202a4d..713504ed4 100644 --- a/starter/starter-configcenter/cloud-starter-polaris/src/main/java/org/dromara/dynamictp/starter/cloud/polaris/refresher/CloudPolarisRefresher.java +++ b/starter/starter-configcenter/cloud-starter-polaris/src/main/java/org/dromara/dynamictp/starter/cloud/polaris/refresher/CloudPolarisRefresher.java @@ -19,7 +19,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.spring.ex.AbstractSpringRefresher; +import org.dromara.dynamictp.spring.AbstractSpringRefresher; import org.springframework.cloud.context.environment.EnvironmentChangeEvent; import org.springframework.context.ApplicationEvent; import org.springframework.context.event.SmartApplicationListener; diff --git a/starter/starter-configcenter/cloud-starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/cloud/zookeeper/autoconfigure/DtpCloudZkAutoConfiguration.java b/starter/starter-configcenter/cloud-starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/cloud/zookeeper/autoconfigure/DtpCloudZkAutoConfiguration.java index 611fb3134..67576fabc 100644 --- a/starter/starter-configcenter/cloud-starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/cloud/zookeeper/autoconfigure/DtpCloudZkAutoConfiguration.java +++ b/starter/starter-configcenter/cloud-starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/cloud/zookeeper/autoconfigure/DtpCloudZkAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.cloud.zookeeper.autoconfigure; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.cloud.zookeeper.refresher.CloudZookeeperRefresher; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; diff --git a/starter/starter-configcenter/cloud-starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/cloud/zookeeper/refresher/CloudZookeeperRefresher.java b/starter/starter-configcenter/cloud-starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/cloud/zookeeper/refresher/CloudZookeeperRefresher.java index b62418960..203ab54b5 100644 --- a/starter/starter-configcenter/cloud-starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/cloud/zookeeper/refresher/CloudZookeeperRefresher.java +++ b/starter/starter-configcenter/cloud-starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/cloud/zookeeper/refresher/CloudZookeeperRefresher.java @@ -19,7 +19,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.spring.ex.AbstractSpringRefresher; +import org.dromara.dynamictp.spring.AbstractSpringRefresher; import org.springframework.cloud.context.environment.EnvironmentChangeEvent; import org.springframework.context.ApplicationEvent; import org.springframework.context.event.SmartApplicationListener; diff --git a/starter/starter-configcenter/starter-apollo/src/main/java/org/dromara/dynamictp/starter/apollo/autoconfigure/DtpApolloAutoConfiguration.java b/starter/starter-configcenter/starter-apollo/src/main/java/org/dromara/dynamictp/starter/apollo/autoconfigure/DtpApolloAutoConfiguration.java index 947900db9..91af3f8d0 100644 --- a/starter/starter-configcenter/starter-apollo/src/main/java/org/dromara/dynamictp/starter/apollo/autoconfigure/DtpApolloAutoConfiguration.java +++ b/starter/starter-configcenter/starter-apollo/src/main/java/org/dromara/dynamictp/starter/apollo/autoconfigure/DtpApolloAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.apollo.autoconfigure; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.apollo.refresher.ApolloRefresher; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; diff --git a/starter/starter-configcenter/starter-apollo/src/main/java/org/dromara/dynamictp/starter/apollo/refresher/ApolloRefresher.java b/starter/starter-configcenter/starter-apollo/src/main/java/org/dromara/dynamictp/starter/apollo/refresher/ApolloRefresher.java index 8fa37148d..78a8e4070 100644 --- a/starter/starter-configcenter/starter-apollo/src/main/java/org/dromara/dynamictp/starter/apollo/refresher/ApolloRefresher.java +++ b/starter/starter-configcenter/starter-apollo/src/main/java/org/dromara/dynamictp/starter/apollo/refresher/ApolloRefresher.java @@ -30,7 +30,7 @@ import org.dromara.dynamictp.common.em.ConfigFileTypeEnum; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.core.handler.ConfigHandler; -import org.dromara.dynamictp.spring.ex.AbstractSpringRefresher; +import org.dromara.dynamictp.spring.AbstractSpringRefresher; import org.springframework.beans.factory.InitializingBean; import java.io.IOException; diff --git a/starter/starter-configcenter/starter-etcd/src/main/java/org/dromara/dynamictp/starter/etcd/autoconfigure/DtpEtcdAutoConfiguration.java b/starter/starter-configcenter/starter-etcd/src/main/java/org/dromara/dynamictp/starter/etcd/autoconfigure/DtpEtcdAutoConfiguration.java index 66679e77b..d3ab5940e 100644 --- a/starter/starter-configcenter/starter-etcd/src/main/java/org/dromara/dynamictp/starter/etcd/autoconfigure/DtpEtcdAutoConfiguration.java +++ b/starter/starter-configcenter/starter-etcd/src/main/java/org/dromara/dynamictp/starter/etcd/autoconfigure/DtpEtcdAutoConfiguration.java @@ -19,7 +19,7 @@ import io.etcd.jetcd.Client; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.etcd.refresher.EtcdRefresher; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; diff --git a/starter/starter-configcenter/starter-etcd/src/main/java/org/dromara/dynamictp/starter/etcd/refresher/EtcdRefresher.java b/starter/starter-configcenter/starter-etcd/src/main/java/org/dromara/dynamictp/starter/etcd/refresher/EtcdRefresher.java index fb945b516..edf263c64 100644 --- a/starter/starter-configcenter/starter-etcd/src/main/java/org/dromara/dynamictp/starter/etcd/refresher/EtcdRefresher.java +++ b/starter/starter-configcenter/starter-etcd/src/main/java/org/dromara/dynamictp/starter/etcd/refresher/EtcdRefresher.java @@ -20,7 +20,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.core.support.BinderHelper; -import org.dromara.dynamictp.spring.ex.AbstractSpringRefresher; +import org.dromara.dynamictp.spring.AbstractSpringRefresher; import org.dromara.dynamictp.starter.etcd.util.EtcdUtil; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; diff --git a/starter/starter-configcenter/starter-nacos/src/main/java/org/dromara/dynamictp/starter/nacos/autoconfigure/DtpNacosAutoConfiguration.java b/starter/starter-configcenter/starter-nacos/src/main/java/org/dromara/dynamictp/starter/nacos/autoconfigure/DtpNacosAutoConfiguration.java index dec1e73ac..2b2f94a75 100644 --- a/starter/starter-configcenter/starter-nacos/src/main/java/org/dromara/dynamictp/starter/nacos/autoconfigure/DtpNacosAutoConfiguration.java +++ b/starter/starter-configcenter/starter-nacos/src/main/java/org/dromara/dynamictp/starter/nacos/autoconfigure/DtpNacosAutoConfiguration.java @@ -19,7 +19,7 @@ import org.dromara.dynamictp.common.properties.DtpProperties; import com.alibaba.boot.nacos.config.properties.NacosConfigProperties; -import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.nacos.refresher.NacosRefresher; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; diff --git a/starter/starter-configcenter/starter-nacos/src/main/java/org/dromara/dynamictp/starter/nacos/refresher/NacosRefresher.java b/starter/starter-configcenter/starter-nacos/src/main/java/org/dromara/dynamictp/starter/nacos/refresher/NacosRefresher.java index a9a52710b..1bacb1844 100644 --- a/starter/starter-configcenter/starter-nacos/src/main/java/org/dromara/dynamictp/starter/nacos/refresher/NacosRefresher.java +++ b/starter/starter-configcenter/starter-nacos/src/main/java/org/dromara/dynamictp/starter/nacos/refresher/NacosRefresher.java @@ -20,7 +20,7 @@ import com.alibaba.nacos.spring.context.event.config.NacosConfigEvent; import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.spring.ex.AbstractSpringRefresher; +import org.dromara.dynamictp.spring.AbstractSpringRefresher; import org.springframework.context.ApplicationEvent; import org.springframework.context.event.SmartApplicationListener; diff --git a/starter/starter-configcenter/starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/zookeeper/autoconfigure/DtpZkAutoConfiguration.java b/starter/starter-configcenter/starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/zookeeper/autoconfigure/DtpZkAutoConfiguration.java index b10796634..97df7e86b 100644 --- a/starter/starter-configcenter/starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/zookeeper/autoconfigure/DtpZkAutoConfiguration.java +++ b/starter/starter-configcenter/starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/zookeeper/autoconfigure/DtpZkAutoConfiguration.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.starter.zookeeper.autoconfigure; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; import org.dromara.dynamictp.starter.zookeeper.refresher.ZookeeperRefresher; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; diff --git a/starter/starter-configcenter/starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/zookeeper/refresher/ZookeeperRefresher.java b/starter/starter-configcenter/starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/zookeeper/refresher/ZookeeperRefresher.java index d844e7c1d..961770bd2 100644 --- a/starter/starter-configcenter/starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/zookeeper/refresher/ZookeeperRefresher.java +++ b/starter/starter-configcenter/starter-zookeeper/src/main/java/org/dromara/dynamictp/starter/zookeeper/refresher/ZookeeperRefresher.java @@ -24,7 +24,7 @@ import org.apache.curator.framework.state.ConnectionStateListener; import org.apache.zookeeper.WatchedEvent; import org.dromara.dynamictp.common.properties.DtpProperties; -import org.dromara.dynamictp.spring.ex.AbstractSpringRefresher; +import org.dromara.dynamictp.spring.AbstractSpringRefresher; import org.dromara.dynamictp.starter.zookeeper.autoconfigure.ZkConfigEnvironmentProcessor; import org.dromara.dynamictp.starter.zookeeper.util.CuratorUtil; import org.springframework.beans.factory.InitializingBean; diff --git a/test/test-configcenter/src/test/java/org/dromara/dynamictp/test/configcenter/DtpBaseTest.java b/test/test-configcenter/src/test/java/org/dromara/dynamictp/test/configcenter/DtpBaseTest.java index 1287f57d0..c15964c06 100644 --- a/test/test-configcenter/src/test/java/org/dromara/dynamictp/test/configcenter/DtpBaseTest.java +++ b/test/test-configcenter/src/test/java/org/dromara/dynamictp/test/configcenter/DtpBaseTest.java @@ -17,7 +17,8 @@ package org.dromara.dynamictp.test.configcenter; -import org.dromara.dynamictp.spring.ex.*; +import org.dromara.dynamictp.spring.EnableDynamicTp; +import org.dromara.dynamictp.spring.YamlPropertySourceFactory; import org.junit.jupiter.api.BeforeAll; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; @@ -28,7 +29,6 @@ import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Import; import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.ConfigurableEnvironment; diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/AbstractDtpNotifierTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/AbstractDtpNotifierTest.java index 79c949329..daf7c1c46 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/AbstractDtpNotifierTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/AbstractDtpNotifierTest.java @@ -33,7 +33,7 @@ import org.dromara.dynamictp.core.support.ExecutorWrapper; import org.dromara.dynamictp.core.support.ThreadPoolCreator; import org.dromara.dynamictp.core.executor.DtpExecutor; -import org.dromara.dynamictp.spring.ex.SpringContextHolder; +import org.dromara.dynamictp.spring.SpringContextHolder; import org.junit.Assert; import org.junit.Before; import org.junit.Test; diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpBaseBeanConfigurationTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpBaseBeanConfigurationTest.java index 766b835b6..acb01e909 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpBaseBeanConfigurationTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpBaseBeanConfigurationTest.java @@ -20,10 +20,10 @@ import org.dromara.dynamictp.core.DtpRegistry; import org.dromara.dynamictp.core.monitor.DtpMonitor; import org.dromara.dynamictp.core.support.DtpBannerPrinter; -import org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration; -import org.dromara.dynamictp.spring.ex.DtpPostProcessor; -import org.dromara.dynamictp.spring.ex.SpringContextHolder; -import org.dromara.dynamictp.spring.ex.YamlPropertySourceFactory; +import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; +import org.dromara.dynamictp.spring.DtpPostProcessor; +import org.dromara.dynamictp.spring.SpringContextHolder; +import org.dromara.dynamictp.spring.YamlPropertySourceFactory; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.NoSuchBeanDefinitionException; diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpPostProcessorTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpPostProcessorTest.java index 46e04ff20..ce125bc2e 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpPostProcessorTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpPostProcessorTest.java @@ -19,7 +19,7 @@ import org.dromara.dynamictp.core.DtpRegistry; import org.dromara.dynamictp.core.support.ThreadPoolExecutorProxy; -import org.dromara.dynamictp.spring.ex.YamlPropertySourceFactory; +import org.dromara.dynamictp.spring.YamlPropertySourceFactory; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/PropertiesBinderTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/PropertiesBinderTest.java index 56f6d8f05..705c54abd 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/PropertiesBinderTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/PropertiesBinderTest.java @@ -21,7 +21,7 @@ import com.google.common.collect.Maps; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.core.support.BinderHelper; -import org.dromara.dynamictp.spring.ex.YamlPropertySourceFactory; +import org.dromara.dynamictp.spring.YamlPropertySourceFactory; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/DtpExecutorTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/DtpExecutorTest.java index 12630ec1f..cd90f658e 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/DtpExecutorTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/DtpExecutorTest.java @@ -21,7 +21,7 @@ import org.dromara.dynamictp.core.DtpRegistry; import org.dromara.dynamictp.core.notifier.manager.AlarmManager; import org.dromara.dynamictp.core.support.ExecutorWrapper; -import org.dromara.dynamictp.spring.ex.YamlPropertySourceFactory; +import org.dromara.dynamictp.spring.YamlPropertySourceFactory; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.RepeatedTest; import org.junit.jupiter.api.extension.ExtendWith; diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/EagerDtpExecutorTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/EagerDtpExecutorTest.java index 28f5b705b..59b45fc38 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/EagerDtpExecutorTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/EagerDtpExecutorTest.java @@ -19,7 +19,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.core.DtpRegistry; -import org.dromara.dynamictp.spring.ex.YamlPropertySourceFactory; +import org.dromara.dynamictp.spring.YamlPropertySourceFactory; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/OrderedDtpExecutorTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/OrderedDtpExecutorTest.java index 4efa51c2f..5848cc0ff 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/OrderedDtpExecutorTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/OrderedDtpExecutorTest.java @@ -25,7 +25,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.extern.slf4j.Slf4j; -import org.dromara.dynamictp.spring.ex.YamlPropertySourceFactory; +import org.dromara.dynamictp.spring.YamlPropertySourceFactory; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.slf4j.MDC; diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/PriorityDtpExecutorTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/PriorityDtpExecutorTest.java index 10603fb62..3f8f7eaaa 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/PriorityDtpExecutorTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/PriorityDtpExecutorTest.java @@ -19,7 +19,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.core.executor.priority.PriorityDtpExecutor; -import org.dromara.dynamictp.spring.ex.YamlPropertySourceFactory; +import org.dromara.dynamictp.spring.YamlPropertySourceFactory; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/ScheduledDtpExecutorTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/ScheduledDtpExecutorTest.java index 9af673457..8ac1381b6 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/ScheduledDtpExecutorTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/ScheduledDtpExecutorTest.java @@ -19,7 +19,7 @@ import org.dromara.dynamictp.core.DtpRegistry; import org.dromara.dynamictp.core.executor.ScheduledDtpExecutor; -import org.dromara.dynamictp.spring.ex.YamlPropertySourceFactory; +import org.dromara.dynamictp.spring.YamlPropertySourceFactory; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; diff --git a/test/test-core/src/test/resources/META-INF/spring.factories b/test/test-core/src/test/resources/META-INF/spring.factories index b4d25d8a1..7856b020a 100644 --- a/test/test-core/src/test/resources/META-INF/spring.factories +++ b/test/test-core/src/test/resources/META-INF/spring.factories @@ -1,4 +1,4 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ -org.dromara.dynamictp.spring.ex.DtpBaseBeanConfiguration,\ -org.dromara.dynamictp.spring.ex.DtpBaseBeanDefinitionRegistrar,\ -org.dromara.dynamictp.spring.ex.DtpBeanDefinitionRegistrar +org.dromara.dynamictp.spring.DtpBaseBeanConfiguration,\ +org.dromara.dynamictp.spring.DtpBaseBeanDefinitionRegistrar,\ +org.dromara.dynamictp.spring.DtpBeanDefinitionRegistrar From 01181152f15233fc2ec8fd8bd57ce0bd80e5af1a Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Wed, 24 Jul 2024 22:55:55 +0800 Subject: [PATCH 033/101] =?UTF-8?q?refactor=EF=BC=9A=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E8=B7=AF=E5=BE=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/dromara/dynamictp/core/support/BinderHelper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/org/dromara/dynamictp/core/support/BinderHelper.java b/core/src/main/java/org/dromara/dynamictp/core/support/BinderHelper.java index ec52ff082..1bd3b308d 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/support/BinderHelper.java +++ b/core/src/main/java/org/dromara/dynamictp/core/support/BinderHelper.java @@ -43,7 +43,7 @@ private static PropertiesBinder getBinder() { } final PropertiesBinder loadedFirstBinder = ExtensionServiceLoader.getFirst(PropertiesBinder.class); if (Objects.isNull(loadedFirstBinder)) { - log.error("DynamicTp refresh, no SPI for org.dromara.dynamictp.spring.ex.PropertiesBinder."); + log.error("DynamicTp refresh, no SPI for org.dromara.dynamictp.core.support.PropertiesBinder."); return null; } Singleton.INST.single(PropertiesBinder.class, loadedFirstBinder); From dbb0515a71e7bf5fee2d24fd82e43d9bae496741 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Wed, 24 Jul 2024 23:00:27 +0800 Subject: [PATCH 034/101] =?UTF-8?q?refactor=EF=BC=9A=E6=8F=90=E5=89=8D?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=87=8F=E5=B0=91if?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../binder/SpringBootPropertiesBinder.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/binder/SpringBootPropertiesBinder.java b/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/binder/SpringBootPropertiesBinder.java index ce62dd8d4..28bc35511 100644 --- a/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/binder/SpringBootPropertiesBinder.java +++ b/starter/starter-common/src/main/java/org/dromara/dynamictp/starter/common/binder/SpringBootPropertiesBinder.java @@ -60,16 +60,17 @@ public void bindDtpProperties(Map properties, DtpProperties dtpProper @Override public void bindDtpProperties(Object environment, DtpProperties dtpProperties) { - if (environment instanceof Environment) { - try { - Class.forName("org.springframework.boot.context.properties.bind.Binder"); - doBindIn2X((Environment) environment, dtpProperties); - } catch (ClassNotFoundException e) { - doBindIn1X((Environment) environment, dtpProperties); - } - } else { + if (!(environment instanceof Environment)) { throw new IllegalArgumentException("Invalid environment type, expected org.springframework.core.env.Environment"); } + + Environment env = (Environment) environment; + try { + Class.forName("org.springframework.boot.context.properties.bind.Binder"); + doBindIn2X(env, dtpProperties); + } catch (ClassNotFoundException e) { + doBindIn1X(env, dtpProperties); + } } private void doBindIn2X(Map properties, DtpProperties dtpProperties) { From 6f06bca2927a3d11695c01458025e7f3f2680013 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Wed, 24 Jul 2024 23:00:48 +0800 Subject: [PATCH 035/101] =?UTF-8?q?refactor=EF=BC=9A=E7=9B=B4=E6=8E=A5?= =?UTF-8?q?=E8=B0=83=E7=94=A8=E7=88=B6=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/dynamictp/spring/AbstractSpringRefresher.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java b/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java index c5412edc7..84add771f 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java @@ -23,11 +23,6 @@ public void setEnvironment(Environment environment) { @Override protected void refresh(Object environment) { - if (environment instanceof Environment) { - BinderHelper.bindDtpProperties((Environment) environment, dtpProperties); - doRefresh(dtpProperties); - } else { - super.refresh(environment); - } + super.refresh(environment); } } From 9b556fcfaeecdd7d4cee9428dc3069fa1aff8783 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Wed, 24 Jul 2024 23:01:57 +0800 Subject: [PATCH 036/101] =?UTF-8?q?refactor=EF=BC=9A=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=A4=A7=E5=B0=8F=E5=86=99=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/dromara/dynamictp/core/DtpRegistry.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java b/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java index 9278372c5..0e4d4544f 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java +++ b/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java @@ -74,16 +74,16 @@ public class DtpRegistry { private static final Equator EQUATOR = new GetterBaseEquator(); private static DtpProperties dtpProperties; - private static DtpRegistry INSTANCE; + private static DtpRegistry instance; public DtpRegistry(DtpProperties dtpProperties) { DtpRegistry.dtpProperties = dtpProperties; - INSTANCE = this; + instance = this; EventBusManager.register(this); } public static void destroy() { - EventBusManager.unregister(INSTANCE); + EventBusManager.unregister(instance); } /** From fb91e7eb5a8970f16c6aca1ea7e8908239342d22 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Thu, 25 Jul 2024 13:35:32 +0800 Subject: [PATCH 037/101] =?UTF-8?q?refactor=EF=BC=9A=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=BC=80=E6=BA=90=E5=8D=8F=E8=AE=AE=E5=A4=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/manager/ContextManager.java | 42 +++++++++++++++++++ .../common/manager/ContextManagerHelper.java | 42 +++++++++++++++++++ .../common/manager/EventBusManager.java | 42 +++++++++++++++++++ .../core/spring/LifeCycleManagement.java | 42 +++++++++++++++++++ .../spring/AbstractSpringRefresher.java | 42 +++++++++++++++++++ .../dynamictp/spring/SpringContextHolder.java | 42 +++++++++++++++++++ 6 files changed, 252 insertions(+) diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java index 781294acc..e6064b244 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java @@ -1,3 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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. + */ +// Copyright (c) 2007-2020 VMware, Inc. or its affiliates. All rights reserved. +// +// This software, the RabbitMQ Java client library, is triple-licensed under the +// Mozilla Public License 2.0 ("MPL"), the GNU General Public License version 2 +// ("GPL") and the Apache License version 2 ("ASL"). For the MPL, please see +// LICENSE-MPL-RabbitMQ. For the GPL, please see LICENSE-GPL2. For the ASL, +// please see LICENSE-APACHE2. +// +// This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, +// either express or implied. See the LICENSE file for specific language governing +// rights and limitations of this software. +// +// If you have any questions regarding licensing, please contact us at +// info@rabbitmq.com. + +/* + * Modifications Copyright 2015-2020 VMware, Inc. or its affiliates. and licenced as per + * the rest of the RabbitMQ Java client. + */ + +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * https://creativecommons.org/licenses/publicdomain + */ + package org.dromara.dynamictp.common.manager; import java.util.Map; diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java index bc1eb8ed2..8cf003e34 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java @@ -1,3 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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. + */ +// Copyright (c) 2007-2020 VMware, Inc. or its affiliates. All rights reserved. +// +// This software, the RabbitMQ Java client library, is triple-licensed under the +// Mozilla Public License 2.0 ("MPL"), the GNU General Public License version 2 +// ("GPL") and the Apache License version 2 ("ASL"). For the MPL, please see +// LICENSE-MPL-RabbitMQ. For the GPL, please see LICENSE-GPL2. For the ASL, +// please see LICENSE-APACHE2. +// +// This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, +// either express or implied. See the LICENSE file for specific language governing +// rights and limitations of this software. +// +// If you have any questions regarding licensing, please contact us at +// info@rabbitmq.com. + +/* + * Modifications Copyright 2015-2020 VMware, Inc. or its affiliates. and licenced as per + * the rest of the RabbitMQ Java client. + */ + +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * https://creativecommons.org/licenses/publicdomain + */ + package org.dromara.dynamictp.common.manager; import java.util.Map; import java.util.ServiceLoader; diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java b/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java index c9ef8def4..744f7cb73 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java @@ -1,3 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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. + */ +// Copyright (c) 2007-2020 VMware, Inc. or its affiliates. All rights reserved. +// +// This software, the RabbitMQ Java client library, is triple-licensed under the +// Mozilla Public License 2.0 ("MPL"), the GNU General Public License version 2 +// ("GPL") and the Apache License version 2 ("ASL"). For the MPL, please see +// LICENSE-MPL-RabbitMQ. For the GPL, please see LICENSE-GPL2. For the ASL, +// please see LICENSE-APACHE2. +// +// This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, +// either express or implied. See the LICENSE file for specific language governing +// rights and limitations of this software. +// +// If you have any questions regarding licensing, please contact us at +// info@rabbitmq.com. + +/* + * Modifications Copyright 2015-2020 VMware, Inc. or its affiliates. and licenced as per + * the rest of the RabbitMQ Java client. + */ + +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * https://creativecommons.org/licenses/publicdomain + */ + package org.dromara.dynamictp.common.manager; import com.google.common.eventbus.EventBus; diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/LifeCycleManagement.java b/core/src/main/java/org/dromara/dynamictp/core/spring/LifeCycleManagement.java index d34c4f431..c4a09f028 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/spring/LifeCycleManagement.java +++ b/core/src/main/java/org/dromara/dynamictp/core/spring/LifeCycleManagement.java @@ -1,3 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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. + */ +// Copyright (c) 2007-2020 VMware, Inc. or its affiliates. All rights reserved. +// +// This software, the RabbitMQ Java client library, is triple-licensed under the +// Mozilla Public License 2.0 ("MPL"), the GNU General Public License version 2 +// ("GPL") and the Apache License version 2 ("ASL"). For the MPL, please see +// LICENSE-MPL-RabbitMQ. For the GPL, please see LICENSE-GPL2. For the ASL, +// please see LICENSE-APACHE2. +// +// This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, +// either express or implied. See the LICENSE file for specific language governing +// rights and limitations of this software. +// +// If you have any questions regarding licensing, please contact us at +// info@rabbitmq.com. + +/* + * Modifications Copyright 2015-2020 VMware, Inc. or its affiliates. and licenced as per + * the rest of the RabbitMQ Java client. + */ + +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * https://creativecommons.org/licenses/publicdomain + */ + package org.dromara.dynamictp.core.spring; public interface LifeCycleManagement { diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java b/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java index 84add771f..b319420ba 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java @@ -1,3 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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. + */ +// Copyright (c) 2007-2020 VMware, Inc. or its affiliates. All rights reserved. +// +// This software, the RabbitMQ Java client library, is triple-licensed under the +// Mozilla Public License 2.0 ("MPL"), the GNU General Public License version 2 +// ("GPL") and the Apache License version 2 ("ASL"). For the MPL, please see +// LICENSE-MPL-RabbitMQ. For the GPL, please see LICENSE-GPL2. For the ASL, +// please see LICENSE-APACHE2. +// +// This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, +// either express or implied. See the LICENSE file for specific language governing +// rights and limitations of this software. +// +// If you have any questions regarding licensing, please contact us at +// info@rabbitmq.com. + +/* + * Modifications Copyright 2015-2020 VMware, Inc. or its affiliates. and licenced as per + * the rest of the RabbitMQ Java client. + */ + +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * https://creativecommons.org/licenses/publicdomain + */ + package org.dromara.dynamictp.spring; import lombok.extern.slf4j.Slf4j; diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java b/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java index e5754bc92..c87e119e2 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java @@ -1,3 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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. + */ +// Copyright (c) 2007-2020 VMware, Inc. or its affiliates. All rights reserved. +// +// This software, the RabbitMQ Java client library, is triple-licensed under the +// Mozilla Public License 2.0 ("MPL"), the GNU General Public License version 2 +// ("GPL") and the Apache License version 2 ("ASL"). For the MPL, please see +// LICENSE-MPL-RabbitMQ. For the GPL, please see LICENSE-GPL2. For the ASL, +// please see LICENSE-APACHE2. +// +// This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, +// either express or implied. See the LICENSE file for specific language governing +// rights and limitations of this software. +// +// If you have any questions regarding licensing, please contact us at +// info@rabbitmq.com. + +/* + * Modifications Copyright 2015-2020 VMware, Inc. or its affiliates. and licenced as per + * the rest of the RabbitMQ Java client. + */ + +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * https://creativecommons.org/licenses/publicdomain + */ + package org.dromara.dynamictp.spring; From 1bb3b4ab0da429b2780b1be9dcc9d20e49cd89f7 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Thu, 25 Jul 2024 20:09:18 +0800 Subject: [PATCH 038/101] =?UTF-8?q?refactor=EF=BC=9A=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=80=82=E9=85=8D=E5=99=A8=E5=B0=86DtpLifecycle=E5=92=8Cspring?= =?UTF-8?q?=E7=94=9F=E5=91=BD=E5=91=A8=E6=9C=9F=E8=81=94=E7=B3=BB=E8=B5=B7?= =?UTF-8?q?=E6=9D=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../spring/DtpBaseBeanConfiguration.java | 6 +++ .../spring/DtpLifecycleSpringAdapter.java | 46 +++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 spring/src/main/java/org/dromara/dynamictp/spring/DtpLifecycleSpringAdapter.java diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/DtpBaseBeanConfiguration.java b/spring/src/main/java/org/dromara/dynamictp/spring/DtpBaseBeanConfiguration.java index cd20f0faf..5eb9f657d 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/DtpBaseBeanConfiguration.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/DtpBaseBeanConfiguration.java @@ -21,6 +21,7 @@ import org.dromara.dynamictp.core.DtpRegistry; import org.dromara.dynamictp.core.monitor.DtpMonitor; import org.dromara.dynamictp.core.spring.DtpLifecycle; +import org.dromara.dynamictp.core.spring.LifeCycleManagement; import org.dromara.dynamictp.core.support.DtpBannerPrinter; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Bean; @@ -62,4 +63,9 @@ public DtpMonitor dtpMonitor(DtpProperties dtpProperties) { public DtpBannerPrinter dtpBannerPrinter() { return new DtpBannerPrinter(); } + + @Bean + public DtpLifecycleSpringAdapter dtpLifecycleSpringAdapter(LifeCycleManagement lifeCycleManagement) { + return new DtpLifecycleSpringAdapter(lifeCycleManagement); + } } diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/DtpLifecycleSpringAdapter.java b/spring/src/main/java/org/dromara/dynamictp/spring/DtpLifecycleSpringAdapter.java new file mode 100644 index 000000000..407de9159 --- /dev/null +++ b/spring/src/main/java/org/dromara/dynamictp/spring/DtpLifecycleSpringAdapter.java @@ -0,0 +1,46 @@ +package org.dromara.dynamictp.spring; + +import org.dromara.dynamictp.core.spring.LifeCycleManagement; +import org.springframework.context.SmartLifecycle; + +public class DtpLifecycleSpringAdapter implements SmartLifecycle { + private final LifeCycleManagement lifeCycleManagement; + private boolean isRunning = false; + + public DtpLifecycleSpringAdapter(LifeCycleManagement lifeCycleManagement) { + this.lifeCycleManagement = lifeCycleManagement; + } + + @Override + public void start() { + lifeCycleManagement.start(); + isRunning = true; + } + + @Override + public void stop() { + lifeCycleManagement.stop(); + isRunning = false; + } + + @Override + public boolean isRunning() { + return isRunning; + } + + public void stop(Runnable callback) { + lifeCycleManagement.stop(); + callback.run(); + isRunning = false; + } + + @Override + public boolean isAutoStartup() { + return lifeCycleManagement.isAutoStartup(); + } + + @Override + public int getPhase() { + return lifeCycleManagement.getPhase(); + } +} From e285c8dae81044a2a34d4de4bc209b4e4430ed57 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Thu, 25 Jul 2024 20:10:27 +0800 Subject: [PATCH 039/101] =?UTF-8?q?refactor=EF=BC=9A=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=80=82=E9=85=8D=E5=99=A8=E5=B0=86DtpLifecycle=E5=92=8Cspring?= =?UTF-8?q?=E7=94=9F=E5=91=BD=E5=91=A8=E6=9C=9F=E8=81=94=E7=B3=BB=E8=B5=B7?= =?UTF-8?q?=E6=9D=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../spring/DtpLifecycleSpringAdapter.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/DtpLifecycleSpringAdapter.java b/spring/src/main/java/org/dromara/dynamictp/spring/DtpLifecycleSpringAdapter.java index 407de9159..b8e8ff6bc 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/DtpLifecycleSpringAdapter.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/DtpLifecycleSpringAdapter.java @@ -1,3 +1,20 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 org.dromara.dynamictp.spring; import org.dromara.dynamictp.core.spring.LifeCycleManagement; From 1e0bf9a0bc9926154d9030b86f8bf248f5b2521b Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Thu, 25 Jul 2024 20:14:16 +0800 Subject: [PATCH 040/101] =?UTF-8?q?refactor=EF=BC=9A=E5=B0=86spring?= =?UTF-8?q?=E5=8C=85=E6=94=B9=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dynamictp/core/{spring => lifecycle}/DtpLifecycle.java | 2 +- .../core/{spring => lifecycle}/LifeCycleManagement.java | 2 +- .../dynamictp/example/WebserverExampleApplication.java | 2 +- .../dromara/dynamictp/spring/DtpBaseBeanConfiguration.java | 4 ++-- .../dromara/dynamictp/spring/DtpLifecycleSpringAdapter.java | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) rename core/src/main/java/org/dromara/dynamictp/core/{spring => lifecycle}/DtpLifecycle.java (98%) rename core/src/main/java/org/dromara/dynamictp/core/{spring => lifecycle}/LifeCycleManagement.java (97%) diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/DtpLifecycle.java b/core/src/main/java/org/dromara/dynamictp/core/lifecycle/DtpLifecycle.java similarity index 98% rename from core/src/main/java/org/dromara/dynamictp/core/spring/DtpLifecycle.java rename to core/src/main/java/org/dromara/dynamictp/core/lifecycle/DtpLifecycle.java index 54ca36d74..ca4d1274b 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/spring/DtpLifecycle.java +++ b/core/src/main/java/org/dromara/dynamictp/core/lifecycle/DtpLifecycle.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.core.spring; +package org.dromara.dynamictp.core.lifecycle; import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.core.DtpRegistry; diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/LifeCycleManagement.java b/core/src/main/java/org/dromara/dynamictp/core/lifecycle/LifeCycleManagement.java similarity index 97% rename from core/src/main/java/org/dromara/dynamictp/core/spring/LifeCycleManagement.java rename to core/src/main/java/org/dromara/dynamictp/core/lifecycle/LifeCycleManagement.java index c4a09f028..681759a36 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/spring/LifeCycleManagement.java +++ b/core/src/main/java/org/dromara/dynamictp/core/lifecycle/LifeCycleManagement.java @@ -40,7 +40,7 @@ * https://creativecommons.org/licenses/publicdomain */ -package org.dromara.dynamictp.core.spring; +package org.dromara.dynamictp.core.lifecycle; public interface LifeCycleManagement { void start(); diff --git a/example/example-adapter/example-adapter-webserver/src/main/java/org/dromara/dynamictp/example/WebserverExampleApplication.java b/example/example-adapter/example-adapter-webserver/src/main/java/org/dromara/dynamictp/example/WebserverExampleApplication.java index ffcbfa2fe..3a5fc66c1 100644 --- a/example/example-adapter/example-adapter-webserver/src/main/java/org/dromara/dynamictp/example/WebserverExampleApplication.java +++ b/example/example-adapter/example-adapter-webserver/src/main/java/org/dromara/dynamictp/example/WebserverExampleApplication.java @@ -17,7 +17,7 @@ package org.dromara.dynamictp.example; -import org.dromara.dynamictp.core.spring.EnableDynamicTp; +import org.dromara.dynamictp.core.lifecycle.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/DtpBaseBeanConfiguration.java b/spring/src/main/java/org/dromara/dynamictp/spring/DtpBaseBeanConfiguration.java index 5eb9f657d..9b918d642 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/DtpBaseBeanConfiguration.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/DtpBaseBeanConfiguration.java @@ -20,8 +20,8 @@ import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.core.DtpRegistry; import org.dromara.dynamictp.core.monitor.DtpMonitor; -import org.dromara.dynamictp.core.spring.DtpLifecycle; -import org.dromara.dynamictp.core.spring.LifeCycleManagement; +import org.dromara.dynamictp.core.lifecycle.DtpLifecycle; +import org.dromara.dynamictp.core.lifecycle.LifeCycleManagement; import org.dromara.dynamictp.core.support.DtpBannerPrinter; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Bean; diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/DtpLifecycleSpringAdapter.java b/spring/src/main/java/org/dromara/dynamictp/spring/DtpLifecycleSpringAdapter.java index b8e8ff6bc..6e7dc8164 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/DtpLifecycleSpringAdapter.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/DtpLifecycleSpringAdapter.java @@ -17,7 +17,7 @@ package org.dromara.dynamictp.spring; -import org.dromara.dynamictp.core.spring.LifeCycleManagement; +import org.dromara.dynamictp.core.lifecycle.LifeCycleManagement; import org.springframework.context.SmartLifecycle; public class DtpLifecycleSpringAdapter implements SmartLifecycle { From 687f996e41ab5d4c4eb8f1ec580468462ea410f6 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Thu, 25 Jul 2024 20:14:47 +0800 Subject: [PATCH 041/101] =?UTF-8?q?refactor=EF=BC=9A=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=97=A0=E7=94=A8=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/pom.xml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/core/pom.xml b/core/pom.xml index 7abc286ae..3a7550046 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -63,11 +63,6 @@ 5.0.1 - - com.netflix.governator - governator - 1.17.12 - commons-beanutils commons-beanutils From 222953f7fa1781c231828e0121fa5cc2ff139e28 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Thu, 25 Jul 2024 20:18:10 +0800 Subject: [PATCH 042/101] =?UTF-8?q?refactor=EF=BC=9Aimport*=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../spring/DtpBeanDefinitionRegistrar.java | 18 +++++++++++++++++- .../dynamictp/spring/EnableDynamicTp.java | 6 +++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/DtpBeanDefinitionRegistrar.java b/spring/src/main/java/org/dromara/dynamictp/spring/DtpBeanDefinitionRegistrar.java index 33f0155fb..ae1950ca0 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/DtpBeanDefinitionRegistrar.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/DtpBeanDefinitionRegistrar.java @@ -41,7 +41,23 @@ import java.util.concurrent.BlockingQueue; import java.util.concurrent.PriorityBlockingQueue; -import static org.dromara.dynamictp.common.constant.DynamicTpConst.*; +import static org.dromara.dynamictp.common.constant.DynamicTpConst.ALLOW_CORE_THREAD_TIMEOUT; +import static org.dromara.dynamictp.common.constant.DynamicTpConst.AWAIT_TERMINATION_SECONDS; +import static org.dromara.dynamictp.common.constant.DynamicTpConst.AWARE_NAMES; +import static org.dromara.dynamictp.common.constant.DynamicTpConst.NOTIFY_ENABLED; +import static org.dromara.dynamictp.common.constant.DynamicTpConst.NOTIFY_ITEMS; +import static org.dromara.dynamictp.common.constant.DynamicTpConst.PLATFORM_IDS; +import static org.dromara.dynamictp.common.constant.DynamicTpConst.PLUGIN_NAMES; +import static org.dromara.dynamictp.common.constant.DynamicTpConst.PRE_START_ALL_CORE_THREADS; +import static org.dromara.dynamictp.common.constant.DynamicTpConst.QUEUE_TIMEOUT; +import static org.dromara.dynamictp.common.constant.DynamicTpConst.REJECT_ENHANCED; +import static org.dromara.dynamictp.common.constant.DynamicTpConst.REJECT_HANDLER_TYPE; +import static org.dromara.dynamictp.common.constant.DynamicTpConst.RUN_TIMEOUT; +import static org.dromara.dynamictp.common.constant.DynamicTpConst.TASK_WRAPPERS; +import static org.dromara.dynamictp.common.constant.DynamicTpConst.THREAD_POOL_ALIAS_NAME; +import static org.dromara.dynamictp.common.constant.DynamicTpConst.THREAD_POOL_NAME; +import static org.dromara.dynamictp.common.constant.DynamicTpConst.TRY_INTERRUPT_WHEN_TIMEOUT; +import static org.dromara.dynamictp.common.constant.DynamicTpConst.WAIT_FOR_TASKS_TO_COMPLETE_ON_SHUTDOWN; import static org.dromara.dynamictp.common.em.QueueTypeEnum.buildLbq; import static org.dromara.dynamictp.common.entity.NotifyItem.mergeAllNotifyItems; diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/EnableDynamicTp.java b/spring/src/main/java/org/dromara/dynamictp/spring/EnableDynamicTp.java index 5474c84de..6b7c9a579 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/EnableDynamicTp.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/EnableDynamicTp.java @@ -19,7 +19,11 @@ import org.springframework.context.annotation.Import; -import java.lang.annotation.*; +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * EnableDynamicTp related From afd7d32216c863469c9d8225fcb0d943092f07eb Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Thu, 25 Jul 2024 20:30:27 +0800 Subject: [PATCH 043/101] =?UTF-8?q?refactor=EF=BC=9A=E4=BD=BF=E7=94=A8cgli?= =?UTF-8?q?b=E7=9A=84BeanCopier=E6=9B=BF=E6=8D=A2spring=E7=9A=84BeanUtils?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/monitor/collector/MicroMeterCollector.java | 9 +++------ .../dynamictp/core/support/ExecutorWrapper.java | 10 +++------- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/core/src/main/java/org/dromara/dynamictp/core/monitor/collector/MicroMeterCollector.java b/core/src/main/java/org/dromara/dynamictp/core/monitor/collector/MicroMeterCollector.java index b834cea26..2a464798a 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/monitor/collector/MicroMeterCollector.java +++ b/core/src/main/java/org/dromara/dynamictp/core/monitor/collector/MicroMeterCollector.java @@ -20,10 +20,10 @@ import io.micrometer.core.instrument.Metrics; import io.micrometer.core.instrument.Tag; import lombok.extern.slf4j.Slf4j; +import net.sf.cglib.beans.BeanCopier; import org.dromara.dynamictp.common.em.CollectorTypeEnum; import org.dromara.dynamictp.common.entity.ThreadPoolStats; import org.dromara.dynamictp.common.util.CommonUtil; -import org.apache.commons.beanutils.BeanUtils; import java.util.ArrayList; import java.util.List; @@ -61,11 +61,8 @@ public void collect(ThreadPoolStats threadPoolStats) { if (Objects.isNull(oldStats)) { GAUGE_CACHE.put(threadPoolStats.getPoolName(), threadPoolStats); } else { - try { - BeanUtils.copyProperties(oldStats, threadPoolStats); - } catch (Exception e) { - log.error("Error copying properties", e); - } + BeanCopier copier = BeanCopier.create(ThreadPoolStats.class, ThreadPoolStats.class, false); + copier.copy(threadPoolStats, oldStats, null); } gauge(GAUGE_CACHE.get(threadPoolStats.getPoolName())); } diff --git a/core/src/main/java/org/dromara/dynamictp/core/support/ExecutorWrapper.java b/core/src/main/java/org/dromara/dynamictp/core/support/ExecutorWrapper.java index 1bbba530c..48e77b2a5 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/support/ExecutorWrapper.java +++ b/core/src/main/java/org/dromara/dynamictp/core/support/ExecutorWrapper.java @@ -18,6 +18,7 @@ package org.dromara.dynamictp.core.support; import lombok.Data; +import net.sf.cglib.beans.BeanCopier; import org.dromara.dynamictp.common.em.NotifyItemEnum; import org.dromara.dynamictp.common.entity.NotifyItem; import org.dromara.dynamictp.core.aware.AwareManager; @@ -26,7 +27,6 @@ import org.dromara.dynamictp.core.notifier.capture.CapturedExecutor; import org.dromara.dynamictp.core.notifier.manager.AlarmManager; import org.dromara.dynamictp.core.support.task.wrapper.TaskWrapper; -import org.apache.commons.beanutils.BeanUtils; import java.util.HashSet; import java.util.List; @@ -139,15 +139,11 @@ public static ExecutorWrapper of(DtpExecutor executor) { */ public ExecutorWrapper capture() { ExecutorWrapper executorWrapper = new ExecutorWrapper(); - try { - BeanUtils.copyProperties(executorWrapper, this); - } catch (Exception e) { - throw new RuntimeException("Failed to copy properties", e); - } + BeanCopier copier = BeanCopier.create(ExecutorWrapper.class, ExecutorWrapper.class, false); + copier.copy(this, executorWrapper, null); executorWrapper.executor = new CapturedExecutor(this.getExecutor()); return executorWrapper; } - /** * Initialize. */ From 259d4f3cbbd0b6853ec7375a7ebf2e749490a71b Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Thu, 25 Jul 2024 22:52:54 +0800 Subject: [PATCH 044/101] =?UTF-8?q?refactor=EF=BC=9AContextManagerHelper?= =?UTF-8?q?=E7=9A=84service=20Loader=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/manager/ContextManagerHelper.java | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java index 8cf003e34..5457947c2 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java @@ -41,24 +41,19 @@ */ package org.dromara.dynamictp.common.manager; +import org.dromara.dynamictp.common.util.ExtensionServiceLoader; + import java.util.Map; import java.util.ServiceLoader; public class ContextManagerHelper { - private static final ContextManager CONTEXT_MANAGER; + private static final ContextManager CONTEXT_MANAGER = ExtensionServiceLoader.getFirst(ContextManager.class); static { - ContextManager context = null; - ServiceLoader loader = ServiceLoader.load(ContextManager.class); - for (ContextManager contextManager : loader) { - context = contextManager; - break; - } - if (context == null) { + if (CONTEXT_MANAGER == null) { throw new IllegalStateException("No ContextManager implementation found"); } - CONTEXT_MANAGER = context; } public static T getBean(Class clazz) { @@ -100,5 +95,5 @@ public static String[] getActiveProfiles() { public static String[] getDefaultProfiles() { return CONTEXT_MANAGER.getDefaultProfiles(); } - } + From 895fd0166a8d4ef4d8f386a6ae3d80e8dd23c105 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Thu, 25 Jul 2024 23:17:38 +0800 Subject: [PATCH 045/101] =?UTF-8?q?refactor=EF=BC=9Acheckstyle=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/dynamictp/common/event/AlarmCheckEvent.java | 1 - .../org/dromara/dynamictp/common/event/CollectEvent.java | 1 - .../dynamictp/common/manager/ContextManagerHelper.java | 1 - .../main/java/org/dromara/dynamictp/core/DtpRegistry.java | 7 ++++++- .../org/dromara/dynamictp/core/monitor/DtpMonitor.java | 6 +++--- .../dromara/dynamictp/spring/AbstractSpringRefresher.java | 1 - .../org/dromara/dynamictp/spring/SpringContextHolder.java | 6 +++++- 7 files changed, 14 insertions(+), 9 deletions(-) diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java index 7eafdee98..d2cdda98b 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java @@ -21,7 +21,6 @@ import java.util.EventObject; - /** * AlarmCheckEvent related * diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java index e722ce10c..d9fd63878 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java @@ -18,7 +18,6 @@ package org.dromara.dynamictp.common.event; import org.dromara.dynamictp.common.properties.DtpProperties; - import java.util.EventObject; diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java index 5457947c2..fa5aad860 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java @@ -44,7 +44,6 @@ import org.dromara.dynamictp.common.util.ExtensionServiceLoader; import java.util.Map; -import java.util.ServiceLoader; public class ContextManagerHelper { diff --git a/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java b/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java index 0e4d4544f..f08f05c5e 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java +++ b/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java @@ -46,7 +46,12 @@ import org.dromara.dynamictp.core.support.task.wrapper.TaskWrappers; -import java.util.*; +import java.util.Collections; +import java.util.EventObject; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Executor; import java.util.stream.Collectors; diff --git a/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java b/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java index af95a4168..0835ccab2 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java +++ b/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java @@ -53,7 +53,7 @@ public class DtpMonitor { private static final ScheduledExecutorService MONITOR_EXECUTOR = ThreadPoolCreator.newScheduledThreadPool("dtp-monitor", 1); - private static DtpMonitor INSTANCE; + private static DtpMonitor instance; private final DtpProperties dtpProperties; private ScheduledFuture monitorFuture; @@ -62,7 +62,7 @@ public class DtpMonitor { public DtpMonitor(DtpProperties dtpProperties) { this.dtpProperties = dtpProperties; - INSTANCE = this; + instance = this; EventBusManager.register(this); } @@ -126,6 +126,6 @@ private void publishAlarmCheckEvent() { public static void destroy() { MONITOR_EXECUTOR.shutdownNow(); - EventBusManager.unregister(INSTANCE); + EventBusManager.unregister(instance); } } diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java b/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java index b319420ba..a1507b99d 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java @@ -45,7 +45,6 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.core.refresher.AbstractRefresher; -import org.dromara.dynamictp.core.support.BinderHelper; import org.springframework.context.EnvironmentAware; import org.springframework.core.env.Environment; diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java b/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java index c87e119e2..7dc4bbe69 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java @@ -52,7 +52,11 @@ import org.springframework.context.ApplicationContextAware; import org.springframework.context.ApplicationEvent; import org.springframework.context.ApplicationListener; -import org.springframework.context.event.*; +import org.springframework.context.event.ApplicationContextEvent; +import org.springframework.context.event.ContextClosedEvent; +import org.springframework.context.event.ContextRefreshedEvent; +import org.springframework.context.event.ContextStartedEvent; +import org.springframework.context.event.ContextStoppedEvent; import org.springframework.core.env.Environment; import java.util.EventObject; From f9c02f4261dd188f6813bca835e6f37d47c60a07 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Thu, 25 Jul 2024 23:33:03 +0800 Subject: [PATCH 046/101] =?UTF-8?q?refactor=EF=BC=9A=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/manager/ContextManager.java | 78 +++++++++++++++++++ .../core/lifecycle/LifeCycleManagement.java | 44 +++++++++++ 2 files changed, 122 insertions(+) diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java index e6064b244..eaa06a991 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java @@ -44,15 +44,93 @@ import java.util.Map; +/** + * Interface for managing context in the application. + * Provides methods to access beans, set context, handle events, + * and retrieve environment properties and profiles. + * + * @author vzer200 + * @since 1.0.0 + */ public interface ContextManager { + + /** + * Retrieves a bean by its class type. + * + * @param the type of the bean + * @param clazz the class of the bean + * @return an instance of the bean, or null if not found + */ T getBean(Class clazz); + + /** + * Retrieves a bean by its name and class type. + * + * @param the type of the bean + * @param name the name of the bean + * @param clazz the class of the bean + * @return an instance of the bean, or null if not found + */ T getBean(String name, Class clazz); + + /** + * Retrieves all beans of the specified type. + * + * @param the type of the beans + * @param clazz the class of the beans + * @return a map of bean names to bean instances + */ Map getBeansOfType(Class clazz); + + /** + * Sets the context. + * + * @param context the context to set + */ void setContext(Object context); + + /** + * Handles an event. + * + * @param event the event to handle + */ void onEvent(Object event); + + /** + * Retrieves the environment. + * + * @return the environment object + */ Object getEnvironment(); + + /** + * Retrieves an environment property by its key. + * + * @param key the key of the property + * @return the value of the property, or null if not found + */ String getEnvironmentProperty(String key); + + /** + * Retrieves an environment property by its key, with a default value. + * + * @param key the key of the property + * @param defaultValue the default value to return if the property is not found + * @return the value of the property, or the default value if not found + */ String getEnvironmentProperty(String key, String defaultValue); + + /** + * Retrieves the active profiles. + * + * @return an array of active profile names + */ String[] getActiveProfiles(); + + /** + * Retrieves the default profiles. + * + * @return an array of default profile names + */ String[] getDefaultProfiles(); } diff --git a/core/src/main/java/org/dromara/dynamictp/core/lifecycle/LifeCycleManagement.java b/core/src/main/java/org/dromara/dynamictp/core/lifecycle/LifeCycleManagement.java index 681759a36..3b141b72c 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/lifecycle/LifeCycleManagement.java +++ b/core/src/main/java/org/dromara/dynamictp/core/lifecycle/LifeCycleManagement.java @@ -42,12 +42,56 @@ package org.dromara.dynamictp.core.lifecycle; +/** + * Interface for managing the lifecycle of a component. + * Provides methods to start, stop, and check the running state of a component, + * as well as handling auto startup and shutdown phases. + * + * @author vzer200 + * @since 1.0.0 + */ public interface LifeCycleManagement { + + /** + * Starts the component. + */ void start(); + + /** + * Stops the component. + */ void stop(); + + /** + * Checks if the component is running. + * + * @return true if the component is running, false otherwise + */ boolean isRunning(); + + /** + * Stops the component with a callback. + * + * @param callback the callback to execute after stopping + */ void stop(Runnable callback); + + /** + * Checks if the component is set to auto startup. + * + * @return true if the component is set to auto startup, false otherwise + */ boolean isAutoStartup(); + + /** + * Gets the phase of the component. + * + * @return the phase of the component + */ int getPhase(); + + /** + * Performs internal shutdown operations. + */ void shutdownInternal(); } From 88da2a6c1878b36bd72c8a04ad74978170d90b1d Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Fri, 26 Jul 2024 13:02:48 +0800 Subject: [PATCH 047/101] =?UTF-8?q?refactor=EF=BC=9A=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dynamictp/common/util/ReflectionUtil.java | 9 ++++- spring/.gitignore | 38 +++++++++++++++++++ 2 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 spring/.gitignore diff --git a/common/src/main/java/org/dromara/dynamictp/common/util/ReflectionUtil.java b/common/src/main/java/org/dromara/dynamictp/common/util/ReflectionUtil.java index c964686a7..a946d9d9c 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/util/ReflectionUtil.java +++ b/common/src/main/java/org/dromara/dynamictp/common/util/ReflectionUtil.java @@ -17,6 +17,7 @@ package org.dromara.dynamictp.common.util; +import lombok.extern.slf4j.Slf4j; import lombok.val; import org.apache.commons.lang3.reflect.FieldUtils; @@ -29,6 +30,7 @@ * @author yanhom * @since 1.0.6 */ +@Slf4j public final class ReflectionUtil { private ReflectionUtil() { } @@ -42,6 +44,7 @@ public static Object getFieldValue(String fieldName, Object targetObj) { val fieldObj = FieldUtils.readField(field, targetObj, true); return fieldObj; } catch (IllegalAccessException e) { + log.error("Failed to read field '{}' from object '{}'", fieldName, targetObj, e); return null; } } @@ -55,6 +58,7 @@ public static Object getFieldValue(Class targetClass, String fieldName, Objec val fieldObj = FieldUtils.readField(field, targetObj, true); return fieldObj; } catch (IllegalAccessException e) { + log.error("Failed to read field '{}' from object '{}'", fieldName, targetObj, e); return null; } } @@ -67,7 +71,7 @@ public static void setFieldValue(String fieldName, Object targetObj, Object targ try { FieldUtils.writeField(field, targetObj, targetVal, true); } catch (IllegalAccessException e) { - e.printStackTrace(); + log.error("Failed to write value '{}' to field '{}' in object '{}'", targetVal, fieldName, targetObj, e); } } @@ -79,13 +83,14 @@ public static void setFieldValue(Class targetClass, String fieldName, Object try { FieldUtils.writeField(field, targetObj, targetVal, true); } catch (IllegalAccessException e) { - e.printStackTrace(); + log.error("Failed to write value '{}' to field '{}' in object '{}'", targetVal, fieldName, targetObj, e); } } public static Field getField(Class targetClass, String fieldName) { Field field = FieldUtils.getField(targetClass, fieldName, true); if (Objects.isNull(field)) { + log.warn("Field '{}' not found in class '{}'", fieldName, targetClass.getName()); return null; } return field; diff --git a/spring/.gitignore b/spring/.gitignore new file mode 100644 index 000000000..5ff6309b7 --- /dev/null +++ b/spring/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file From 6725580c71a0b77ddfb2ae338cf0e4a94a16febe Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Fri, 26 Jul 2024 14:22:41 +0800 Subject: [PATCH 048/101] =?UTF-8?q?refactor=EF=BC=9A=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E7=B1=BB=E8=BF=9B=E8=A1=8C=E5=8D=95=E7=8B=AC=E5=88=92=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/common/AbstractDtpAdapter.java | 4 +- .../common/manager/ContextManager.java | 7 -- .../common/manager/ContextManagerHelper.java | 4 - .../OnceApplicationContextEventListener.java | 88 +++++++++++++++++++ .../dynamictp/spring/SpringContextHolder.java | 63 +------------ 5 files changed, 91 insertions(+), 75 deletions(-) create mode 100644 spring/src/main/java/org/dromara/dynamictp/spring/OnceApplicationContextEventListener.java diff --git a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java index abc1b6d2e..81ac47a79 100644 --- a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java +++ b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java @@ -43,7 +43,7 @@ import org.dromara.dynamictp.core.support.ThreadPoolExecutorProxy; import org.dromara.dynamictp.core.support.task.wrapper.TaskWrapper; import org.dromara.dynamictp.core.support.task.wrapper.TaskWrappers; -import org.dromara.dynamictp.spring.SpringContextHolder; +import org.dromara.dynamictp.spring.OnceApplicationContextEventListener; import org.springframework.context.event.ContextRefreshedEvent; import java.util.Collections; @@ -67,7 +67,7 @@ * @since 1.0.6 */ @Slf4j -public abstract class AbstractDtpAdapter extends SpringContextHolder implements DtpAdapter { +public abstract class AbstractDtpAdapter extends OnceApplicationContextEventListener implements DtpAdapter { private static final Equator EQUATOR = new GetterBaseEquator(); diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java index eaa06a991..8b29212cd 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java @@ -89,13 +89,6 @@ public interface ContextManager { */ void setContext(Object context); - /** - * Handles an event. - * - * @param event the event to handle - */ - void onEvent(Object event); - /** * Retrieves the environment. * diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java index fa5aad860..6ae9fcc33 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java @@ -71,10 +71,6 @@ public static void setContext(Object context) { CONTEXT_MANAGER.setContext(context); } - public static void onEvent(Object event) { - CONTEXT_MANAGER.onEvent(event); - } - public static Object getEnvironment() { return CONTEXT_MANAGER.getEnvironment(); } diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/OnceApplicationContextEventListener.java b/spring/src/main/java/org/dromara/dynamictp/spring/OnceApplicationContextEventListener.java new file mode 100644 index 000000000..6aca2b55a --- /dev/null +++ b/spring/src/main/java/org/dromara/dynamictp/spring/OnceApplicationContextEventListener.java @@ -0,0 +1,88 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 org.dromara.dynamictp.spring; + +import lombok.extern.slf4j.Slf4j; +import org.dromara.dynamictp.common.manager.EventBusManager; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.context.ApplicationEvent; +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.event.ContextStartedEvent; +import org.springframework.context.event.ContextStoppedEvent; + +import java.util.EventObject; +import java.util.Objects; + +/** + * The abstract class {@link ApplicationListener} for {@link ApplicationEvent} guarantees just one-time execution + * and prevents the event propagation in the hierarchical {@link ApplicationContext ApplicationContexts} + * @author yanhom + * @since 1.1.4 + */ +@Slf4j +public abstract class OnceApplicationContextEventListener implements ApplicationContextAware, ApplicationListener { + + private ApplicationContext applicationContext; + + protected OnceApplicationContextEventListener() { } + + @Override + public void onApplicationEvent(ApplicationEvent event) { + if (isOriginalEventSource(event) && event instanceof ApplicationContextEvent) { + if (event instanceof ContextRefreshedEvent) { + onContextRefreshedEvent((ContextRefreshedEvent) event); + } else if (event instanceof ContextStartedEvent) { + onContextStartedEvent((ContextStartedEvent) event); + } else if (event instanceof ContextStoppedEvent) { + onContextStoppedEvent((ContextStoppedEvent) event); + } else if (event instanceof ContextClosedEvent) { + onContextClosedEvent((ContextClosedEvent) event); + } + } + } + + protected void onContextRefreshedEvent(ContextRefreshedEvent event) { + EventObject refreshedEvent = new EventObject(this); + EventBusManager.post(refreshedEvent); + } + + protected void onContextStartedEvent(ContextStartedEvent event) { + // Override to handle ContextStartedEvent + } + + protected void onContextStoppedEvent(ContextStoppedEvent event) { + // Override to handle ContextStoppedEvent + } + + protected void onContextClosedEvent(ContextClosedEvent event) { + // Override to handle ContextClosedEvent + } + + private boolean isOriginalEventSource(ApplicationEvent event) { + return Objects.equals(SpringContextHolder.getInstance(), event.getSource()); + } + + @Override + public final void setApplicationContext(ApplicationContext applicationContext) { + this.applicationContext = applicationContext; + } +} diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java b/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java index 7dc4bbe69..8fb9e9235 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java @@ -43,27 +43,16 @@ package org.dromara.dynamictp.spring; - import org.dromara.dynamictp.common.manager.ContextManager; -import org.dromara.dynamictp.common.manager.EventBusManager; import org.dromara.dynamictp.core.support.DtpBannerPrinter; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; -import org.springframework.context.ApplicationEvent; -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.event.ContextStartedEvent; -import org.springframework.context.event.ContextStoppedEvent; import org.springframework.core.env.Environment; - -import java.util.EventObject; import java.util.Map; import java.util.Objects; -public class SpringContextHolder implements ContextManager, ApplicationContextAware, ApplicationListener { +public class SpringContextHolder implements ContextManager, ApplicationContextAware { private static ApplicationContext context; @@ -100,56 +89,6 @@ public Environment getEnvironment() { return getInstance().getEnvironment(); } - - public void publishEvent(Object event) { - if (event instanceof ApplicationEvent) { - getInstance().publishEvent((ApplicationEvent) event); - } - } - - @Override - public void onApplicationEvent(ApplicationEvent event) { - if (isOriginalEventSource(event) && event instanceof ApplicationContextEvent) { - if (event instanceof ContextRefreshedEvent) { - onContextRefreshedEvent((ContextRefreshedEvent) event); - } else if (event instanceof ContextStartedEvent) { - onContextStartedEvent((ContextStartedEvent) event); - } else if (event instanceof ContextStoppedEvent) { - onContextStoppedEvent((ContextStoppedEvent) event); - } else if (event instanceof ContextClosedEvent) { - onContextClosedEvent((ContextClosedEvent) event); - } - } - } - - protected void onContextRefreshedEvent(ContextRefreshedEvent event) { - EventObject refreshedEvent = new EventObject(this); - EventBusManager.post(refreshedEvent); - } - - protected void onContextStartedEvent(ContextStartedEvent event) { - // Override to handle ContextStartedEvent - } - - protected void onContextStoppedEvent(ContextStoppedEvent event) { - // Override to handle ContextStoppedEvent - } - - protected void onContextClosedEvent(ContextClosedEvent event) { - // Override to handle ContextClosedEvent - } - - private boolean isOriginalEventSource(ApplicationEvent event) { - return Objects.equals(context, event.getSource()); - } - - @Override - public void onEvent(Object event) { - if (event instanceof ApplicationEvent) { - onApplicationEvent((ApplicationEvent) event); - } - } - @Override public String getEnvironmentProperty(String key) { return getInstance().getEnvironment().getProperty(key); From cd8a6821b16d5919816f0f9daa00dfe9fa872d5e Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Fri, 26 Jul 2024 14:53:38 +0800 Subject: [PATCH 049/101] =?UTF-8?q?refactor=EF=BC=9AYaml=E7=A7=BB=E9=99=A4?= =?UTF-8?q?spring=E7=89=B9=E6=80=A7=E5=B9=B6=E6=B5=8B=E8=AF=95=E9=80=9A?= =?UTF-8?q?=E8=BF=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../parser/config/YamlConfigParser.java | 31 ++++++++++++++----- .../test/core/parse/YamlConfigParserTest.java | 16 ++++++++++ 2 files changed, 39 insertions(+), 8 deletions(-) diff --git a/common/src/main/java/org/dromara/dynamictp/common/parser/config/YamlConfigParser.java b/common/src/main/java/org/dromara/dynamictp/common/parser/config/YamlConfigParser.java index 7bb19f7b4..f91e60803 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/parser/config/YamlConfigParser.java +++ b/common/src/main/java/org/dromara/dynamictp/common/parser/config/YamlConfigParser.java @@ -17,13 +17,10 @@ package org.dromara.dynamictp.common.parser.config; -import org.apache.commons.lang3.StringUtils; import org.dromara.dynamictp.common.em.ConfigFileTypeEnum; -import com.google.common.collect.Lists; import org.yaml.snakeyaml.Yaml; -import java.util.Collections; -import java.util.List; -import java.util.Map; + +import java.util.*; /** * YamlConfigParser related @@ -33,7 +30,7 @@ **/ public class YamlConfigParser extends AbstractConfigParser { - private static final List CONFIG_TYPES = Lists.newArrayList( + private static final List CONFIG_TYPES = Arrays.asList( ConfigFileTypeEnum.YML, ConfigFileTypeEnum.YAML); @Override @@ -43,7 +40,7 @@ public List types() { @Override public Map doParse(String content) { - if (StringUtils.isEmpty(content)) { + if (content == null || content.isEmpty()) { return Collections.emptyMap(); } @@ -54,6 +51,24 @@ public Map doParse(String content) { return Collections.emptyMap(); } - return loadedYaml; + Map flattenedMap = new LinkedHashMap<>(); + flattenMap(flattenedMap, loadedYaml, null); + return flattenedMap; + } + + private void flattenMap(Map result, Map source, String path) { + source.forEach((key, value) -> { + String fullPath = (path != null ? path + "." + key : key.toString()); + if (value instanceof Map) { + flattenMap(result, (Map) value, fullPath); + } else if (value instanceof List) { + for (int i = 0; i < ((List) value).size(); i++) { + flattenMap(result, Collections.singletonMap("[" + i + "]", ((List) value).get(i)), fullPath); + } + } else { + fullPath = fullPath.replaceAll("\\.\\[", "["); + result.put(fullPath, value != null ? value.toString() : null); + } + }); } } diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/parse/YamlConfigParserTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/parse/YamlConfigParserTest.java index 0a050fee2..60e63647b 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/parse/YamlConfigParserTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/parse/YamlConfigParserTest.java @@ -43,6 +43,22 @@ void testDoParse() throws FileNotFoundException { YamlConfigParser parser = new YamlConfigParser(); Map result = parser.doParse(content); + Assertions.assertEquals("dtpExecutor1", result.get("spring.dynamic.tp.executors[0].threadPoolName").toString()); } + + @Test + void testDoParse2() throws FileNotFoundException { + File file = ResourceUtils.getFile("classpath:demo-dtp-dev.yml"); + String content = FileUtil.readString(file, StandardCharsets.UTF_8); + + YamlConfigParser parser = new YamlConfigParser(); + Map result = parser.doParse(content); + + // 打印结果以进行调试 + System.out.println(result); + + // 展平后的键路径 + Assertions.assertEquals("dtpExecutor1", result.get("spring.dynamic.tp.executors.[0].threadPoolName").toString()); + } } From 82fe4c885fac12f3cf6efb2f1602bcf3f03aa569 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Fri, 26 Jul 2024 16:53:49 +0800 Subject: [PATCH 050/101] =?UTF-8?q?refactor=EF=BC=9A=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E6=80=BB=E7=BA=BF=E7=9A=84=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/manager/EventBusManager.java | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java b/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java index 744f7cb73..94b611e1b 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java @@ -43,19 +43,33 @@ package org.dromara.dynamictp.common.manager; import com.google.common.eventbus.EventBus; +import lombok.extern.slf4j.Slf4j; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; + +@Slf4j public class EventBusManager { private static final EventBus EVENT_BUS = new EventBus(); - + private static final Set REGISTERED_OBJECTS = ConcurrentHashMap.newKeySet(); private EventBusManager() { } - public static void register(Object object) { - EVENT_BUS.register(object); + public static synchronized void register(Object object) { + if (REGISTERED_OBJECTS.add(object)) { + EVENT_BUS.register(object); + } } - public static void unregister(Object object) { - EVENT_BUS.unregister(object); + public static synchronized void unregister(Object object) { + if (REGISTERED_OBJECTS.remove(object)) { + try { + EVENT_BUS.unregister(object); + } catch (IllegalArgumentException e) { + // log warning or handle the case where the object is not registered + log.warn("Attempted to unregister an object that was not registered: {}", object, e); + } + } } public static void post(Object event) { From 14df348b7b5720bf11478bdc5dd95cd3cbc2bb0c Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Fri, 26 Jul 2024 17:18:42 +0800 Subject: [PATCH 051/101] =?UTF-8?q?refactor=EF=BC=9Acheckstyle=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dynamictp/common/parser/config/YamlConfigParser.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/org/dromara/dynamictp/common/parser/config/YamlConfigParser.java b/common/src/main/java/org/dromara/dynamictp/common/parser/config/YamlConfigParser.java index f91e60803..c8d5cf5ec 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/parser/config/YamlConfigParser.java +++ b/common/src/main/java/org/dromara/dynamictp/common/parser/config/YamlConfigParser.java @@ -20,7 +20,11 @@ import org.dromara.dynamictp.common.em.ConfigFileTypeEnum; import org.yaml.snakeyaml.Yaml; -import java.util.*; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.LinkedHashMap; /** * YamlConfigParser related @@ -56,6 +60,7 @@ public Map doParse(String content) { return flattenedMap; } + @SuppressWarnings("unchecked") private void flattenMap(Map result, Map source, String path) { source.forEach((key, value) -> { String fullPath = (path != null ? path + "." + key : key.toString()); From debed601f65b16fad1454aefe4ded863ce95f0a6 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Fri, 26 Jul 2024 17:20:55 +0800 Subject: [PATCH 052/101] =?UTF-8?q?refactor=EF=BC=9AbannerPrinter=E5=88=A9?= =?UTF-8?q?=E7=94=A8=E4=BA=8B=E4=BB=B6=E6=9C=BA=E5=88=B6=E8=A7=A3=E8=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/event/BannerPrintEvent.java | 29 +++++++++++++++++++ .../common/manager/ContextManagerHelper.java | 4 +++ .../core/support/DtpBannerPrinter.java | 16 ++++++++-- .../dynamictp/spring/SpringContextHolder.java | 5 ++-- 4 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 common/src/main/java/org/dromara/dynamictp/common/event/BannerPrintEvent.java diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/BannerPrintEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/BannerPrintEvent.java new file mode 100644 index 000000000..71146e508 --- /dev/null +++ b/common/src/main/java/org/dromara/dynamictp/common/event/BannerPrintEvent.java @@ -0,0 +1,29 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 org.dromara.dynamictp.common.event; + + +/** + * Event indicating that the banner should be printed. + * This event is published by SpringContextHolder when the application context is set. + */ +public class BannerPrintEvent { + // This class can be expanded with additional fields if needed +} + + diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java index 6ae9fcc33..8db34e1d7 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java @@ -90,5 +90,9 @@ public static String[] getActiveProfiles() { public static String[] getDefaultProfiles() { return CONTEXT_MANAGER.getDefaultProfiles(); } + + public static void publishEvent(Object event) { + EventBusManager.post(event); + } } diff --git a/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java b/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java index a3f6ffde4..58ff18f9a 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java +++ b/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java @@ -17,8 +17,11 @@ package org.dromara.dynamictp.core.support; +import com.google.common.eventbus.Subscribe; import org.dromara.dynamictp.common.constant.DynamicTpConst; +import org.dromara.dynamictp.common.event.BannerPrintEvent; import org.dromara.dynamictp.common.manager.ContextManagerHelper; +import org.dromara.dynamictp.common.manager.EventBusManager; import org.dromara.dynamictp.common.util.VersionUtil; import lombok.extern.slf4j.Slf4j; @@ -32,9 +35,7 @@ public class DtpBannerPrinter { private static final String NAME = " :: Dynamic Thread Pool :: "; - private static final String SITE = " :: https://dynamictp.cn ::"; - private static final String BANNER = "\n" + "| __ \\ (_) |__ __| \n" + "| | | |_ _ _ __ __ _ _ __ ___ _ ___| |_ __ \n" + @@ -44,6 +45,15 @@ public class DtpBannerPrinter { " __/ | | | \n" + " |___/ |_| "; + public DtpBannerPrinter() { + EventBusManager.register(this); + } + + @Subscribe + public void onBannerPrintEvent(BannerPrintEvent event) { + printBanner(); + } + public static void printBanner() { boolean enable = Boolean.parseBoolean(ContextManagerHelper.getEnvironmentProperty(DynamicTpConst.BANNER_ENABLED_PROP, "true")); if (enable) { @@ -51,3 +61,5 @@ public static void printBanner() { } } } + + diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java b/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java index 8fb9e9235..fabc6b4eb 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java @@ -43,8 +43,9 @@ package org.dromara.dynamictp.spring; +import org.dromara.dynamictp.common.event.BannerPrintEvent; import org.dromara.dynamictp.common.manager.ContextManager; -import org.dromara.dynamictp.core.support.DtpBannerPrinter; +import org.dromara.dynamictp.common.manager.ContextManagerHelper; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; @@ -59,7 +60,7 @@ public class SpringContextHolder implements ContextManager, ApplicationContextAw @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { context = applicationContext; - DtpBannerPrinter.printBanner(); // 打印 banner + ContextManagerHelper.publishEvent(new BannerPrintEvent()); // 发布 BannerPrintEvent 事件 } @Override From 2f1b65fb66743eaef5dcbc95f147dab92c677b79 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Fri, 26 Jul 2024 17:28:38 +0800 Subject: [PATCH 053/101] =?UTF-8?q?refactor=EF=BC=9A=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/pom.xml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/core/pom.xml b/core/pom.xml index 3a7550046..33f0b83bc 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -57,20 +57,6 @@ metrics-core - - com.google.inject - guice - 5.0.1 - - - - commons-beanutils - commons-beanutils - 1.9.4 - compile - - - From ec126cfe0ba1929f512d7c62ac06002f5276aca2 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Fri, 26 Jul 2024 17:28:55 +0800 Subject: [PATCH 054/101] =?UTF-8?q?refactor=EF=BC=9A=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/core/parse/YamlConfigParserTest.java | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/parse/YamlConfigParserTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/parse/YamlConfigParserTest.java index 60e63647b..0ae6ee667 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/parse/YamlConfigParserTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/parse/YamlConfigParserTest.java @@ -46,19 +46,4 @@ void testDoParse() throws FileNotFoundException { Assertions.assertEquals("dtpExecutor1", result.get("spring.dynamic.tp.executors[0].threadPoolName").toString()); } - - @Test - void testDoParse2() throws FileNotFoundException { - File file = ResourceUtils.getFile("classpath:demo-dtp-dev.yml"); - String content = FileUtil.readString(file, StandardCharsets.UTF_8); - - YamlConfigParser parser = new YamlConfigParser(); - Map result = parser.doParse(content); - - // 打印结果以进行调试 - System.out.println(result); - - // 展平后的键路径 - Assertions.assertEquals("dtpExecutor1", result.get("spring.dynamic.tp.executors.[0].threadPoolName").toString()); - } } From e5e3dd788140ad56d3c1c4049fd25adee3d99a85 Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Fri, 26 Jul 2024 21:12:13 +0800 Subject: [PATCH 055/101] =?UTF-8?q?refactor=EF=BC=9A=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96null=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/dynamictp/common/manager/ContextManagerHelper.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java index 8db34e1d7..4571b6781 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java @@ -47,9 +47,10 @@ public class ContextManagerHelper { - private static final ContextManager CONTEXT_MANAGER = ExtensionServiceLoader.getFirst(ContextManager.class); + private static final ContextManager CONTEXT_MANAGER; static { + CONTEXT_MANAGER = ExtensionServiceLoader.getFirst(ContextManager.class); if (CONTEXT_MANAGER == null) { throw new IllegalStateException("No ContextManager implementation found"); } From e0cddc538751c41233f3d896b58728a10515946e Mon Sep 17 00:00:00 2001 From: itcast <17338548613@163.com> Date: Sat, 27 Jul 2024 13:27:49 +0800 Subject: [PATCH 056/101] =?UTF-8?q?refactor:=E5=90=88=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/core/notify/AbstractDtpNotifierTest.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/AbstractDtpNotifierTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/AbstractDtpNotifierTest.java index daf7c1c46..7d1697f3b 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/AbstractDtpNotifierTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/AbstractDtpNotifierTest.java @@ -18,6 +18,7 @@ package org.dromara.dynamictp.test.core.notify; import com.google.common.collect.Lists; +import org.dromara.dynamictp.common.notifier.LarkNotifier; import org.dromara.dynamictp.common.em.NotifyItemEnum; import org.dromara.dynamictp.common.entity.NotifyItem; import org.dromara.dynamictp.common.entity.NotifyPlatform; @@ -27,6 +28,8 @@ import org.dromara.dynamictp.core.notifier.AbstractDtpNotifier; import org.dromara.dynamictp.core.notifier.DtpDingNotifier; import org.dromara.dynamictp.common.notifier.Notifier; +import org.dromara.dynamictp.core.notifier.DtpLarkNotifier; +import org.dromara.dynamictp.core.notifier.DtpNotifier; import org.dromara.dynamictp.core.notifier.context.AlarmCtx; import org.dromara.dynamictp.core.notifier.context.DtpNotifyCtxHolder; import org.dromara.dynamictp.core.notifier.context.NoticeCtx; @@ -118,4 +121,16 @@ public void testSendAlarmMsg() { public void testGetQueueName2() { Assert.assertEquals(dtpExecutor.getQueueType(), VARIABLE_LINKED_BLOCKING_QUEUE.getName()); } + + @Test + public void testLarkSendChangeMsg() { + DtpNotifier larkNotifier = new DtpLarkNotifier(new LarkNotifier()); + NotifyPlatform notifyPlatform = new NotifyPlatform(); + notifyPlatform.setWebhook(""); + notifyPlatform.setReceivers(""); + TpMainFields oldFields = new TpMainFields(); + List diffs = Lists.newArrayList("corePoolSize"); + DtpNotifyCtxHolder.set(new NoticeCtx(ExecutorWrapper.of(dtpExecutor), new NotifyItem(), oldFields, diffs)); + larkNotifier.sendChangeMsg(notifyPlatform, oldFields, diffs); + } } From 52ef2231354c4c1735c5f6c67c031429fd6ebedc Mon Sep 17 00:00:00 2001 From: vzer <17338548613@163.com> Date: Tue, 30 Jul 2024 10:53:23 +0800 Subject: [PATCH 057/101] =?UTF-8?q?refactor=EF=BC=9A=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=90=AF=E5=8A=A8=E7=B1=BB=E6=B3=A8=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/DubboExampleApplication.java | 2 + .../example/DubboExampleApplication.java | 2 + .../example/DubboExampleApplication.java | 2 + .../example/DubboExampleApplication.java | 2 + .../example/DubboExampleApplication.java | 2 + .../example/GrpcExampleApplication.java | 2 + .../example/HystrixExampleApplication.java | 2 + .../example/MotanExampleApplication.java | 2 + .../example/Okhttp3ExampleApplication.java | 2 + .../example/RabbitMqExampleApplication.java | 2 + .../example/RocketMqExampleApplication.java | 2 + .../example/ApolloExampleApplication.java | 2 + .../CloudConsulExampleApplication.java | 2 + .../example/EtcdExampleApplication.java | 2 + .../HuaweiCloudExampleApplication.java | 2 + .../example/NacosCloudExampleApplication.java | 2 + .../example/NacosExampleApplication.java | 2 + .../PolarisCloudExampleApplication.java | 2 + .../CloudZookeeperExampleApplication.java | 2 + .../example/ZookeeperExampleApplication.java | 2 + spring/.gitignore | 38 ------------------- .../dynamictp/test/core/spring/Config.java | 2 + .../spring/DtpBaseBeanConfigurationTest.java | 6 +-- .../core/spring/DtpPostProcessorTest.java | 2 + .../test/core/thread/DtpExecutorTest.java | 2 + .../core/thread/EagerDtpExecutorTest.java | 2 + .../core/thread/OrderedDtpExecutorTest.java | 2 + .../core/thread/PriorityDtpExecutorTest.java | 2 + .../core/thread/ScheduledDtpExecutorTest.java | 2 + .../proxy/ThreadPoolExecutorProxyTest.java | 2 + 30 files changed, 58 insertions(+), 42 deletions(-) delete mode 100644 spring/.gitignore diff --git a/example/example-adapter/example-adapter-dubbo/example-adapter-alibaba-dubbo/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java b/example/example-adapter/example-adapter-dubbo/example-adapter-alibaba-dubbo/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java index c033c13c3..39ddb6cb0 100644 --- a/example/example-adapter/example-adapter-dubbo/example-adapter-alibaba-dubbo/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java +++ b/example/example-adapter/example-adapter-dubbo/example-adapter-alibaba-dubbo/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java @@ -18,12 +18,14 @@ package org.dromara.dynamictp.example; import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author dragon-zhang */ +@EnableDynamicTp @EnableDubbo @SpringBootApplication public class DubboExampleApplication { diff --git a/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-2.7.3/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java b/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-2.7.3/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java index da42cf0f1..0d34af7df 100644 --- a/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-2.7.3/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java +++ b/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-2.7.3/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java @@ -18,12 +18,14 @@ package org.dromara.dynamictp.example; import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author dragon-zhang */ +@EnableDynamicTp @EnableDubbo @SpringBootApplication public class DubboExampleApplication { diff --git a/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-2.7.9/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java b/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-2.7.9/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java index 15d069a1b..7b0f9cc46 100644 --- a/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-2.7.9/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java +++ b/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-2.7.9/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java @@ -18,12 +18,14 @@ package org.dromara.dynamictp.example; import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author fabian4 */ +@EnableDynamicTp @EnableDubbo @SpringBootApplication public class DubboExampleApplication { diff --git a/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-3.0.7/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java b/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-3.0.7/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java index 15d069a1b..7b0f9cc46 100644 --- a/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-3.0.7/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java +++ b/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-3.0.7/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java @@ -18,12 +18,14 @@ package org.dromara.dynamictp.example; import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author fabian4 */ +@EnableDynamicTp @EnableDubbo @SpringBootApplication public class DubboExampleApplication { diff --git a/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-3.2.10/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java b/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-3.2.10/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java index 15d069a1b..7b0f9cc46 100644 --- a/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-3.2.10/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java +++ b/example/example-adapter/example-adapter-dubbo/example-adapter-apache-dubbo/example-adapter-apache-dubbo-3.2.10/src/main/java/org/dromara/dynamictp/example/DubboExampleApplication.java @@ -18,12 +18,14 @@ package org.dromara.dynamictp.example; import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author fabian4 */ +@EnableDynamicTp @EnableDubbo @SpringBootApplication public class DubboExampleApplication { diff --git a/example/example-adapter/example-adapter-grpc/src/main/java/org/dromara/dynamictp/example/GrpcExampleApplication.java b/example/example-adapter/example-adapter-grpc/src/main/java/org/dromara/dynamictp/example/GrpcExampleApplication.java index 97368f111..da31d9968 100644 --- a/example/example-adapter/example-adapter-grpc/src/main/java/org/dromara/dynamictp/example/GrpcExampleApplication.java +++ b/example/example-adapter/example-adapter-grpc/src/main/java/org/dromara/dynamictp/example/GrpcExampleApplication.java @@ -17,12 +17,14 @@ package org.dromara.dynamictp.example; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author fabian4 */ +@EnableDynamicTp @SpringBootApplication public class GrpcExampleApplication { public static void main(String[] args) { diff --git a/example/example-adapter/example-adapter-hystrix/src/main/java/org/dromara/dynamictp/example/HystrixExampleApplication.java b/example/example-adapter/example-adapter-hystrix/src/main/java/org/dromara/dynamictp/example/HystrixExampleApplication.java index d8ca1bf1f..fddb6dfc8 100644 --- a/example/example-adapter/example-adapter-hystrix/src/main/java/org/dromara/dynamictp/example/HystrixExampleApplication.java +++ b/example/example-adapter/example-adapter-hystrix/src/main/java/org/dromara/dynamictp/example/HystrixExampleApplication.java @@ -17,6 +17,7 @@ package org.dromara.dynamictp.example; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.hystrix.EnableHystrix; @@ -24,6 +25,7 @@ /** * @author fabian4 */ +@EnableDynamicTp @EnableHystrix @SpringBootApplication public class HystrixExampleApplication { diff --git a/example/example-adapter/example-adapter-motan/src/main/java/org/dromara/dynamictp/example/MotanExampleApplication.java b/example/example-adapter/example-adapter-motan/src/main/java/org/dromara/dynamictp/example/MotanExampleApplication.java index 380d7aef4..fbdda1e0f 100644 --- a/example/example-adapter/example-adapter-motan/src/main/java/org/dromara/dynamictp/example/MotanExampleApplication.java +++ b/example/example-adapter/example-adapter-motan/src/main/java/org/dromara/dynamictp/example/MotanExampleApplication.java @@ -17,6 +17,7 @@ package org.dromara.dynamictp.example; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ImportResource; @@ -24,6 +25,7 @@ /** * @author fabian4 */ +@EnableDynamicTp @SpringBootApplication @ImportResource(locations = {"classpath:motan_server.xml"}) public class MotanExampleApplication { diff --git a/example/example-adapter/example-adapter-okhttp3/src/main/java/org/dromara/dynamictp/example/Okhttp3ExampleApplication.java b/example/example-adapter/example-adapter-okhttp3/src/main/java/org/dromara/dynamictp/example/Okhttp3ExampleApplication.java index b352f0a02..605bc3548 100644 --- a/example/example-adapter/example-adapter-okhttp3/src/main/java/org/dromara/dynamictp/example/Okhttp3ExampleApplication.java +++ b/example/example-adapter/example-adapter-okhttp3/src/main/java/org/dromara/dynamictp/example/Okhttp3ExampleApplication.java @@ -17,12 +17,14 @@ package org.dromara.dynamictp.example; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author fabian4 */ +@EnableDynamicTp @SpringBootApplication public class Okhttp3ExampleApplication { diff --git a/example/example-adapter/example-adapter-rabbitmq/src/main/java/org/dromara/dynamictp/example/RabbitMqExampleApplication.java b/example/example-adapter/example-adapter-rabbitmq/src/main/java/org/dromara/dynamictp/example/RabbitMqExampleApplication.java index d4158c827..26b7e10e3 100644 --- a/example/example-adapter/example-adapter-rabbitmq/src/main/java/org/dromara/dynamictp/example/RabbitMqExampleApplication.java +++ b/example/example-adapter/example-adapter-rabbitmq/src/main/java/org/dromara/dynamictp/example/RabbitMqExampleApplication.java @@ -17,12 +17,14 @@ package org.dromara.dynamictp.example; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author fabian4 */ +@EnableDynamicTp @SpringBootApplication public class RabbitMqExampleApplication { diff --git a/example/example-adapter/example-adapter-rocketmq/src/main/java/org/dromara/dynamictp/example/RocketMqExampleApplication.java b/example/example-adapter/example-adapter-rocketmq/src/main/java/org/dromara/dynamictp/example/RocketMqExampleApplication.java index 89c997982..dfd8bafd6 100644 --- a/example/example-adapter/example-adapter-rocketmq/src/main/java/org/dromara/dynamictp/example/RocketMqExampleApplication.java +++ b/example/example-adapter/example-adapter-rocketmq/src/main/java/org/dromara/dynamictp/example/RocketMqExampleApplication.java @@ -17,6 +17,7 @@ package org.dromara.dynamictp.example; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -24,6 +25,7 @@ * @author fabian4 */ @SpringBootApplication +@EnableDynamicTp public class RocketMqExampleApplication { public static void main(String[] args) { diff --git a/example/example-apollo/src/main/java/org/dromara/dynamictp/example/ApolloExampleApplication.java b/example/example-apollo/src/main/java/org/dromara/dynamictp/example/ApolloExampleApplication.java index 87db49a86..51fc8003a 100644 --- a/example/example-apollo/src/main/java/org/dromara/dynamictp/example/ApolloExampleApplication.java +++ b/example/example-apollo/src/main/java/org/dromara/dynamictp/example/ApolloExampleApplication.java @@ -17,12 +17,14 @@ package org.dromara.dynamictp.example; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author Redick01 */ +@EnableDynamicTp @SpringBootApplication public class ApolloExampleApplication { diff --git a/example/example-consul-cloud/src/main/java/org/dromara/dynamictp/example/CloudConsulExampleApplication.java b/example/example-consul-cloud/src/main/java/org/dromara/dynamictp/example/CloudConsulExampleApplication.java index 1d65950a1..45c828aeb 100644 --- a/example/example-consul-cloud/src/main/java/org/dromara/dynamictp/example/CloudConsulExampleApplication.java +++ b/example/example-consul-cloud/src/main/java/org/dromara/dynamictp/example/CloudConsulExampleApplication.java @@ -17,6 +17,7 @@ package org.dromara.dynamictp.example; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -28,6 +29,7 @@ @EnableFeignClients @MapperScan(basePackages = {"org.dromara.dynamictp.example.mapper"}) @SpringBootApplication +@EnableDynamicTp public class CloudConsulExampleApplication { public static void main(String[] args) { diff --git a/example/example-etcd/src/main/java/org/dromara/dynamictp/example/EtcdExampleApplication.java b/example/example-etcd/src/main/java/org/dromara/dynamictp/example/EtcdExampleApplication.java index 8a58d1d78..79a1ed1d3 100644 --- a/example/example-etcd/src/main/java/org/dromara/dynamictp/example/EtcdExampleApplication.java +++ b/example/example-etcd/src/main/java/org/dromara/dynamictp/example/EtcdExampleApplication.java @@ -17,12 +17,14 @@ package org.dromara.dynamictp.example; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author Redick01 */ +@EnableDynamicTp @SpringBootApplication public class EtcdExampleApplication { diff --git a/example/example-huawei-cloud/src/main/java/org/dromara/dynamictp/example/HuaweiCloudExampleApplication.java b/example/example-huawei-cloud/src/main/java/org/dromara/dynamictp/example/HuaweiCloudExampleApplication.java index a6f2a7f60..057c08698 100644 --- a/example/example-huawei-cloud/src/main/java/org/dromara/dynamictp/example/HuaweiCloudExampleApplication.java +++ b/example/example-huawei-cloud/src/main/java/org/dromara/dynamictp/example/HuaweiCloudExampleApplication.java @@ -17,12 +17,14 @@ package org.dromara.dynamictp.example; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author windsearcher */ +@EnableDynamicTp @SpringBootApplication public class HuaweiCloudExampleApplication { diff --git a/example/example-nacos-cloud/src/main/java/org/dromara/dynamictp/example/NacosCloudExampleApplication.java b/example/example-nacos-cloud/src/main/java/org/dromara/dynamictp/example/NacosCloudExampleApplication.java index 48ea0cc4d..f1ae3f329 100644 --- a/example/example-nacos-cloud/src/main/java/org/dromara/dynamictp/example/NacosCloudExampleApplication.java +++ b/example/example-nacos-cloud/src/main/java/org/dromara/dynamictp/example/NacosCloudExampleApplication.java @@ -17,12 +17,14 @@ package org.dromara.dynamictp.example; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author Redick01 */ +@EnableDynamicTp @SpringBootApplication public class NacosCloudExampleApplication { diff --git a/example/example-nacos/src/main/java/org/dromara/dynamictp/example/NacosExampleApplication.java b/example/example-nacos/src/main/java/org/dromara/dynamictp/example/NacosExampleApplication.java index ac3f9e2d1..415158078 100644 --- a/example/example-nacos/src/main/java/org/dromara/dynamictp/example/NacosExampleApplication.java +++ b/example/example-nacos/src/main/java/org/dromara/dynamictp/example/NacosExampleApplication.java @@ -17,6 +17,7 @@ package org.dromara.dynamictp.example; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -24,6 +25,7 @@ * @author Redick01 */ @SpringBootApplication +@EnableDynamicTp public class NacosExampleApplication { public static void main(String[] args) { diff --git a/example/example-polaris-cloud/src/main/java/org/dromara/dynamictp/example/PolarisCloudExampleApplication.java b/example/example-polaris-cloud/src/main/java/org/dromara/dynamictp/example/PolarisCloudExampleApplication.java index 0a1eb555e..98952342e 100644 --- a/example/example-polaris-cloud/src/main/java/org/dromara/dynamictp/example/PolarisCloudExampleApplication.java +++ b/example/example-polaris-cloud/src/main/java/org/dromara/dynamictp/example/PolarisCloudExampleApplication.java @@ -17,12 +17,14 @@ package org.dromara.dynamictp.example; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author fabian4 */ +@EnableDynamicTp @SpringBootApplication public class PolarisCloudExampleApplication { diff --git a/example/example-zookeeper-cloud/src/main/java/org/dromara/dynamictp/example/CloudZookeeperExampleApplication.java b/example/example-zookeeper-cloud/src/main/java/org/dromara/dynamictp/example/CloudZookeeperExampleApplication.java index 664c52f57..68d9d65bc 100644 --- a/example/example-zookeeper-cloud/src/main/java/org/dromara/dynamictp/example/CloudZookeeperExampleApplication.java +++ b/example/example-zookeeper-cloud/src/main/java/org/dromara/dynamictp/example/CloudZookeeperExampleApplication.java @@ -17,12 +17,14 @@ package org.dromara.dynamictp.example; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author Redick01 */ +@EnableDynamicTp @SpringBootApplication public class CloudZookeeperExampleApplication { diff --git a/example/example-zookeeper/src/main/java/org/dromara/dynamictp/example/ZookeeperExampleApplication.java b/example/example-zookeeper/src/main/java/org/dromara/dynamictp/example/ZookeeperExampleApplication.java index f2ec16cc6..c3b635717 100644 --- a/example/example-zookeeper/src/main/java/org/dromara/dynamictp/example/ZookeeperExampleApplication.java +++ b/example/example-zookeeper/src/main/java/org/dromara/dynamictp/example/ZookeeperExampleApplication.java @@ -17,6 +17,7 @@ package org.dromara.dynamictp.example; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.scheduling.annotation.EnableAsync; @@ -24,6 +25,7 @@ /** * @author Redick01 */ +@EnableDynamicTp @EnableAsync @SpringBootApplication public class ZookeeperExampleApplication { diff --git a/spring/.gitignore b/spring/.gitignore deleted file mode 100644 index 5ff6309b7..000000000 --- a/spring/.gitignore +++ /dev/null @@ -1,38 +0,0 @@ -target/ -!.mvn/wrapper/maven-wrapper.jar -!**/src/main/**/target/ -!**/src/test/**/target/ - -### IntelliJ IDEA ### -.idea/modules.xml -.idea/jarRepositories.xml -.idea/compiler.xml -.idea/libraries/ -*.iws -*.iml -*.ipr - -### Eclipse ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -build/ -!**/src/main/**/build/ -!**/src/test/**/build/ - -### VS Code ### -.vscode/ - -### Mac OS ### -.DS_Store \ No newline at end of file diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/Config.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/Config.java index 40a7aa31e..e096c4b45 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/Config.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/Config.java @@ -18,6 +18,7 @@ package org.dromara.dynamictp.test.core.spring; import org.dromara.dynamictp.core.support.DynamicTp; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -33,6 +34,7 @@ * Date: 2023/4/22 * Time: 14:27 */ +@EnableDynamicTp @Configuration public class Config { /** diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpBaseBeanConfigurationTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpBaseBeanConfigurationTest.java index acb01e909..d20025fbf 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpBaseBeanConfigurationTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpBaseBeanConfigurationTest.java @@ -20,10 +20,7 @@ import org.dromara.dynamictp.core.DtpRegistry; import org.dromara.dynamictp.core.monitor.DtpMonitor; import org.dromara.dynamictp.core.support.DtpBannerPrinter; -import org.dromara.dynamictp.spring.DtpBaseBeanConfiguration; -import org.dromara.dynamictp.spring.DtpPostProcessor; -import org.dromara.dynamictp.spring.SpringContextHolder; -import org.dromara.dynamictp.spring.YamlPropertySourceFactory; +import org.dromara.dynamictp.spring.*; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.NoSuchBeanDefinitionException; @@ -43,6 +40,7 @@ public class DtpBaseBeanConfigurationTest { @SpringBootTest(classes = DtpBaseBeanConfigurationTest.class) + @EnableDynamicTp public static class EnableDynamicTpAnnotationTest { @Autowired diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpPostProcessorTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpPostProcessorTest.java index ce125bc2e..a4c323bb6 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpPostProcessorTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpPostProcessorTest.java @@ -19,6 +19,7 @@ import org.dromara.dynamictp.core.DtpRegistry; import org.dromara.dynamictp.core.support.ThreadPoolExecutorProxy; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.dromara.dynamictp.spring.YamlPropertySourceFactory; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; @@ -36,6 +37,7 @@ /** * @author KamTo Hung */ +@EnableDynamicTp @EnableAutoConfiguration @PropertySource(value = "classpath:/postprocessor-dtp-dev.yml", factory = YamlPropertySourceFactory.class) @ComponentScan(basePackages = "org.dromara.dynamictp.test.core.spring") diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/DtpExecutorTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/DtpExecutorTest.java index cd90f658e..28c68dca4 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/DtpExecutorTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/DtpExecutorTest.java @@ -21,6 +21,7 @@ import org.dromara.dynamictp.core.DtpRegistry; import org.dromara.dynamictp.core.notifier.manager.AlarmManager; import org.dromara.dynamictp.core.support.ExecutorWrapper; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.dromara.dynamictp.spring.YamlPropertySourceFactory; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.RepeatedTest; @@ -46,6 +47,7 @@ * @since 1.1.0 */ @Slf4j +@EnableDynamicTp @EnableAutoConfiguration @ExtendWith(SpringExtension.class) @SpringBootTest(classes = DtpExecutorTest.class) diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/EagerDtpExecutorTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/EagerDtpExecutorTest.java index 59b45fc38..472009eb9 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/EagerDtpExecutorTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/EagerDtpExecutorTest.java @@ -19,6 +19,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.core.DtpRegistry; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.dromara.dynamictp.spring.YamlPropertySourceFactory; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -37,6 +38,7 @@ * @since 1.1.0 */ @Slf4j +@EnableDynamicTp @EnableAutoConfiguration @ExtendWith(SpringExtension.class) @SpringBootTest(classes = EagerDtpExecutorTest.class) diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/OrderedDtpExecutorTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/OrderedDtpExecutorTest.java index 5848cc0ff..0d5611c63 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/OrderedDtpExecutorTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/OrderedDtpExecutorTest.java @@ -25,6 +25,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.extern.slf4j.Slf4j; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.dromara.dynamictp.spring.YamlPropertySourceFactory; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -45,6 +46,7 @@ @PropertySource(value = "classpath:/dynamic-tp-nacos-demo-dtp-dev.yml", factory = YamlPropertySourceFactory.class) @SpringBootTest(classes = OrderedDtpExecutorTest.class) @ExtendWith(SpringExtension.class) +@EnableDynamicTp @EnableAutoConfiguration class OrderedDtpExecutorTest { diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/PriorityDtpExecutorTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/PriorityDtpExecutorTest.java index 3f8f7eaaa..2bbacb2da 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/PriorityDtpExecutorTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/PriorityDtpExecutorTest.java @@ -19,6 +19,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.core.executor.priority.PriorityDtpExecutor; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.dromara.dynamictp.spring.YamlPropertySourceFactory; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -41,6 +42,7 @@ */ @Slf4j @EnableAutoConfiguration +@EnableDynamicTp @ExtendWith(SpringExtension.class) @SpringBootTest(classes = PriorityDtpExecutorTest.class) @PropertySource(value = "classpath:/dynamic-tp-demo.yml", factory = YamlPropertySourceFactory.class) diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/ScheduledDtpExecutorTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/ScheduledDtpExecutorTest.java index 8ac1381b6..191fbcd7e 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/ScheduledDtpExecutorTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/ScheduledDtpExecutorTest.java @@ -19,6 +19,7 @@ import org.dromara.dynamictp.core.DtpRegistry; import org.dromara.dynamictp.core.executor.ScheduledDtpExecutor; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.dromara.dynamictp.spring.YamlPropertySourceFactory; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -35,6 +36,7 @@ @SpringBootTest(classes = ScheduledDtpExecutorTest.class) //让JUnit运行Spring的测试环境,获得Spring环境的上下文的支持 @ExtendWith(SpringExtension.class) +@EnableDynamicTp @EnableAutoConfiguration class ScheduledDtpExecutorTest { diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/proxy/ThreadPoolExecutorProxyTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/proxy/ThreadPoolExecutorProxyTest.java index 46f560aa8..8c5a82986 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/proxy/ThreadPoolExecutorProxyTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/proxy/ThreadPoolExecutorProxyTest.java @@ -23,6 +23,7 @@ import org.dromara.dynamictp.core.executor.NamedThreadFactory; import org.dromara.dynamictp.core.support.ExecutorWrapper; import org.dromara.dynamictp.core.support.ThreadPoolExecutorProxy; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -37,6 +38,7 @@ * @date 2023年09月15日 09:48 */ @Slf4j +@EnableDynamicTp @EnableAutoConfiguration @ExtendWith(SpringExtension.class) @SpringBootTest(classes = ThreadPoolExecutorProxyTest.class) From 0d26d949353bc4cafce3dd774ae47ec1cbd69651 Mon Sep 17 00:00:00 2001 From: vzer <17338548613@163.com> Date: Tue, 30 Jul 2024 11:09:35 +0800 Subject: [PATCH 058/101] =?UTF-8?q?refactor=EF=BC=9A=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=BC=80=E6=BA=90=E6=96=87=E4=BB=B6=E5=A4=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/manager/ContextManager.java | 26 +------------------ .../common/manager/ContextManagerHelper.java | 24 ----------------- .../common/manager/EventBusManager.java | 24 ----------------- .../core/lifecycle/LifeCycleManagement.java | 25 ------------------ .../spring/AbstractSpringRefresher.java | 25 ------------------ .../dynamictp/spring/SpringContextHolder.java | 25 ------------------ 6 files changed, 1 insertion(+), 148 deletions(-) diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java index 8b29212cd..a667b861e 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java @@ -14,31 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -// Copyright (c) 2007-2020 VMware, Inc. or its affiliates. All rights reserved. -// -// This software, the RabbitMQ Java client library, is triple-licensed under the -// Mozilla Public License 2.0 ("MPL"), the GNU General Public License version 2 -// ("GPL") and the Apache License version 2 ("ASL"). For the MPL, please see -// LICENSE-MPL-RabbitMQ. For the GPL, please see LICENSE-GPL2. For the ASL, -// please see LICENSE-APACHE2. -// -// This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, -// either express or implied. See the LICENSE file for specific language governing -// rights and limitations of this software. -// -// If you have any questions regarding licensing, please contact us at -// info@rabbitmq.com. -/* - * Modifications Copyright 2015-2020 VMware, Inc. or its affiliates. and licenced as per - * the rest of the RabbitMQ Java client. - */ - -/* - * Written by Doug Lea with assistance from members of JCP JSR-166 - * Expert Group and released to the public domain, as explained at - * https://creativecommons.org/licenses/publicdomain - */ package org.dromara.dynamictp.common.manager; @@ -50,7 +26,7 @@ * and retrieve environment properties and profiles. * * @author vzer200 - * @since 1.0.0 + * @since 1.1.8 */ public interface ContextManager { diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java index 4571b6781..f88c5c7a7 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java @@ -14,31 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -// Copyright (c) 2007-2020 VMware, Inc. or its affiliates. All rights reserved. -// -// This software, the RabbitMQ Java client library, is triple-licensed under the -// Mozilla Public License 2.0 ("MPL"), the GNU General Public License version 2 -// ("GPL") and the Apache License version 2 ("ASL"). For the MPL, please see -// LICENSE-MPL-RabbitMQ. For the GPL, please see LICENSE-GPL2. For the ASL, -// please see LICENSE-APACHE2. -// -// This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, -// either express or implied. See the LICENSE file for specific language governing -// rights and limitations of this software. -// -// If you have any questions regarding licensing, please contact us at -// info@rabbitmq.com. -/* - * Modifications Copyright 2015-2020 VMware, Inc. or its affiliates. and licenced as per - * the rest of the RabbitMQ Java client. - */ - -/* - * Written by Doug Lea with assistance from members of JCP JSR-166 - * Expert Group and released to the public domain, as explained at - * https://creativecommons.org/licenses/publicdomain - */ package org.dromara.dynamictp.common.manager; import org.dromara.dynamictp.common.util.ExtensionServiceLoader; diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java b/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java index 94b611e1b..f513993ca 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java @@ -14,31 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -// Copyright (c) 2007-2020 VMware, Inc. or its affiliates. All rights reserved. -// -// This software, the RabbitMQ Java client library, is triple-licensed under the -// Mozilla Public License 2.0 ("MPL"), the GNU General Public License version 2 -// ("GPL") and the Apache License version 2 ("ASL"). For the MPL, please see -// LICENSE-MPL-RabbitMQ. For the GPL, please see LICENSE-GPL2. For the ASL, -// please see LICENSE-APACHE2. -// -// This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, -// either express or implied. See the LICENSE file for specific language governing -// rights and limitations of this software. -// -// If you have any questions regarding licensing, please contact us at -// info@rabbitmq.com. -/* - * Modifications Copyright 2015-2020 VMware, Inc. or its affiliates. and licenced as per - * the rest of the RabbitMQ Java client. - */ - -/* - * Written by Doug Lea with assistance from members of JCP JSR-166 - * Expert Group and released to the public domain, as explained at - * https://creativecommons.org/licenses/publicdomain - */ package org.dromara.dynamictp.common.manager; diff --git a/core/src/main/java/org/dromara/dynamictp/core/lifecycle/LifeCycleManagement.java b/core/src/main/java/org/dromara/dynamictp/core/lifecycle/LifeCycleManagement.java index 3b141b72c..168370097 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/lifecycle/LifeCycleManagement.java +++ b/core/src/main/java/org/dromara/dynamictp/core/lifecycle/LifeCycleManagement.java @@ -14,31 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -// Copyright (c) 2007-2020 VMware, Inc. or its affiliates. All rights reserved. -// -// This software, the RabbitMQ Java client library, is triple-licensed under the -// Mozilla Public License 2.0 ("MPL"), the GNU General Public License version 2 -// ("GPL") and the Apache License version 2 ("ASL"). For the MPL, please see -// LICENSE-MPL-RabbitMQ. For the GPL, please see LICENSE-GPL2. For the ASL, -// please see LICENSE-APACHE2. -// -// This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, -// either express or implied. See the LICENSE file for specific language governing -// rights and limitations of this software. -// -// If you have any questions regarding licensing, please contact us at -// info@rabbitmq.com. - -/* - * Modifications Copyright 2015-2020 VMware, Inc. or its affiliates. and licenced as per - * the rest of the RabbitMQ Java client. - */ - -/* - * Written by Doug Lea with assistance from members of JCP JSR-166 - * Expert Group and released to the public domain, as explained at - * https://creativecommons.org/licenses/publicdomain - */ package org.dromara.dynamictp.core.lifecycle; diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java b/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java index a1507b99d..c2359d760 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java @@ -14,31 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -// Copyright (c) 2007-2020 VMware, Inc. or its affiliates. All rights reserved. -// -// This software, the RabbitMQ Java client library, is triple-licensed under the -// Mozilla Public License 2.0 ("MPL"), the GNU General Public License version 2 -// ("GPL") and the Apache License version 2 ("ASL"). For the MPL, please see -// LICENSE-MPL-RabbitMQ. For the GPL, please see LICENSE-GPL2. For the ASL, -// please see LICENSE-APACHE2. -// -// This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, -// either express or implied. See the LICENSE file for specific language governing -// rights and limitations of this software. -// -// If you have any questions regarding licensing, please contact us at -// info@rabbitmq.com. - -/* - * Modifications Copyright 2015-2020 VMware, Inc. or its affiliates. and licenced as per - * the rest of the RabbitMQ Java client. - */ - -/* - * Written by Doug Lea with assistance from members of JCP JSR-166 - * Expert Group and released to the public domain, as explained at - * https://creativecommons.org/licenses/publicdomain - */ package org.dromara.dynamictp.spring; diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java b/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java index fabc6b4eb..09a302e82 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java @@ -14,31 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -// Copyright (c) 2007-2020 VMware, Inc. or its affiliates. All rights reserved. -// -// This software, the RabbitMQ Java client library, is triple-licensed under the -// Mozilla Public License 2.0 ("MPL"), the GNU General Public License version 2 -// ("GPL") and the Apache License version 2 ("ASL"). For the MPL, please see -// LICENSE-MPL-RabbitMQ. For the GPL, please see LICENSE-GPL2. For the ASL, -// please see LICENSE-APACHE2. -// -// This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, -// either express or implied. See the LICENSE file for specific language governing -// rights and limitations of this software. -// -// If you have any questions regarding licensing, please contact us at -// info@rabbitmq.com. - -/* - * Modifications Copyright 2015-2020 VMware, Inc. or its affiliates. and licenced as per - * the rest of the RabbitMQ Java client. - */ - -/* - * Written by Doug Lea with assistance from members of JCP JSR-166 - * Expert Group and released to the public domain, as explained at - * https://creativecommons.org/licenses/publicdomain - */ package org.dromara.dynamictp.spring; From 632497e8fddaea638df5c583e48bb13dc643fab6 Mon Sep 17 00:00:00 2001 From: vzer <17338548613@163.com> Date: Tue, 30 Jul 2024 11:09:35 +0800 Subject: [PATCH 059/101] =?UTF-8?q?refactor=EF=BC=9A=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=BC=80=E6=BA=90=E6=96=87=E4=BB=B6=E5=A4=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/manager/ContextManager.java | 26 +------------------ .../common/manager/ContextManagerHelper.java | 24 ----------------- .../common/manager/EventBusManager.java | 24 ----------------- .../core/lifecycle/LifeCycleManagement.java | 25 ------------------ .../spring/AbstractSpringRefresher.java | 25 ------------------ .../dynamictp/spring/SpringContextHolder.java | 25 ------------------ 6 files changed, 1 insertion(+), 148 deletions(-) diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java index 8b29212cd..a667b861e 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManager.java @@ -14,31 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -// Copyright (c) 2007-2020 VMware, Inc. or its affiliates. All rights reserved. -// -// This software, the RabbitMQ Java client library, is triple-licensed under the -// Mozilla Public License 2.0 ("MPL"), the GNU General Public License version 2 -// ("GPL") and the Apache License version 2 ("ASL"). For the MPL, please see -// LICENSE-MPL-RabbitMQ. For the GPL, please see LICENSE-GPL2. For the ASL, -// please see LICENSE-APACHE2. -// -// This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, -// either express or implied. See the LICENSE file for specific language governing -// rights and limitations of this software. -// -// If you have any questions regarding licensing, please contact us at -// info@rabbitmq.com. -/* - * Modifications Copyright 2015-2020 VMware, Inc. or its affiliates. and licenced as per - * the rest of the RabbitMQ Java client. - */ - -/* - * Written by Doug Lea with assistance from members of JCP JSR-166 - * Expert Group and released to the public domain, as explained at - * https://creativecommons.org/licenses/publicdomain - */ package org.dromara.dynamictp.common.manager; @@ -50,7 +26,7 @@ * and retrieve environment properties and profiles. * * @author vzer200 - * @since 1.0.0 + * @since 1.1.8 */ public interface ContextManager { diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java index 4571b6781..f88c5c7a7 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java @@ -14,31 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -// Copyright (c) 2007-2020 VMware, Inc. or its affiliates. All rights reserved. -// -// This software, the RabbitMQ Java client library, is triple-licensed under the -// Mozilla Public License 2.0 ("MPL"), the GNU General Public License version 2 -// ("GPL") and the Apache License version 2 ("ASL"). For the MPL, please see -// LICENSE-MPL-RabbitMQ. For the GPL, please see LICENSE-GPL2. For the ASL, -// please see LICENSE-APACHE2. -// -// This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, -// either express or implied. See the LICENSE file for specific language governing -// rights and limitations of this software. -// -// If you have any questions regarding licensing, please contact us at -// info@rabbitmq.com. -/* - * Modifications Copyright 2015-2020 VMware, Inc. or its affiliates. and licenced as per - * the rest of the RabbitMQ Java client. - */ - -/* - * Written by Doug Lea with assistance from members of JCP JSR-166 - * Expert Group and released to the public domain, as explained at - * https://creativecommons.org/licenses/publicdomain - */ package org.dromara.dynamictp.common.manager; import org.dromara.dynamictp.common.util.ExtensionServiceLoader; diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java b/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java index 94b611e1b..f513993ca 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java @@ -14,31 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -// Copyright (c) 2007-2020 VMware, Inc. or its affiliates. All rights reserved. -// -// This software, the RabbitMQ Java client library, is triple-licensed under the -// Mozilla Public License 2.0 ("MPL"), the GNU General Public License version 2 -// ("GPL") and the Apache License version 2 ("ASL"). For the MPL, please see -// LICENSE-MPL-RabbitMQ. For the GPL, please see LICENSE-GPL2. For the ASL, -// please see LICENSE-APACHE2. -// -// This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, -// either express or implied. See the LICENSE file for specific language governing -// rights and limitations of this software. -// -// If you have any questions regarding licensing, please contact us at -// info@rabbitmq.com. -/* - * Modifications Copyright 2015-2020 VMware, Inc. or its affiliates. and licenced as per - * the rest of the RabbitMQ Java client. - */ - -/* - * Written by Doug Lea with assistance from members of JCP JSR-166 - * Expert Group and released to the public domain, as explained at - * https://creativecommons.org/licenses/publicdomain - */ package org.dromara.dynamictp.common.manager; diff --git a/core/src/main/java/org/dromara/dynamictp/core/lifecycle/LifeCycleManagement.java b/core/src/main/java/org/dromara/dynamictp/core/lifecycle/LifeCycleManagement.java index 3b141b72c..168370097 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/lifecycle/LifeCycleManagement.java +++ b/core/src/main/java/org/dromara/dynamictp/core/lifecycle/LifeCycleManagement.java @@ -14,31 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -// Copyright (c) 2007-2020 VMware, Inc. or its affiliates. All rights reserved. -// -// This software, the RabbitMQ Java client library, is triple-licensed under the -// Mozilla Public License 2.0 ("MPL"), the GNU General Public License version 2 -// ("GPL") and the Apache License version 2 ("ASL"). For the MPL, please see -// LICENSE-MPL-RabbitMQ. For the GPL, please see LICENSE-GPL2. For the ASL, -// please see LICENSE-APACHE2. -// -// This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, -// either express or implied. See the LICENSE file for specific language governing -// rights and limitations of this software. -// -// If you have any questions regarding licensing, please contact us at -// info@rabbitmq.com. - -/* - * Modifications Copyright 2015-2020 VMware, Inc. or its affiliates. and licenced as per - * the rest of the RabbitMQ Java client. - */ - -/* - * Written by Doug Lea with assistance from members of JCP JSR-166 - * Expert Group and released to the public domain, as explained at - * https://creativecommons.org/licenses/publicdomain - */ package org.dromara.dynamictp.core.lifecycle; diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java b/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java index a1507b99d..c2359d760 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java @@ -14,31 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -// Copyright (c) 2007-2020 VMware, Inc. or its affiliates. All rights reserved. -// -// This software, the RabbitMQ Java client library, is triple-licensed under the -// Mozilla Public License 2.0 ("MPL"), the GNU General Public License version 2 -// ("GPL") and the Apache License version 2 ("ASL"). For the MPL, please see -// LICENSE-MPL-RabbitMQ. For the GPL, please see LICENSE-GPL2. For the ASL, -// please see LICENSE-APACHE2. -// -// This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, -// either express or implied. See the LICENSE file for specific language governing -// rights and limitations of this software. -// -// If you have any questions regarding licensing, please contact us at -// info@rabbitmq.com. - -/* - * Modifications Copyright 2015-2020 VMware, Inc. or its affiliates. and licenced as per - * the rest of the RabbitMQ Java client. - */ - -/* - * Written by Doug Lea with assistance from members of JCP JSR-166 - * Expert Group and released to the public domain, as explained at - * https://creativecommons.org/licenses/publicdomain - */ package org.dromara.dynamictp.spring; diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java b/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java index fabc6b4eb..09a302e82 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java @@ -14,31 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -// Copyright (c) 2007-2020 VMware, Inc. or its affiliates. All rights reserved. -// -// This software, the RabbitMQ Java client library, is triple-licensed under the -// Mozilla Public License 2.0 ("MPL"), the GNU General Public License version 2 -// ("GPL") and the Apache License version 2 ("ASL"). For the MPL, please see -// LICENSE-MPL-RabbitMQ. For the GPL, please see LICENSE-GPL2. For the ASL, -// please see LICENSE-APACHE2. -// -// This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, -// either express or implied. See the LICENSE file for specific language governing -// rights and limitations of this software. -// -// If you have any questions regarding licensing, please contact us at -// info@rabbitmq.com. - -/* - * Modifications Copyright 2015-2020 VMware, Inc. or its affiliates. and licenced as per - * the rest of the RabbitMQ Java client. - */ - -/* - * Written by Doug Lea with assistance from members of JCP JSR-166 - * Expert Group and released to the public domain, as explained at - * https://creativecommons.org/licenses/publicdomain - */ package org.dromara.dynamictp.spring; From 7beacd602e7f219a833a4913d748095fc040ff76 Mon Sep 17 00:00:00 2001 From: vzer <17338548613@163.com> Date: Tue, 30 Jul 2024 11:25:20 +0800 Subject: [PATCH 060/101] =?UTF-8?q?refactor=EF=BC=9A=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=B1=BB=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/dynamictp/common/event/BannerPrintEvent.java | 3 +++ .../dynamictp/common/manager/ContextManagerHelper.java | 7 +++++++ .../dromara/dynamictp/common/manager/EventBusManager.java | 7 +++++++ .../dynamictp/core/lifecycle/LifeCycleManagement.java | 2 +- .../dromara/dynamictp/spring/AbstractSpringRefresher.java | 6 ++++++ .../dynamictp/spring/DtpLifecycleSpringAdapter.java | 6 ++++++ .../org/dromara/dynamictp/spring/SpringContextHolder.java | 7 +++++++ 7 files changed, 37 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/BannerPrintEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/BannerPrintEvent.java index 71146e508..b25a86f43 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/BannerPrintEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/BannerPrintEvent.java @@ -21,6 +21,9 @@ /** * Event indicating that the banner should be printed. * This event is published by SpringContextHolder when the application context is set. + * + * @author vzer200 + * @since 1.1.8 */ public class BannerPrintEvent { // This class can be expanded with additional fields if needed diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java index f88c5c7a7..6db69e54d 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/ContextManagerHelper.java @@ -21,6 +21,13 @@ import java.util.Map; + +/** + * Helper class for accessing ContextManager and publishing events. + * + * @author vzer200 + * @since 1.1.8 + */ public class ContextManagerHelper { private static final ContextManager CONTEXT_MANAGER; diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java b/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java index f513993ca..5767fa178 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java @@ -24,6 +24,13 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; + +/** + * Manages event registration and posting using EventBus. + * + * @author vzer200 + * @since 1.1.8 + */ @Slf4j public class EventBusManager { diff --git a/core/src/main/java/org/dromara/dynamictp/core/lifecycle/LifeCycleManagement.java b/core/src/main/java/org/dromara/dynamictp/core/lifecycle/LifeCycleManagement.java index 168370097..bb0470ada 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/lifecycle/LifeCycleManagement.java +++ b/core/src/main/java/org/dromara/dynamictp/core/lifecycle/LifeCycleManagement.java @@ -23,7 +23,7 @@ * as well as handling auto startup and shutdown phases. * * @author vzer200 - * @since 1.0.0 + * @since 1.1.8 */ public interface LifeCycleManagement { diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java b/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java index c2359d760..1bac5cf52 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java @@ -23,6 +23,12 @@ import org.springframework.context.EnvironmentAware; import org.springframework.core.env.Environment; +/** + * Abstract class for refreshing properties in a Spring environment. + * + * @author vzer200 + * @since 1.1.8 + */ @Slf4j public abstract class AbstractSpringRefresher extends AbstractRefresher implements EnvironmentAware { diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/DtpLifecycleSpringAdapter.java b/spring/src/main/java/org/dromara/dynamictp/spring/DtpLifecycleSpringAdapter.java index 6e7dc8164..904828c17 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/DtpLifecycleSpringAdapter.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/DtpLifecycleSpringAdapter.java @@ -20,6 +20,12 @@ import org.dromara.dynamictp.core.lifecycle.LifeCycleManagement; import org.springframework.context.SmartLifecycle; +/** + * Adapts LifeCycleManagement to Spring's SmartLifecycle interface. + * + * @author vzer200 + * @since 1.1.8 + */ public class DtpLifecycleSpringAdapter implements SmartLifecycle { private final LifeCycleManagement lifeCycleManagement; private boolean isRunning = false; diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java b/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java index 09a302e82..fe1d62506 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java @@ -28,6 +28,13 @@ import java.util.Map; import java.util.Objects; + +/** + * Manages the Spring ApplicationContext and provides access to beans and environment properties. + * + * @author vzer200 + * @since 1.1.8 + */ public class SpringContextHolder implements ContextManager, ApplicationContextAware { private static ApplicationContext context; From e2727a9b01e0684ae65e9c0a4af6bb5f259a6990 Mon Sep 17 00:00:00 2001 From: vzer <17338548613@163.com> Date: Tue, 30 Jul 2024 11:27:06 +0800 Subject: [PATCH 061/101] =?UTF-8?q?refactor=EF=BC=9A=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logging/pom.xml | 6 ------ starter/starter-configcenter/starter-zookeeper/pom.xml | 2 -- 2 files changed, 8 deletions(-) diff --git a/logging/pom.xml b/logging/pom.xml index f2ac2b042..f14d078ef 100644 --- a/logging/pom.xml +++ b/logging/pom.xml @@ -45,11 +45,5 @@ log4j-slf4j-impl true - - - org.springframework.cloud - spring-cloud-context - true - diff --git a/starter/starter-configcenter/starter-zookeeper/pom.xml b/starter/starter-configcenter/starter-zookeeper/pom.xml index 895df1de4..0a9a92c17 100644 --- a/starter/starter-configcenter/starter-zookeeper/pom.xml +++ b/starter/starter-configcenter/starter-zookeeper/pom.xml @@ -30,8 +30,6 @@ org.dromara.dynamictp dynamic-tp-spring - 1.1.8-beta - compile \ No newline at end of file From e1532f34a43d1e0cbfad41ab72eed93336e599f3 Mon Sep 17 00:00:00 2001 From: vzer <17338548613@163.com> Date: Tue, 30 Jul 2024 11:37:39 +0800 Subject: [PATCH 062/101] =?UTF-8?q?refactor=EF=BC=9A=E6=8A=BD=E5=8F=96=20B?= =?UTF-8?q?eanCopierUtils=20=E5=B7=A5=E5=85=B7=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/util/BeanCopierUtils.java | 31 +++++++++++++++++++ .../collector/MicroMeterCollector.java | 11 ++----- .../core/support/ExecutorWrapper.java | 5 ++- 3 files changed, 36 insertions(+), 11 deletions(-) create mode 100644 common/src/main/java/org/dromara/dynamictp/common/util/BeanCopierUtils.java diff --git a/common/src/main/java/org/dromara/dynamictp/common/util/BeanCopierUtils.java b/common/src/main/java/org/dromara/dynamictp/common/util/BeanCopierUtils.java new file mode 100644 index 000000000..6de52f526 --- /dev/null +++ b/common/src/main/java/org/dromara/dynamictp/common/util/BeanCopierUtils.java @@ -0,0 +1,31 @@ +package org.dromara.dynamictp.common.util; + +import net.sf.cglib.beans.BeanCopier; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * BeanCopierUtils related + * + * @author vzer200 + * @since 1.1.8 + */ +public class BeanCopierUtils { + private static final Map BEAN_COPIER_CACHE = new ConcurrentHashMap<>(); + + public static BeanCopier getBeanCopier(Class sourceClass, Class targetClass) { + String key = generateKey(sourceClass, targetClass); + return BEAN_COPIER_CACHE.computeIfAbsent(key, k -> BeanCopier.create(sourceClass, targetClass, false)); + } + + private static String generateKey(Class sourceClass, Class targetClass) { + return sourceClass.getName() + ":" + targetClass.getName(); + } + + public static void copyProperties(Object source, Object target) { + BeanCopier copier = getBeanCopier(source.getClass(), target.getClass()); + copier.copy(source, target, null); + } + +} diff --git a/core/src/main/java/org/dromara/dynamictp/core/monitor/collector/MicroMeterCollector.java b/core/src/main/java/org/dromara/dynamictp/core/monitor/collector/MicroMeterCollector.java index 2a464798a..3834db177 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/monitor/collector/MicroMeterCollector.java +++ b/core/src/main/java/org/dromara/dynamictp/core/monitor/collector/MicroMeterCollector.java @@ -20,16 +20,12 @@ import io.micrometer.core.instrument.Metrics; import io.micrometer.core.instrument.Tag; import lombok.extern.slf4j.Slf4j; -import net.sf.cglib.beans.BeanCopier; import org.dromara.dynamictp.common.em.CollectorTypeEnum; import org.dromara.dynamictp.common.entity.ThreadPoolStats; +import org.dromara.dynamictp.common.util.BeanCopierUtils; import org.dromara.dynamictp.common.util.CommonUtil; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import java.util.concurrent.ConcurrentHashMap; /** @@ -61,8 +57,7 @@ public void collect(ThreadPoolStats threadPoolStats) { if (Objects.isNull(oldStats)) { GAUGE_CACHE.put(threadPoolStats.getPoolName(), threadPoolStats); } else { - BeanCopier copier = BeanCopier.create(ThreadPoolStats.class, ThreadPoolStats.class, false); - copier.copy(threadPoolStats, oldStats, null); + BeanCopierUtils.copyProperties(threadPoolStats, oldStats); } gauge(GAUGE_CACHE.get(threadPoolStats.getPoolName())); } diff --git a/core/src/main/java/org/dromara/dynamictp/core/support/ExecutorWrapper.java b/core/src/main/java/org/dromara/dynamictp/core/support/ExecutorWrapper.java index 48e77b2a5..a297d8eed 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/support/ExecutorWrapper.java +++ b/core/src/main/java/org/dromara/dynamictp/core/support/ExecutorWrapper.java @@ -18,9 +18,9 @@ package org.dromara.dynamictp.core.support; import lombok.Data; -import net.sf.cglib.beans.BeanCopier; import org.dromara.dynamictp.common.em.NotifyItemEnum; import org.dromara.dynamictp.common.entity.NotifyItem; +import org.dromara.dynamictp.common.util.BeanCopierUtils; import org.dromara.dynamictp.core.aware.AwareManager; import org.dromara.dynamictp.core.aware.TaskEnhanceAware; import org.dromara.dynamictp.core.executor.DtpExecutor; @@ -139,8 +139,7 @@ public static ExecutorWrapper of(DtpExecutor executor) { */ public ExecutorWrapper capture() { ExecutorWrapper executorWrapper = new ExecutorWrapper(); - BeanCopier copier = BeanCopier.create(ExecutorWrapper.class, ExecutorWrapper.class, false); - copier.copy(this, executorWrapper, null); + BeanCopierUtils.copyProperties(this, executorWrapper); executorWrapper.executor = new CapturedExecutor(this.getExecutor()); return executorWrapper; } From 20bd7d391110ef96110aa0f687b70462cd8927dd Mon Sep 17 00:00:00 2001 From: vzer <17338548613@163.com> Date: Wed, 31 Jul 2024 14:19:39 +0800 Subject: [PATCH 063/101] =?UTF-8?q?refactor=EF=BC=9A=E4=BC=98=E5=8C=96impo?= =?UTF-8?q?rt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dynamictp/common/util/BeanCopierUtils.java | 17 +++++++++++++++++ .../monitor/collector/MicroMeterCollector.java | 6 +++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/org/dromara/dynamictp/common/util/BeanCopierUtils.java b/common/src/main/java/org/dromara/dynamictp/common/util/BeanCopierUtils.java index 6de52f526..db8764c3c 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/util/BeanCopierUtils.java +++ b/common/src/main/java/org/dromara/dynamictp/common/util/BeanCopierUtils.java @@ -1,3 +1,20 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 org.dromara.dynamictp.common.util; import net.sf.cglib.beans.BeanCopier; diff --git a/core/src/main/java/org/dromara/dynamictp/core/monitor/collector/MicroMeterCollector.java b/core/src/main/java/org/dromara/dynamictp/core/monitor/collector/MicroMeterCollector.java index 3834db177..ff463a2e5 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/monitor/collector/MicroMeterCollector.java +++ b/core/src/main/java/org/dromara/dynamictp/core/monitor/collector/MicroMeterCollector.java @@ -25,7 +25,11 @@ import org.dromara.dynamictp.common.util.BeanCopierUtils; import org.dromara.dynamictp.common.util.CommonUtil; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; /** From 23948b6b11d2e71f9de1b2957efc626de4b8a28f Mon Sep 17 00:00:00 2001 From: vzer <17338548613@163.com> Date: Wed, 31 Jul 2024 14:20:43 +0800 Subject: [PATCH 064/101] =?UTF-8?q?refactor=EF=BC=9A=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../spring/DtpApplicationListener.java | 43 +++++++++++++++++++ .../spring/DtpBaseBeanConfiguration.java | 5 +++ .../OnceApplicationContextEventListener.java | 5 +-- .../dynamictp/spring/SpringContextHolder.java | 4 +- 4 files changed, 50 insertions(+), 7 deletions(-) create mode 100644 spring/src/main/java/org/dromara/dynamictp/spring/DtpApplicationListener.java diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/DtpApplicationListener.java b/spring/src/main/java/org/dromara/dynamictp/spring/DtpApplicationListener.java new file mode 100644 index 000000000..3de22b953 --- /dev/null +++ b/spring/src/main/java/org/dromara/dynamictp/spring/DtpApplicationListener.java @@ -0,0 +1,43 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 org.dromara.dynamictp.spring; + +import lombok.extern.slf4j.Slf4j; +import org.dromara.dynamictp.common.event.BannerPrintEvent; +import org.dromara.dynamictp.common.manager.EventBusManager; +import org.springframework.context.event.ContextRefreshedEvent; + +import java.util.EventObject; + +/** + * DtpApplicationListener related + * + * @author vzer200 + * @since 1.1.8 + **/ +@Slf4j +public class DtpApplicationListener extends OnceApplicationContextEventListener { + + @Override + protected void onContextRefreshedEvent(ContextRefreshedEvent event) { + EventObject refreshedEvent = new EventObject(this); + EventBusManager.post(refreshedEvent); + EventBusManager.post(new BannerPrintEvent()); + } +} + diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/DtpBaseBeanConfiguration.java b/spring/src/main/java/org/dromara/dynamictp/spring/DtpBaseBeanConfiguration.java index 9b918d642..728bf6a13 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/DtpBaseBeanConfiguration.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/DtpBaseBeanConfiguration.java @@ -68,4 +68,9 @@ public DtpBannerPrinter dtpBannerPrinter() { public DtpLifecycleSpringAdapter dtpLifecycleSpringAdapter(LifeCycleManagement lifeCycleManagement) { return new DtpLifecycleSpringAdapter(lifeCycleManagement); } + + @Bean + public DtpApplicationListener dtpApplicationListener() { + return new DtpApplicationListener(); + } } diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/OnceApplicationContextEventListener.java b/spring/src/main/java/org/dromara/dynamictp/spring/OnceApplicationContextEventListener.java index 6aca2b55a..78d36e3e3 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/OnceApplicationContextEventListener.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/OnceApplicationContextEventListener.java @@ -18,7 +18,6 @@ package org.dromara.dynamictp.spring; import lombok.extern.slf4j.Slf4j; -import org.dromara.dynamictp.common.manager.EventBusManager; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.context.ApplicationEvent; @@ -29,7 +28,6 @@ import org.springframework.context.event.ContextStartedEvent; import org.springframework.context.event.ContextStoppedEvent; -import java.util.EventObject; import java.util.Objects; /** @@ -61,8 +59,7 @@ public void onApplicationEvent(ApplicationEvent event) { } protected void onContextRefreshedEvent(ContextRefreshedEvent event) { - EventObject refreshedEvent = new EventObject(this); - EventBusManager.post(refreshedEvent); + // Override to handle ContextStartedEvent } protected void onContextStartedEvent(ContextStartedEvent event) { diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java b/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java index fe1d62506..d361b7c64 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/SpringContextHolder.java @@ -18,13 +18,12 @@ package org.dromara.dynamictp.spring; -import org.dromara.dynamictp.common.event.BannerPrintEvent; import org.dromara.dynamictp.common.manager.ContextManager; -import org.dromara.dynamictp.common.manager.ContextManagerHelper; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.core.env.Environment; + import java.util.Map; import java.util.Objects; @@ -42,7 +41,6 @@ public class SpringContextHolder implements ContextManager, ApplicationContextAw @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { context = applicationContext; - ContextManagerHelper.publishEvent(new BannerPrintEvent()); // 发布 BannerPrintEvent 事件 } @Override From 66fe07884201cc76f53a3ffbbe274f3dfbef5d0e Mon Sep 17 00:00:00 2001 From: vzer <17338548613@163.com> Date: Mon, 5 Aug 2024 14:32:36 +0800 Subject: [PATCH 065/101] =?UTF-8?q?refactor=EF=BC=9A=E6=9B=BF=E6=8D=A2Spri?= =?UTF-8?q?ng=20ReflectionUtils?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dynamictp/adapter/rocketmq/RocketMqDtpAdapter.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/adapter/adapter-rocketmq/src/main/java/org/dromara/dynamictp/adapter/rocketmq/RocketMqDtpAdapter.java b/adapter/adapter-rocketmq/src/main/java/org/dromara/dynamictp/adapter/rocketmq/RocketMqDtpAdapter.java index b8d6c34ca..4cae4cb3b 100644 --- a/adapter/adapter-rocketmq/src/main/java/org/dromara/dynamictp/adapter/rocketmq/RocketMqDtpAdapter.java +++ b/adapter/adapter-rocketmq/src/main/java/org/dromara/dynamictp/adapter/rocketmq/RocketMqDtpAdapter.java @@ -31,7 +31,6 @@ import org.dromara.dynamictp.common.util.ReflectionUtil; import org.dromara.dynamictp.core.support.ThreadPoolExecutorProxy; import org.dromara.dynamictp.jvmti.JVMTI; -import org.springframework.util.ReflectionUtils; import java.util.Objects; import java.util.concurrent.ThreadPoolExecutor; @@ -48,7 +47,6 @@ public class RocketMqDtpAdapter extends AbstractDtpAdapter { private static final String TP_PREFIX = "rocketMqTp"; - private static final String CONSUME_EXECUTOR_FIELD = "consumeExecutor"; @Override @@ -69,7 +67,6 @@ protected void initialize() { } public void adaptConsumerExecutors() { - val beans = JVMTI.getInstances(DefaultMQPushConsumer.class); if (CollectionUtils.isEmpty(beans)) { log.warn("Cannot find beans of type DefaultMQPushConsumer."); @@ -82,7 +79,8 @@ public void adaptConsumerExecutors() { continue; } val consumeMessageService = pushConsumer.getConsumeMessageService(); - ThreadPoolExecutor executor = (ThreadPoolExecutor) ReflectionUtil.getFieldValue(CONSUME_EXECUTOR_FIELD, consumeMessageService); + ThreadPoolExecutor executor = (ThreadPoolExecutor) ReflectionUtil.getFieldValue(consumeMessageService.getClass(), + CONSUME_EXECUTOR_FIELD, consumeMessageService); if (Objects.nonNull(executor)) { String tpName = consumer.getConsumerGroup(); if (consumeMessageService instanceof ConsumeMessageConcurrentlyService) { @@ -96,14 +94,14 @@ public void adaptConsumerExecutors() { } public void adaptProducerExecutors() { - val beans = JVMTI.getInstances(DefaultMQProducer.class); if (CollectionUtils.isEmpty(beans)) { log.warn("Cannot find beans of type DefaultMQProducer."); return; } for (DefaultMQProducer defaultMQProducer : beans) { - if (Objects.isNull(ReflectionUtils.findMethod(DefaultMQProducerImpl.class, "getAsyncSenderExecutor"))) { + val method = ReflectionUtil.getField(DefaultMQProducerImpl.class, "getAsyncSenderExecutor"); + if (Objects.isNull(method)) { continue; } val producer = (DefaultMQProducerImpl) ReflectionUtil.getFieldValue(DefaultMQProducer.class, From d1ba7cc91e5d82e005a0998adb9161d9de2190b6 Mon Sep 17 00:00:00 2001 From: vzer <17338548613@163.com> Date: Mon, 5 Aug 2024 14:40:51 +0800 Subject: [PATCH 066/101] =?UTF-8?q?refactor=EF=BC=9A=E6=9B=BF=E6=8D=A2Spri?= =?UTF-8?q?ng=20CollectionUtils=E4=B8=BAApache=20Commons=20Collections?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dynamictp/adapter/common/DtpAdapterListener.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java index 47876e7ed..61f2d2af2 100644 --- a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java +++ b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java @@ -27,7 +27,7 @@ import org.dromara.dynamictp.core.notifier.manager.AlarmManager; import lombok.extern.slf4j.Slf4j; import lombok.val; -import org.springframework.util.CollectionUtils; +import org.apache.commons.collections4.MapUtils; import java.util.EventObject; @@ -66,7 +66,7 @@ public void handleRefreshedEvent(EventObject event) { */ protected void doCollect(DtpProperties dtpProperties) { val handlerMap = ContextManagerHelper.getBeansOfType(DtpAdapter.class); - if (CollectionUtils.isEmpty(handlerMap)) { + if (MapUtils.isEmpty(handlerMap)) { return; } handlerMap.forEach((k, v) -> v.getMultiPoolStats().forEach(ps -> @@ -79,7 +79,7 @@ protected void doCollect(DtpProperties dtpProperties) { */ protected void doRefresh(DtpProperties dtpProperties) { val handlerMap = ContextManagerHelper.getBeansOfType(DtpAdapter.class); - if (CollectionUtils.isEmpty(handlerMap)) { + if (MapUtils.isEmpty(handlerMap)) { return; } handlerMap.forEach((k, v) -> v.refresh(dtpProperties)); @@ -91,7 +91,7 @@ protected void doRefresh(DtpProperties dtpProperties) { */ protected void doAlarmCheck(DtpProperties dtpProperties) { val handlerMap = ContextManagerHelper.getBeansOfType(DtpAdapter.class); - if (CollectionUtils.isEmpty(handlerMap)) { + if (MapUtils.isEmpty(handlerMap)) { return; } handlerMap.forEach((k, v) -> { @@ -99,4 +99,4 @@ protected void doAlarmCheck(DtpProperties dtpProperties) { executorWrapper.forEach((kk, vv) -> AlarmManager.tryAlarmAsync(vv, SCHEDULE_NOTIFY_ITEMS)); }); } -} +} \ No newline at end of file From 23a520187442a6be7999ab756ecf63021e91d27a Mon Sep 17 00:00:00 2001 From: vzer <17338548613@163.com> Date: Mon, 5 Aug 2024 16:01:30 +0800 Subject: [PATCH 067/101] =?UTF-8?q?refactor=EF=BC=9ACheckstyle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/dynamictp/adapter/common/DtpAdapterListener.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java index 61f2d2af2..e4e89cb75 100644 --- a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java +++ b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java @@ -99,4 +99,4 @@ protected void doAlarmCheck(DtpProperties dtpProperties) { executorWrapper.forEach((kk, vv) -> AlarmManager.tryAlarmAsync(vv, SCHEDULE_NOTIFY_ITEMS)); }); } -} \ No newline at end of file +} From afb86b71690bb54571a9bcfc4e5b30d01dcd2b87 Mon Sep 17 00:00:00 2001 From: vzer <17338548613@163.com> Date: Wed, 7 Aug 2024 00:53:39 +0800 Subject: [PATCH 068/101] =?UTF-8?q?refactor=EF=BC=9A=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E4=BA=8B=E4=BB=B6=E7=B1=BB=E6=9B=BF?= =?UTF-8?q?=E6=8D=A2EventObject?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/common/DtpAdapterListener.java | 4 +-- .../common/event/AlarmCheckEvent.java | 4 +-- .../dynamictp/common/event/CollectEvent.java | 4 +-- .../event/CustomContextRefreshedEvent.java | 33 +++++++++++++++++++ .../dynamictp/common/event/RefreshEvent.java | 3 +- .../dromara/dynamictp/core/DtpRegistry.java | 4 +-- .../dynamictp/core/monitor/DtpMonitor.java | 4 +-- .../spring/DtpApplicationListener.java | 4 +-- 8 files changed, 46 insertions(+), 14 deletions(-) create mode 100644 common/src/main/java/org/dromara/dynamictp/common/event/CustomContextRefreshedEvent.java diff --git a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java index e4e89cb75..7b8b46a6a 100644 --- a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java +++ b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java @@ -20,6 +20,7 @@ import com.google.common.eventbus.Subscribe; import org.dromara.dynamictp.common.event.AlarmCheckEvent; import org.dromara.dynamictp.common.event.CollectEvent; +import org.dromara.dynamictp.common.event.CustomContextRefreshedEvent; import org.dromara.dynamictp.common.event.RefreshEvent; import org.dromara.dynamictp.common.manager.ContextManagerHelper; import org.dromara.dynamictp.common.properties.DtpProperties; @@ -29,7 +30,6 @@ import lombok.val; import org.apache.commons.collections4.MapUtils; -import java.util.EventObject; import static org.dromara.dynamictp.common.constant.DynamicTpConst.SCHEDULE_NOTIFY_ITEMS; @@ -43,7 +43,7 @@ public class DtpAdapterListener { @Subscribe - public void handleRefreshedEvent(EventObject event) { + public void handleRefreshedEvent(CustomContextRefreshedEvent event) { try { if (event instanceof RefreshEvent) { RefreshEvent refreshEvent = (RefreshEvent) event; diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java index d2cdda98b..b10e7c31a 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java @@ -19,7 +19,7 @@ import org.dromara.dynamictp.common.properties.DtpProperties; -import java.util.EventObject; + /** * AlarmCheckEvent related @@ -27,7 +27,7 @@ * @author yanhom * @since 1.0.0 */ -public class AlarmCheckEvent extends EventObject { +public class AlarmCheckEvent extends CustomContextRefreshedEvent { private final transient DtpProperties dtpProperties; diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java index d9fd63878..7a5d5671b 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.common.event; import org.dromara.dynamictp.common.properties.DtpProperties; -import java.util.EventObject; + /** @@ -27,7 +27,7 @@ * @author yanhom * @since 1.0.0 */ -public class CollectEvent extends EventObject { +public class CollectEvent extends CustomContextRefreshedEvent { private final transient DtpProperties dtpProperties; diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/CustomContextRefreshedEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/CustomContextRefreshedEvent.java new file mode 100644 index 000000000..2dde4902d --- /dev/null +++ b/common/src/main/java/org/dromara/dynamictp/common/event/CustomContextRefreshedEvent.java @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 org.dromara.dynamictp.common.event; + + +import java.util.EventObject; + +/** + * EventObject related + * + * @author vzer200 + * @since 1.1.8 + */ +public class CustomContextRefreshedEvent extends EventObject { + public CustomContextRefreshedEvent(Object source) { + super(source); + } +} diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java index 2794b1858..ff5bd0818 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java @@ -19,7 +19,6 @@ import org.dromara.dynamictp.common.properties.DtpProperties; -import java.util.EventObject; /** * RefreshEvent related @@ -27,7 +26,7 @@ * @author yanhom * @since 1.0.0 */ -public class RefreshEvent extends EventObject { +public class RefreshEvent extends CustomContextRefreshedEvent { private final transient DtpProperties dtpProperties; diff --git a/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java b/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java index f08f05c5e..b9e4ac747 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java +++ b/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java @@ -28,6 +28,7 @@ import org.apache.commons.lang3.StringUtils; import org.dromara.dynamictp.common.entity.DtpExecutorProps; import org.dromara.dynamictp.common.entity.TpMainFields; +import org.dromara.dynamictp.common.event.CustomContextRefreshedEvent; import org.dromara.dynamictp.common.ex.DtpException; import org.dromara.dynamictp.common.manager.EventBusManager; import org.dromara.dynamictp.common.properties.DtpProperties; @@ -47,7 +48,6 @@ import java.util.Collections; -import java.util.EventObject; import java.util.List; import java.util.Map; import java.util.Objects; @@ -337,7 +337,7 @@ private static void updateQueueProps(ExecutorAdapter executor, DtpExecutorPro } @Subscribe - public void onContextRefreshedEvent(EventObject event) { + public void onContextRefreshedEvent(CustomContextRefreshedEvent event) { Set remoteExecutors = Collections.emptySet(); if (CollectionUtils.isNotEmpty(dtpProperties.getExecutors())) { remoteExecutors = dtpProperties.getExecutors().stream() diff --git a/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java b/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java index 0835ccab2..fb894b0ee 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java +++ b/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java @@ -23,6 +23,7 @@ import org.dromara.dynamictp.common.entity.ThreadPoolStats; import org.dromara.dynamictp.common.event.AlarmCheckEvent; import org.dromara.dynamictp.common.event.CollectEvent; +import org.dromara.dynamictp.common.event.CustomContextRefreshedEvent; import org.dromara.dynamictp.common.manager.EventBusManager; import org.dromara.dynamictp.common.properties.DtpProperties; @@ -35,7 +36,6 @@ import org.dromara.dynamictp.core.support.ThreadPoolCreator; -import java.util.EventObject; import java.util.Set; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; @@ -67,7 +67,7 @@ public DtpMonitor(DtpProperties dtpProperties) { } @Subscribe - public synchronized void onContextRefreshedEvent(EventObject event) { + public synchronized void onContextRefreshedEvent(CustomContextRefreshedEvent event) { // if monitorInterval is same as before, do nothing. if (monitorInterval == dtpProperties.getMonitorInterval()) { return; diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/DtpApplicationListener.java b/spring/src/main/java/org/dromara/dynamictp/spring/DtpApplicationListener.java index 3de22b953..431577bb7 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/DtpApplicationListener.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/DtpApplicationListener.java @@ -19,10 +19,10 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.common.event.BannerPrintEvent; +import org.dromara.dynamictp.common.event.CustomContextRefreshedEvent; import org.dromara.dynamictp.common.manager.EventBusManager; import org.springframework.context.event.ContextRefreshedEvent; -import java.util.EventObject; /** * DtpApplicationListener related @@ -35,7 +35,7 @@ public class DtpApplicationListener extends OnceApplicationContextEventListener @Override protected void onContextRefreshedEvent(ContextRefreshedEvent event) { - EventObject refreshedEvent = new EventObject(this); + CustomContextRefreshedEvent refreshedEvent = new CustomContextRefreshedEvent(this); EventBusManager.post(refreshedEvent); EventBusManager.post(new BannerPrintEvent()); } From 81cef4cdb53717ce6eb32d0f5f80bcb66f927b67 Mon Sep 17 00:00:00 2001 From: vzer <17338548613@163.com> Date: Wed, 7 Aug 2024 11:47:34 +0800 Subject: [PATCH 069/101] =?UTF-8?q?refactor=EF=BC=9A=E4=BC=98=E5=8C=96Bann?= =?UTF-8?q?erPrint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/event/BannerPrintEvent.java | 32 ------------------- .../dynamictp/common/event/RefreshEvent.java | 1 + .../core/support/DtpBannerPrinter.java | 4 +-- .../spring/DtpApplicationListener.java | 3 -- 4 files changed, 3 insertions(+), 37 deletions(-) delete mode 100644 common/src/main/java/org/dromara/dynamictp/common/event/BannerPrintEvent.java diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/BannerPrintEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/BannerPrintEvent.java deleted file mode 100644 index b25a86f43..000000000 --- a/common/src/main/java/org/dromara/dynamictp/common/event/BannerPrintEvent.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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 org.dromara.dynamictp.common.event; - - -/** - * Event indicating that the banner should be printed. - * This event is published by SpringContextHolder when the application context is set. - * - * @author vzer200 - * @since 1.1.8 - */ -public class BannerPrintEvent { - // This class can be expanded with additional fields if needed -} - - diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java index ff5bd0818..fe02dd086 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java @@ -20,6 +20,7 @@ import org.dromara.dynamictp.common.properties.DtpProperties; + /** * RefreshEvent related * diff --git a/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java b/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java index 58ff18f9a..705509797 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java +++ b/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java @@ -19,7 +19,7 @@ import com.google.common.eventbus.Subscribe; import org.dromara.dynamictp.common.constant.DynamicTpConst; -import org.dromara.dynamictp.common.event.BannerPrintEvent; +import org.dromara.dynamictp.common.event.CustomContextRefreshedEvent; import org.dromara.dynamictp.common.manager.ContextManagerHelper; import org.dromara.dynamictp.common.manager.EventBusManager; import org.dromara.dynamictp.common.util.VersionUtil; @@ -50,7 +50,7 @@ public DtpBannerPrinter() { } @Subscribe - public void onBannerPrintEvent(BannerPrintEvent event) { + public void onBannerPrintEvent(CustomContextRefreshedEvent event) { printBanner(); } diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/DtpApplicationListener.java b/spring/src/main/java/org/dromara/dynamictp/spring/DtpApplicationListener.java index 431577bb7..a8f92d9a8 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/DtpApplicationListener.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/DtpApplicationListener.java @@ -18,12 +18,10 @@ package org.dromara.dynamictp.spring; import lombok.extern.slf4j.Slf4j; -import org.dromara.dynamictp.common.event.BannerPrintEvent; import org.dromara.dynamictp.common.event.CustomContextRefreshedEvent; import org.dromara.dynamictp.common.manager.EventBusManager; import org.springframework.context.event.ContextRefreshedEvent; - /** * DtpApplicationListener related * @@ -37,7 +35,6 @@ public class DtpApplicationListener extends OnceApplicationContextEventListener protected void onContextRefreshedEvent(ContextRefreshedEvent event) { CustomContextRefreshedEvent refreshedEvent = new CustomContextRefreshedEvent(this); EventBusManager.post(refreshedEvent); - EventBusManager.post(new BannerPrintEvent()); } } From 334d4ebee9b80b163c6fa1167ec3753c1b911f87 Mon Sep 17 00:00:00 2001 From: vzer <17338548613@163.com> Date: Wed, 7 Aug 2024 11:48:04 +0800 Subject: [PATCH 070/101] =?UTF-8?q?refactor=EF=BC=9A=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E4=BA=8B=E4=BB=B6=E7=B1=BB=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/common/DtpAdapterListener.java | 5 +-- .../common/event/AlarmCheckEvent.java | 3 +- .../dynamictp/common/event/CollectEvent.java | 3 +- .../OnceApplicationContextEventListener.java | 35 +++++++++++++++---- 4 files changed, 36 insertions(+), 10 deletions(-) diff --git a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java index 7b8b46a6a..a155ca0c7 100644 --- a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java +++ b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java @@ -20,7 +20,6 @@ import com.google.common.eventbus.Subscribe; import org.dromara.dynamictp.common.event.AlarmCheckEvent; import org.dromara.dynamictp.common.event.CollectEvent; -import org.dromara.dynamictp.common.event.CustomContextRefreshedEvent; import org.dromara.dynamictp.common.event.RefreshEvent; import org.dromara.dynamictp.common.manager.ContextManagerHelper; import org.dromara.dynamictp.common.properties.DtpProperties; @@ -31,6 +30,8 @@ import org.apache.commons.collections4.MapUtils; +import java.util.EventObject; + import static org.dromara.dynamictp.common.constant.DynamicTpConst.SCHEDULE_NOTIFY_ITEMS; /** @@ -43,7 +44,7 @@ public class DtpAdapterListener { @Subscribe - public void handleRefreshedEvent(CustomContextRefreshedEvent event) { + public void handleRefreshedEvent(EventObject event) { try { if (event instanceof RefreshEvent) { RefreshEvent refreshEvent = (RefreshEvent) event; diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java index b10e7c31a..7eafdee98 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java @@ -19,6 +19,7 @@ import org.dromara.dynamictp.common.properties.DtpProperties; +import java.util.EventObject; /** @@ -27,7 +28,7 @@ * @author yanhom * @since 1.0.0 */ -public class AlarmCheckEvent extends CustomContextRefreshedEvent { +public class AlarmCheckEvent extends EventObject { private final transient DtpProperties dtpProperties; diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java index 7a5d5671b..e722ce10c 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java @@ -19,6 +19,7 @@ import org.dromara.dynamictp.common.properties.DtpProperties; +import java.util.EventObject; /** @@ -27,7 +28,7 @@ * @author yanhom * @since 1.0.0 */ -public class CollectEvent extends CustomContextRefreshedEvent { +public class CollectEvent extends EventObject { private final transient DtpProperties dtpProperties; diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/OnceApplicationContextEventListener.java b/spring/src/main/java/org/dromara/dynamictp/spring/OnceApplicationContextEventListener.java index 78d36e3e3..ee0323a0b 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/OnceApplicationContextEventListener.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/OnceApplicationContextEventListener.java @@ -28,7 +28,8 @@ import org.springframework.context.event.ContextStartedEvent; import org.springframework.context.event.ContextStoppedEvent; -import java.util.Objects; + +import static org.springframework.util.ObjectUtils.nullSafeEquals; /** * The abstract class {@link ApplicationListener} for {@link ApplicationEvent} guarantees just one-time execution @@ -58,24 +59,45 @@ public void onApplicationEvent(ApplicationEvent event) { } } + /** + * The subclass overrides this method to handle {@link ContextRefreshedEvent} + * + * @param event {@link ContextRefreshedEvent} + */ protected void onContextRefreshedEvent(ContextRefreshedEvent event) { - // Override to handle ContextStartedEvent } + /** + * The subclass overrides this method to handle {@link ContextStartedEvent} + * + * @param event {@link ContextStartedEvent} + */ protected void onContextStartedEvent(ContextStartedEvent event) { - // Override to handle ContextStartedEvent } + /** + * The subclass overrides this method to handle {@link ContextStoppedEvent} + * + * @param event {@link ContextStoppedEvent} + */ protected void onContextStoppedEvent(ContextStoppedEvent event) { - // Override to handle ContextStoppedEvent } + /** + * The subclass overrides this method to handle {@link ContextClosedEvent} + * + * @param event {@link ContextClosedEvent} + */ protected void onContextClosedEvent(ContextClosedEvent event) { - // Override to handle ContextClosedEvent } + /** + * Is original {@link ApplicationContext} as the event source + * @param event {@link ApplicationEvent} + * @return if original, return true, or false + */ private boolean isOriginalEventSource(ApplicationEvent event) { - return Objects.equals(SpringContextHolder.getInstance(), event.getSource()); + return nullSafeEquals(this.applicationContext, event.getSource()); } @Override @@ -83,3 +105,4 @@ public final void setApplicationContext(ApplicationContext applicationContext) { this.applicationContext = applicationContext; } } + From 8a569ea594d7d9c11166e474125e4a3a1091cecc Mon Sep 17 00:00:00 2001 From: vzer <17338548613@163.com> Date: Wed, 7 Aug 2024 12:25:06 +0800 Subject: [PATCH 071/101] =?UTF-8?q?refactor=EF=BC=9A=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E4=BA=8B=E4=BB=B6=E7=B1=BB,?= =?UTF-8?q?=E9=81=BF=E5=85=8D=E9=87=8D=E5=A4=8D=E6=B3=A8=E5=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dynamictp/core/support/DtpBannerPrinter.java | 15 ++++++++++++++- .../spring/DtpBaseBeanConfiguration.java | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java b/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java index 705509797..6292f5bf1 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java +++ b/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java @@ -45,10 +45,23 @@ public class DtpBannerPrinter { " __/ | | | \n" + " |___/ |_| "; - public DtpBannerPrinter() { + private static volatile DtpBannerPrinter instance; + + private DtpBannerPrinter() { + log.info("Registering DtpBannerPrinter - instance: {}", this); EventBusManager.register(this); } + public static DtpBannerPrinter getInstance() { + if (instance == null) { + synchronized (DtpBannerPrinter.class) { + if (instance == null) { + instance = new DtpBannerPrinter(); + } + } + } + return instance; + } @Subscribe public void onBannerPrintEvent(CustomContextRefreshedEvent event) { printBanner(); diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/DtpBaseBeanConfiguration.java b/spring/src/main/java/org/dromara/dynamictp/spring/DtpBaseBeanConfiguration.java index 728bf6a13..0ff02ad7b 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/DtpBaseBeanConfiguration.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/DtpBaseBeanConfiguration.java @@ -61,7 +61,7 @@ public DtpMonitor dtpMonitor(DtpProperties dtpProperties) { @Bean public DtpBannerPrinter dtpBannerPrinter() { - return new DtpBannerPrinter(); + return DtpBannerPrinter.getInstance(); } @Bean From f174019f4470b4383bb42a950bab539b7f55272b Mon Sep 17 00:00:00 2001 From: vzer <17338548613@163.com> Date: Thu, 8 Aug 2024 11:51:27 +0800 Subject: [PATCH 072/101] =?UTF-8?q?refactor=EF=BC=9A=E4=BF=AE=E6=94=B9Spri?= =?UTF-8?q?ng=E4=BA=8B=E4=BB=B6=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/common/AbstractDtpAdapter.java | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java index 81ac47a79..34ced834a 100644 --- a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java +++ b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java @@ -22,6 +22,7 @@ import com.github.dadiyang.equator.GetterBaseEquator; import com.google.common.collect.Lists; import com.google.common.collect.Maps; +import com.google.common.eventbus.Subscribe; import lombok.extern.slf4j.Slf4j; import lombok.val; import org.apache.commons.collections4.CollectionUtils; @@ -31,7 +32,9 @@ import org.dromara.dynamictp.common.entity.ThreadPoolStats; import org.dromara.dynamictp.common.entity.TpExecutorProps; import org.dromara.dynamictp.common.entity.TpMainFields; +import org.dromara.dynamictp.common.event.CustomContextRefreshedEvent; import org.dromara.dynamictp.common.manager.ContextManagerHelper; +import org.dromara.dynamictp.common.manager.EventBusManager; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.common.util.ReflectionUtil; import org.dromara.dynamictp.common.util.StreamUtil; @@ -44,7 +47,7 @@ import org.dromara.dynamictp.core.support.task.wrapper.TaskWrapper; import org.dromara.dynamictp.core.support.task.wrapper.TaskWrappers; import org.dromara.dynamictp.spring.OnceApplicationContextEventListener; -import org.springframework.context.event.ContextRefreshedEvent; + import java.util.Collections; import java.util.List; @@ -58,7 +61,6 @@ import static org.dromara.dynamictp.common.constant.DynamicTpConst.PROPERTIES_CHANGE_SHOW_STYLE; import static org.dromara.dynamictp.core.notifier.manager.NotifyHelper.updateNotifyInfo; import static org.dromara.dynamictp.core.support.DtpLifecycleSupport.shutdownGracefulAsync; - /** * AbstractDtpAdapter related * @@ -70,11 +72,17 @@ public abstract class AbstractDtpAdapter extends OnceApplicationContextEventListener implements DtpAdapter { private static final Equator EQUATOR = new GetterBaseEquator(); + private static AbstractDtpAdapter instance; protected final Map executors = Maps.newHashMap(); - @Override - protected void onContextRefreshedEvent(ContextRefreshedEvent event) { + public AbstractDtpAdapter() { + instance = this; + EventBusManager.register(this); + } + + @Subscribe + public synchronized void onContextRefreshedEvent(CustomContextRefreshedEvent event) { try { DtpProperties dtpProperties = ContextManagerHelper.getBean(DtpProperties.class); initialize(); @@ -215,4 +223,9 @@ private void doRefreshPoolSize(ExecutorAdapter executor, TpExecutorProps prop executor.setMaximumPoolSize(props.getMaximumPoolSize()); } } + + public static void destroy() { + EventBusManager.unregister(instance); + } } + From 99ec5d12ebabe2bc770669502613792bfc0538b3 Mon Sep 17 00:00:00 2001 From: vzer <17338548613@163.com> Date: Thu, 8 Aug 2024 12:07:18 +0800 Subject: [PATCH 073/101] =?UTF-8?q?refactor=EF=BC=9A=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/dubbo/alibaba/AlibabaDubboDtpAdapter.java | 5 +++-- .../adapter/dubbo/apache/ApacheDubboDtpAdapter.java | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/alibaba/AlibabaDubboDtpAdapter.java b/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/alibaba/AlibabaDubboDtpAdapter.java index d245b88b7..a0c34b9f5 100644 --- a/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/alibaba/AlibabaDubboDtpAdapter.java +++ b/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/alibaba/AlibabaDubboDtpAdapter.java @@ -60,8 +60,9 @@ public void afterPropertiesSet() throws Exception { try { Thread.sleep(1000); DtpProperties dtpProperties = ContextManagerHelper.getBean(DtpProperties.class); - this.initialize(); - this.refresh(dtpProperties); + initialize(); + afterInitialize(); + refresh(dtpProperties); } catch (Throwable e) { } } }); diff --git a/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/apache/ApacheDubboDtpAdapter.java b/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/apache/ApacheDubboDtpAdapter.java index 65525a42e..c5a7c4793 100644 --- a/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/apache/ApacheDubboDtpAdapter.java +++ b/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/apache/ApacheDubboDtpAdapter.java @@ -71,6 +71,7 @@ public void onApplicationEvent(ApplicationEvent event) { try { DtpProperties dtpProperties = ContextManagerHelper.getBean(DtpProperties.class); initialize(); + afterInitialize(); refresh(dtpProperties); } catch (Exception e) { log.error("DynamicTp adapter, {} init failed.", getTpPrefix(), e); From 9e43ad4da8556a9e740d7d98f5bd4053f573f7af Mon Sep 17 00:00:00 2001 From: vzer <17338548613@163.com> Date: Thu, 8 Aug 2024 12:11:16 +0800 Subject: [PATCH 074/101] =?UTF-8?q?refactor:=E8=A7=A3=E5=86=B3=E5=86=B2?= =?UTF-8?q?=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/dubbo/alibaba/AlibabaDubboDtpAdapter.java | 5 +++-- .../adapter/dubbo/apache/ApacheDubboDtpAdapter.java | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/alibaba/AlibabaDubboDtpAdapter.java b/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/alibaba/AlibabaDubboDtpAdapter.java index d245b88b7..a0c34b9f5 100644 --- a/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/alibaba/AlibabaDubboDtpAdapter.java +++ b/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/alibaba/AlibabaDubboDtpAdapter.java @@ -60,8 +60,9 @@ public void afterPropertiesSet() throws Exception { try { Thread.sleep(1000); DtpProperties dtpProperties = ContextManagerHelper.getBean(DtpProperties.class); - this.initialize(); - this.refresh(dtpProperties); + initialize(); + afterInitialize(); + refresh(dtpProperties); } catch (Throwable e) { } } }); diff --git a/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/apache/ApacheDubboDtpAdapter.java b/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/apache/ApacheDubboDtpAdapter.java index 65525a42e..c5a7c4793 100644 --- a/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/apache/ApacheDubboDtpAdapter.java +++ b/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/apache/ApacheDubboDtpAdapter.java @@ -71,6 +71,7 @@ public void onApplicationEvent(ApplicationEvent event) { try { DtpProperties dtpProperties = ContextManagerHelper.getBean(DtpProperties.class); initialize(); + afterInitialize(); refresh(dtpProperties); } catch (Exception e) { log.error("DynamicTp adapter, {} init failed.", getTpPrefix(), e); From 668a512e0ddeff97fb97bed1f594adc54199d161 Mon Sep 17 00:00:00 2001 From: vzer <17338548613@163.com> Date: Wed, 14 Aug 2024 11:35:13 +0800 Subject: [PATCH 075/101] =?UTF-8?q?refactor=EF=BC=9ACheckstyle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adapter/adapter-common/pom.xml | 8 ++++++++ .../dynamictp/adapter/common/AbstractDtpAdapter.java | 3 +-- .../dynamictp/adapter/common/DtpAdapterListener.java | 2 -- adapter/pom.xml | 5 ----- .../common/event/CustomContextRefreshedEvent.java | 1 - 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/adapter/adapter-common/pom.xml b/adapter/adapter-common/pom.xml index befb17810..cd669b5ae 100644 --- a/adapter/adapter-common/pom.xml +++ b/adapter/adapter-common/pom.xml @@ -9,4 +9,12 @@ ../pom.xml dynamic-tp-adapter-common + + + + org.dromara.dynamictp + dynamic-tp-spring + + + diff --git a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java index 34ced834a..c3a89d1c4 100644 --- a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java +++ b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java @@ -47,8 +47,6 @@ import org.dromara.dynamictp.core.support.task.wrapper.TaskWrapper; import org.dromara.dynamictp.core.support.task.wrapper.TaskWrappers; import org.dromara.dynamictp.spring.OnceApplicationContextEventListener; - - import java.util.Collections; import java.util.List; import java.util.Map; @@ -61,6 +59,7 @@ import static org.dromara.dynamictp.common.constant.DynamicTpConst.PROPERTIES_CHANGE_SHOW_STYLE; import static org.dromara.dynamictp.core.notifier.manager.NotifyHelper.updateNotifyInfo; import static org.dromara.dynamictp.core.support.DtpLifecycleSupport.shutdownGracefulAsync; + /** * AbstractDtpAdapter related * diff --git a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java index a155ca0c7..69ce91208 100644 --- a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java +++ b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java @@ -28,8 +28,6 @@ import lombok.extern.slf4j.Slf4j; import lombok.val; import org.apache.commons.collections4.MapUtils; - - import java.util.EventObject; import static org.dromara.dynamictp.common.constant.DynamicTpConst.SCHEDULE_NOTIFY_ITEMS; diff --git a/adapter/pom.xml b/adapter/pom.xml index 551af6ece..ca1eb4e36 100644 --- a/adapter/pom.xml +++ b/adapter/pom.xml @@ -30,10 +30,5 @@ org.dromara.dynamictp dynamic-tp-core - - - org.dromara.dynamictp - dynamic-tp-spring - diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/CustomContextRefreshedEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/CustomContextRefreshedEvent.java index 2dde4902d..3a96686ac 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/CustomContextRefreshedEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/CustomContextRefreshedEvent.java @@ -17,7 +17,6 @@ package org.dromara.dynamictp.common.event; - import java.util.EventObject; /** From 9285a3f7d11f2335e2adf2235005bcf85a7d6dc8 Mon Sep 17 00:00:00 2001 From: vzer <17338548613@163.com> Date: Wed, 14 Aug 2024 13:55:11 +0800 Subject: [PATCH 076/101] =?UTF-8?q?refactor=EF=BC=9A=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E9=83=A8=E5=88=86=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/common/AbstractDtpAdapter.java | 6 ------ .../adapter/common/DtpAdapterListener.java | 5 +++++ .../adapter/rocketmq/RocketMqDtpAdapter.java | 2 +- .../dynamictp/common/manager/EventBusManager.java | 15 +++++++++++++-- .../common/parser/config/YamlConfigParser.java | 6 ++++-- .../dynamictp/common/util/ReflectionUtil.java | 11 +++++++++++ .../org/dromara/dynamictp/core/DtpRegistry.java | 6 ------ .../dynamictp/core/executor/DtpExecutor.java | 5 ----- .../dynamictp/core/lifecycle/DtpLifecycle.java | 2 ++ .../dynamictp/core/monitor/DtpMonitor.java | 3 --- .../dynamictp/core/support/DtpBannerPrinter.java | 1 + .../dynamictp/spring/AbstractSpringRefresher.java | 4 ---- 12 files changed, 37 insertions(+), 29 deletions(-) diff --git a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java index c3a89d1c4..e0df641dd 100644 --- a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java +++ b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java @@ -71,12 +71,10 @@ public abstract class AbstractDtpAdapter extends OnceApplicationContextEventListener implements DtpAdapter { private static final Equator EQUATOR = new GetterBaseEquator(); - private static AbstractDtpAdapter instance; protected final Map executors = Maps.newHashMap(); public AbstractDtpAdapter() { - instance = this; EventBusManager.register(this); } @@ -222,9 +220,5 @@ private void doRefreshPoolSize(ExecutorAdapter executor, TpExecutorProps prop executor.setMaximumPoolSize(props.getMaximumPoolSize()); } } - - public static void destroy() { - EventBusManager.unregister(instance); - } } diff --git a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java index 69ce91208..107e5b7d8 100644 --- a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java +++ b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/DtpAdapterListener.java @@ -22,6 +22,7 @@ import org.dromara.dynamictp.common.event.CollectEvent; import org.dromara.dynamictp.common.event.RefreshEvent; import org.dromara.dynamictp.common.manager.ContextManagerHelper; +import org.dromara.dynamictp.common.manager.EventBusManager; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.core.handler.CollectorHandler; import org.dromara.dynamictp.core.notifier.manager.AlarmManager; @@ -41,6 +42,10 @@ @Slf4j public class DtpAdapterListener { + public DtpAdapterListener() { + EventBusManager.register(this); + } + @Subscribe public void handleRefreshedEvent(EventObject event) { try { diff --git a/adapter/adapter-rocketmq/src/main/java/org/dromara/dynamictp/adapter/rocketmq/RocketMqDtpAdapter.java b/adapter/adapter-rocketmq/src/main/java/org/dromara/dynamictp/adapter/rocketmq/RocketMqDtpAdapter.java index 4cae4cb3b..0fc7a14d5 100644 --- a/adapter/adapter-rocketmq/src/main/java/org/dromara/dynamictp/adapter/rocketmq/RocketMqDtpAdapter.java +++ b/adapter/adapter-rocketmq/src/main/java/org/dromara/dynamictp/adapter/rocketmq/RocketMqDtpAdapter.java @@ -100,7 +100,7 @@ public void adaptProducerExecutors() { return; } for (DefaultMQProducer defaultMQProducer : beans) { - val method = ReflectionUtil.getField(DefaultMQProducerImpl.class, "getAsyncSenderExecutor"); + val method = ReflectionUtil.findMethod(DefaultMQProducerImpl.class, "getAsyncSenderExecutor"); if (Objects.isNull(method)) { continue; } diff --git a/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java b/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java index 5767fa178..5d83ffda7 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java +++ b/common/src/main/java/org/dromara/dynamictp/common/manager/EventBusManager.java @@ -38,13 +38,13 @@ public class EventBusManager { private static final Set REGISTERED_OBJECTS = ConcurrentHashMap.newKeySet(); private EventBusManager() { } - public static synchronized void register(Object object) { + public static void register(Object object) { if (REGISTERED_OBJECTS.add(object)) { EVENT_BUS.register(object); } } - public static synchronized void unregister(Object object) { + public static void unregister(Object object) { if (REGISTERED_OBJECTS.remove(object)) { try { EVENT_BUS.unregister(object); @@ -62,5 +62,16 @@ public static void post(Object event) { public static EventBus getInstance() { return EVENT_BUS; } + + public static void destroy() { + for (Object object : REGISTERED_OBJECTS) { + try { + EVENT_BUS.unregister(object); + } catch (Throwable e) { + log.warn("Attempted to unregister an object that was not registered: {}", object, e); + } + } + REGISTERED_OBJECTS.clear(); + } } diff --git a/common/src/main/java/org/dromara/dynamictp/common/parser/config/YamlConfigParser.java b/common/src/main/java/org/dromara/dynamictp/common/parser/config/YamlConfigParser.java index c8d5cf5ec..2e6179f90 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/parser/config/YamlConfigParser.java +++ b/common/src/main/java/org/dromara/dynamictp/common/parser/config/YamlConfigParser.java @@ -17,6 +17,8 @@ package org.dromara.dynamictp.common.parser.config; +import org.apache.commons.collections4.MapUtils; +import org.apache.commons.lang3.StringUtils; import org.dromara.dynamictp.common.em.ConfigFileTypeEnum; import org.yaml.snakeyaml.Yaml; @@ -44,14 +46,14 @@ public List types() { @Override public Map doParse(String content) { - if (content == null || content.isEmpty()) { + if (StringUtils.isBlank(content)) { return Collections.emptyMap(); } Yaml yaml = new Yaml(); Map loadedYaml = yaml.load(content); - if (loadedYaml == null) { + if (MapUtils.isEmpty(loadedYaml)) { return Collections.emptyMap(); } diff --git a/common/src/main/java/org/dromara/dynamictp/common/util/ReflectionUtil.java b/common/src/main/java/org/dromara/dynamictp/common/util/ReflectionUtil.java index a946d9d9c..369cb10f1 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/util/ReflectionUtil.java +++ b/common/src/main/java/org/dromara/dynamictp/common/util/ReflectionUtil.java @@ -21,6 +21,7 @@ import lombok.val; import org.apache.commons.lang3.reflect.FieldUtils; +import java.lang.reflect.Method; import java.lang.reflect.Field; import java.util.Objects; @@ -95,4 +96,14 @@ public static Field getField(Class targetClass, String fieldName) { } return field; } + + public static Method findMethod(Class targetClass, String methodName, Class... parameterTypes) { + try { + return targetClass.getDeclaredMethod(methodName, parameterTypes); + } catch (NoSuchMethodException e) { + log.warn("Method '{}' with parameters '{}' not found in class '{}'", methodName, parameterTypes, targetClass.getName(), e); + return null; + } + } } + diff --git a/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java b/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java index b9e4ac747..71b8af6a1 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java +++ b/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java @@ -79,18 +79,12 @@ public class DtpRegistry { private static final Equator EQUATOR = new GetterBaseEquator(); private static DtpProperties dtpProperties; - private static DtpRegistry instance; public DtpRegistry(DtpProperties dtpProperties) { DtpRegistry.dtpProperties = dtpProperties; - instance = this; EventBusManager.register(this); } - public static void destroy() { - EventBusManager.unregister(instance); - } - /** * Get all Executor names. * diff --git a/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java b/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java index 04ce2ec9e..74623658a 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java +++ b/core/src/main/java/org/dromara/dynamictp/core/executor/DtpExecutor.java @@ -181,11 +181,6 @@ public ThreadPoolExecutor getOriginal() { return this; } - - public void execute(Runnable task, long startTimeout) { - execute(task); - } - @Override public void execute(Runnable command) { command = getEnhancedTask(command); diff --git a/core/src/main/java/org/dromara/dynamictp/core/lifecycle/DtpLifecycle.java b/core/src/main/java/org/dromara/dynamictp/core/lifecycle/DtpLifecycle.java index ca4d1274b..c002f2832 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/lifecycle/DtpLifecycle.java +++ b/core/src/main/java/org/dromara/dynamictp/core/lifecycle/DtpLifecycle.java @@ -18,6 +18,7 @@ package org.dromara.dynamictp.core.lifecycle; import lombok.extern.slf4j.Slf4j; +import org.dromara.dynamictp.common.manager.EventBusManager; import org.dromara.dynamictp.core.DtpRegistry; import org.dromara.dynamictp.core.monitor.DtpMonitor; import org.dromara.dynamictp.core.notifier.manager.AlarmManager; @@ -94,5 +95,6 @@ public void shutdownInternal() { AlarmManager.destroy(); NoticeManager.destroy(); SystemMetricManager.stop(); + EventBusManager.destroy(); } } diff --git a/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java b/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java index fb894b0ee..22f5a3307 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java +++ b/core/src/main/java/org/dromara/dynamictp/core/monitor/DtpMonitor.java @@ -53,7 +53,6 @@ public class DtpMonitor { private static final ScheduledExecutorService MONITOR_EXECUTOR = ThreadPoolCreator.newScheduledThreadPool("dtp-monitor", 1); - private static DtpMonitor instance; private final DtpProperties dtpProperties; private ScheduledFuture monitorFuture; @@ -62,7 +61,6 @@ public class DtpMonitor { public DtpMonitor(DtpProperties dtpProperties) { this.dtpProperties = dtpProperties; - instance = this; EventBusManager.register(this); } @@ -126,6 +124,5 @@ private void publishAlarmCheckEvent() { public static void destroy() { MONITOR_EXECUTOR.shutdownNow(); - EventBusManager.unregister(instance); } } diff --git a/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java b/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java index 6292f5bf1..d6bd383f1 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java +++ b/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java @@ -62,6 +62,7 @@ public static DtpBannerPrinter getInstance() { } return instance; } + @Subscribe public void onBannerPrintEvent(CustomContextRefreshedEvent event) { printBanner(); diff --git a/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java b/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java index 1bac5cf52..26db6b03f 100644 --- a/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java +++ b/spring/src/main/java/org/dromara/dynamictp/spring/AbstractSpringRefresher.java @@ -43,8 +43,4 @@ public void setEnvironment(Environment environment) { this.environment = environment; } - @Override - protected void refresh(Object environment) { - super.refresh(environment); - } } From 3e60c9c1430d9746226d92a2de68e48612071436 Mon Sep 17 00:00:00 2001 From: vzer <17338548613@163.com> Date: Wed, 14 Aug 2024 13:55:35 +0800 Subject: [PATCH 077/101] =?UTF-8?q?refactor=EF=BC=9A=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/dromara/dynamictp/common/event/RefreshEvent.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java index fe02dd086..2d57c037e 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java @@ -19,6 +19,7 @@ import org.dromara.dynamictp.common.properties.DtpProperties; +import java.util.EventObject; /** @@ -27,7 +28,7 @@ * @author yanhom * @since 1.0.0 */ -public class RefreshEvent extends CustomContextRefreshedEvent { +public class RefreshEvent extends EventObject { private final transient DtpProperties dtpProperties; From 0c32fc896f90c2d8b08197fb59e854639ba7bad4 Mon Sep 17 00:00:00 2001 From: vzer <17338548613@163.com> Date: Wed, 14 Aug 2024 14:17:48 +0800 Subject: [PATCH 078/101] =?UTF-8?q?refactor=EF=BC=9A=E8=A7=A3=E8=80=A6Once?= =?UTF-8?q?ApplicationContextEventListener?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/dynamictp/adapter/common/AbstractDtpAdapter.java | 2 +- .../dynamictp/adapter/dubbo/apache/ApacheDubboDtpAdapter.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java index e0df641dd..d6a542025 100644 --- a/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java +++ b/adapter/adapter-common/src/main/java/org/dromara/dynamictp/adapter/common/AbstractDtpAdapter.java @@ -68,7 +68,7 @@ * @since 1.0.6 */ @Slf4j -public abstract class AbstractDtpAdapter extends OnceApplicationContextEventListener implements DtpAdapter { +public abstract class AbstractDtpAdapter implements DtpAdapter { private static final Equator EQUATOR = new GetterBaseEquator(); diff --git a/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/apache/ApacheDubboDtpAdapter.java b/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/apache/ApacheDubboDtpAdapter.java index c5a7c4793..a074294d6 100644 --- a/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/apache/ApacheDubboDtpAdapter.java +++ b/adapter/adapter-dubbo/src/main/java/org/dromara/dynamictp/adapter/dubbo/apache/ApacheDubboDtpAdapter.java @@ -38,6 +38,7 @@ import org.dromara.dynamictp.core.support.ThreadPoolExecutorProxy; import org.dromara.dynamictp.jvmti.JVMTI; import org.springframework.context.ApplicationEvent; +import org.springframework.context.ApplicationListener; import java.util.Map; import java.util.Objects; @@ -57,7 +58,7 @@ */ @Slf4j @SuppressWarnings("all") -public class ApacheDubboDtpAdapter extends AbstractDtpAdapter { +public class ApacheDubboDtpAdapter extends AbstractDtpAdapter implements ApplicationListener { private static final String TP_PREFIX = "dubboTp"; From e0e854914f00cfb1150fe954bc009940409aa9ff Mon Sep 17 00:00:00 2001 From: vzer200 <17338548613@163.com> Date: Thu, 22 Aug 2024 19:13:44 +0800 Subject: [PATCH 079/101] =?UTF-8?q?refactor=EF=BC=9A=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adapter/adapter-common/pom.xml | 8 -------- .../dynamictp/core/refresher/AbstractRefresher.java | 1 - .../dromara/dynamictp/core/support/DtpBannerPrinter.java | 1 - 3 files changed, 10 deletions(-) diff --git a/adapter/adapter-common/pom.xml b/adapter/adapter-common/pom.xml index cd669b5ae..befb17810 100644 --- a/adapter/adapter-common/pom.xml +++ b/adapter/adapter-common/pom.xml @@ -9,12 +9,4 @@ ../pom.xml dynamic-tp-adapter-common - - - - org.dromara.dynamictp - dynamic-tp-spring - - - diff --git a/core/src/main/java/org/dromara/dynamictp/core/refresher/AbstractRefresher.java b/core/src/main/java/org/dromara/dynamictp/core/refresher/AbstractRefresher.java index 9190a28de..cb9b81b7a 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/refresher/AbstractRefresher.java +++ b/core/src/main/java/org/dromara/dynamictp/core/refresher/AbstractRefresher.java @@ -52,7 +52,6 @@ public abstract class AbstractRefresher implements Refresher { protected AbstractRefresher(DtpProperties dtpProperties) { this.dtpProperties = dtpProperties; - EventBusManager.register(this); } @Override diff --git a/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java b/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java index d6bd383f1..a5fc7c829 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java +++ b/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java @@ -48,7 +48,6 @@ public class DtpBannerPrinter { private static volatile DtpBannerPrinter instance; private DtpBannerPrinter() { - log.info("Registering DtpBannerPrinter - instance: {}", this); EventBusManager.register(this); } From 62ea4cd04e27ea866b1d995dd35668be6817fa4d Mon Sep 17 00:00:00 2001 From: vzer200 <17338548613@163.com> Date: Thu, 22 Aug 2024 19:40:56 +0800 Subject: [PATCH 080/101] =?UTF-8?q?refactor=EF=BC=9A=E6=94=B9=E7=94=A8Meth?= =?UTF-8?q?odUtils?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/dynamictp/common/util/ReflectionUtil.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/common/src/main/java/org/dromara/dynamictp/common/util/ReflectionUtil.java b/common/src/main/java/org/dromara/dynamictp/common/util/ReflectionUtil.java index be2709074..d0bb4d184 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/util/ReflectionUtil.java +++ b/common/src/main/java/org/dromara/dynamictp/common/util/ReflectionUtil.java @@ -20,6 +20,8 @@ import lombok.extern.slf4j.Slf4j; import lombok.val; import org.apache.commons.lang3.reflect.FieldUtils; +import org.apache.commons.lang3.reflect.MethodUtils; + import java.lang.reflect.Field; import java.lang.reflect.Method; @@ -97,12 +99,11 @@ public static Field getField(Class targetClass, String fieldName) { } public static Method findMethod(Class targetClass, String methodName, Class... parameterTypes) { - try { - return targetClass.getDeclaredMethod(methodName, parameterTypes); - } catch (NoSuchMethodException e) { - log.warn("Method '{}' with parameters '{}' not found in class '{}'", methodName, parameterTypes, targetClass.getName(), e); - return null; + Method method = MethodUtils.getMatchingAccessibleMethod(targetClass, methodName, parameterTypes); + if (Objects.isNull(method)) { + log.warn("Method '{}' with parameters '{}' not found in class '{}'", methodName, parameterTypes, targetClass.getName()); } + return method; } public static List getAllFields(Class targetClass) { From 9737656b73e694da2772200ae84536a5ba3f49bc Mon Sep 17 00:00:00 2001 From: vzer200 <17338548613@163.com> Date: Thu, 22 Aug 2024 19:46:12 +0800 Subject: [PATCH 081/101] =?UTF-8?q?refactor=EF=BC=9A=E6=8A=BD=E5=8F=96DtpE?= =?UTF-8?q?vent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/event/AlarmCheckEvent.java | 11 +---- .../dynamictp/common/event/CollectEvent.java | 11 +---- .../dynamictp/common/event/DtpEvent.java | 41 +++++++++++++++++++ .../dynamictp/common/event/RefreshEvent.java | 11 +---- 4 files changed, 47 insertions(+), 27 deletions(-) create mode 100644 common/src/main/java/org/dromara/dynamictp/common/event/DtpEvent.java diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java index 7eafdee98..26e5f084e 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java @@ -28,16 +28,9 @@ * @author yanhom * @since 1.0.0 */ -public class AlarmCheckEvent extends EventObject { - - private final transient DtpProperties dtpProperties; +public class AlarmCheckEvent extends DtpEvent { public AlarmCheckEvent(Object source, DtpProperties dtpProperties) { - super(source); - this.dtpProperties = dtpProperties; - } - - public DtpProperties getDtpProperties() { - return dtpProperties; + super(source, dtpProperties); // 调用父类的构造方法 } } diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java index e722ce10c..e4754d6ae 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java @@ -28,16 +28,9 @@ * @author yanhom * @since 1.0.0 */ -public class CollectEvent extends EventObject { - - private final transient DtpProperties dtpProperties; +public class CollectEvent extends DtpEvent { public CollectEvent(Object source, DtpProperties dtpProperties) { - super(source); - this.dtpProperties = dtpProperties; - } - - public DtpProperties getDtpProperties() { - return dtpProperties; + super(source, dtpProperties); } } diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/DtpEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/DtpEvent.java new file mode 100644 index 000000000..470c27f86 --- /dev/null +++ b/common/src/main/java/org/dromara/dynamictp/common/event/DtpEvent.java @@ -0,0 +1,41 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 org.dromara.dynamictp.common.event; + +import lombok.Getter; +import org.dromara.dynamictp.common.properties.DtpProperties; + +import java.util.EventObject; + +/** + * RefreshEvent related + * + * @author vzer200 + * @since 1.1.8 + */ +@Getter +public abstract class DtpEvent extends EventObject { + + private final transient DtpProperties dtpProperties; + + public DtpEvent(Object source, DtpProperties dtpProperties) { + super(source); + this.dtpProperties = dtpProperties; + } + +} diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java index 2d57c037e..f824eba40 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java @@ -28,16 +28,9 @@ * @author yanhom * @since 1.0.0 */ -public class RefreshEvent extends EventObject { - - private final transient DtpProperties dtpProperties; +public class RefreshEvent extends DtpEvent { public RefreshEvent(Object source, DtpProperties dtpProperties) { - super(source); - this.dtpProperties = dtpProperties; - } - - public DtpProperties getDtpProperties() { - return dtpProperties; + super(source, dtpProperties); } } From b5caa4713ece922c5ba28e4d7f37622f1d353c35 Mon Sep 17 00:00:00 2001 From: vzer200 <17338548613@163.com> Date: Thu, 22 Aug 2024 19:49:28 +0800 Subject: [PATCH 082/101] =?UTF-8?q?refactor=EF=BC=9A=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=B3=A8=E9=87=8A=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/dromara/dynamictp/common/event/DtpEvent.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/DtpEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/DtpEvent.java index 470c27f86..a15aded39 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/DtpEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/DtpEvent.java @@ -23,7 +23,7 @@ import java.util.EventObject; /** - * RefreshEvent related + * DtpEvent related * * @author vzer200 * @since 1.1.8 From a5fc7f3cadaa3cdd093af67cdf2251be3f772b7a Mon Sep 17 00:00:00 2001 From: vzer200 <17338548613@163.com> Date: Thu, 22 Aug 2024 19:51:03 +0800 Subject: [PATCH 083/101] =?UTF-8?q?refactor=EF=BC=9ACheckstyle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dromara/dynamictp/common/event/AlarmCheckEvent.java | 3 --- .../org/dromara/dynamictp/common/event/CollectEvent.java | 5 +---- .../org/dromara/dynamictp/common/event/RefreshEvent.java | 3 --- 3 files changed, 1 insertion(+), 10 deletions(-) diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java index 26e5f084e..c88a7843d 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/AlarmCheckEvent.java @@ -19,9 +19,6 @@ import org.dromara.dynamictp.common.properties.DtpProperties; -import java.util.EventObject; - - /** * AlarmCheckEvent related * diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java index e4754d6ae..b2cc2fc64 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/CollectEvent.java @@ -19,9 +19,6 @@ import org.dromara.dynamictp.common.properties.DtpProperties; -import java.util.EventObject; - - /** * CollectEvent related * @@ -31,6 +28,6 @@ public class CollectEvent extends DtpEvent { public CollectEvent(Object source, DtpProperties dtpProperties) { - super(source, dtpProperties); + super(source, dtpProperties); } } diff --git a/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java b/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java index f824eba40..157b2843a 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java +++ b/common/src/main/java/org/dromara/dynamictp/common/event/RefreshEvent.java @@ -19,9 +19,6 @@ import org.dromara.dynamictp.common.properties.DtpProperties; -import java.util.EventObject; - - /** * RefreshEvent related * From bd7bdeab33b866fe61e9064781f83acf1eb77ef9 Mon Sep 17 00:00:00 2001 From: vzer200 <17338548613@163.com> Date: Mon, 26 Aug 2024 13:52:55 +0800 Subject: [PATCH 084/101] =?UTF-8?q?refactor=EF=BC=9A=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E7=B1=BB=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/common/util/BeanCopierUtilsTest.java | 108 ++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 test/test-common/src/test/java/org/dromara/dynamictp/test/common/util/BeanCopierUtilsTest.java diff --git a/test/test-common/src/test/java/org/dromara/dynamictp/test/common/util/BeanCopierUtilsTest.java b/test/test-common/src/test/java/org/dromara/dynamictp/test/common/util/BeanCopierUtilsTest.java new file mode 100644 index 000000000..3453f2bef --- /dev/null +++ b/test/test-common/src/test/java/org/dromara/dynamictp/test/common/util/BeanCopierUtilsTest.java @@ -0,0 +1,108 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 org.dromara.dynamictp.test.common.util; + +import net.sf.cglib.beans.BeanCopier; +import org.dromara.dynamictp.common.util.BeanCopierUtils; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; + +/** + * BeanCopierUtilsTest related + * + * @author yanhom + */ +public class BeanCopierUtilsTest { + + private SourceClass source; + private TargetClass target; + + @BeforeEach + public void setUp() { + source = new SourceClass(); + source.setId(1); + source.setName("Test Name"); + source.setValue(100); + + target = new TargetClass(); + } + + @Test + public void testCopyProperties() { + // 使用BeanCopierUtils复制属性 + BeanCopierUtils.copyProperties(source, target); + + // 验证目标对象的属性值是否正确复制 + assertEquals(source.getId(), target.getId()); + assertEquals(source.getName(), target.getName()); + assertEquals(source.getValue(), target.getValue()); + } + + @Test + public void testCopyPropertiesWithNullValues() { + // 测试当源对象中有空值时的情况 + source.setName(null); + + BeanCopierUtils.copyProperties(source, target); + + assertEquals(source.getId(), target.getId()); + assertNull(target.getName()); // 名称为空时应正确复制 + assertEquals(source.getValue(), target.getValue()); + } + + @Test + public void testBeanCopierCache() { + // 测试BeanCopier缓存机制是否有效 + BeanCopier firstCopier = BeanCopierUtils.getBeanCopier(SourceClass.class, TargetClass.class); + BeanCopier secondCopier = BeanCopierUtils.getBeanCopier(SourceClass.class, TargetClass.class); + + assertSame(firstCopier, secondCopier); // 同样的source和target类应返回同一个BeanCopier实例 + } + + // 示例的源类和目标类 + public static class SourceClass { + private int id; + private String name; + private int value; + + // Getters and Setters + public int getId() { return id; } + public void setId(int id) { this.id = id; } + public String getName() { return name; } + public void setName(String name) { this.name = name; } + public int getValue() { return value; } + public void setValue(int value) { this.value = value; } + } + + public static class TargetClass { + private int id; + private String name; + private int value; + + // Getters and Setters + public int getId() { return id; } + public void setId(int id) { this.id = id; } + public String getName() { return name; } + public void setName(String name) { this.name = name; } + public int getValue() { return value; } + public void setValue(int value) { this.value = value; } + } +} \ No newline at end of file From dd55dd4345c2a67a2ef414672f0f9f90daebc94d Mon Sep 17 00:00:00 2001 From: vzer200 <17338548613@163.com> Date: Mon, 26 Aug 2024 13:54:36 +0800 Subject: [PATCH 085/101] =?UTF-8?q?refactor=EF=BC=9A=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E7=BB=91=E5=AE=9A=E6=B5=8B=E8=AF=95=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/spring/PropertiesBinderTest.java | 67 ++++++++++++++----- 1 file changed, 49 insertions(+), 18 deletions(-) diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/PropertiesBinderTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/PropertiesBinderTest.java index d21bb22eb..d98ab9bf9 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/PropertiesBinderTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/PropertiesBinderTest.java @@ -15,12 +15,15 @@ * limitations under the License. */ + package org.dromara.dynamictp.test.core.spring; import com.google.common.collect.Lists; import com.google.common.collect.Maps; +import org.dromara.dynamictp.common.em.CollectorTypeEnum; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.core.support.BinderHelper; +import org.dromara.dynamictp.spring.EnableDynamicTp; import org.dromara.dynamictp.spring.YamlPropertySourceFactory; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -30,8 +33,10 @@ import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.AbstractEnvironment; +import java.lang.reflect.Field; import java.util.List; import java.util.Map; +import sun.misc.Unsafe; /** * PropertiesBinderTest related @@ -43,31 +48,57 @@ factory = YamlPropertySourceFactory.class) @SpringBootTest(classes = PropertiesBinderTest.class) @EnableAutoConfiguration +@EnableDynamicTp class PropertiesBinderTest { @Autowired private AbstractEnvironment environment; @Test - void testBindDtpPropertiesWithMap() { - Map properties = Maps.newHashMap(); - properties.put("spring.dynamic.tp.enabled", false); - properties.put("spring.dynamic.tp.collectorTypes", Lists.newArrayList("LOGGING")); - properties.put("spring.dynamic.tp.executors[0].threadPoolName", "test_dtp"); - properties.put("spring.dynamic.tp.executors[1].threadPoolName", "test_dtp1"); - properties.put("spring.dynamic.tp.executors[0].executorType", "common"); - properties.put("spring.dynamic.tp.globalExecutorProps.executorType","eager"); + void testBindDtpPropertiesWithMap() throws Exception { + try { + // 获取Unsafe实例 + Field theUnsafe = Unsafe.class.getDeclaredField("theUnsafe"); + theUnsafe.setAccessible(true); + Unsafe unsafe = (Unsafe) theUnsafe.get(null); - DtpProperties dtpProperties = DtpProperties.getInstance(); - BinderHelper.bindDtpProperties(properties, dtpProperties); - Assertions.assertEquals(properties.get("spring.dynamic.tp.executors[0].threadPoolName"), - dtpProperties.getExecutors().get(0).getThreadPoolName()); - Assertions.assertIterableEquals((List) properties.get("spring.dynamic.tp.collectorTypes"), - dtpProperties.getCollectorTypes()); - Assertions.assertEquals("common", - dtpProperties.getExecutors().get(0).getExecutorType()); - Assertions.assertEquals(properties.get("spring.dynamic.tp.globalExecutorProps.executorType"), - dtpProperties.getExecutors().get(1).getExecutorType()); + // 获取DtpProperties类的私有内部类Holder + Class holderClass = Class.forName("org.dromara.dynamictp.common.properties.DtpProperties$Holder"); + Field instanceField = holderClass.getDeclaredField("INSTANCE"); + instanceField.setAccessible(true); + // 创建新的DtpProperties实例 + DtpProperties newDtpProperties = (DtpProperties) unsafe.allocateInstance(DtpProperties.class); + // 手动初始化字段 + newDtpProperties.setCollectorTypes(Lists.newArrayList(CollectorTypeEnum.MICROMETER.name())); + // 使用Unsafe重置单例实例 + unsafe.putObjectVolatile(holderClass, + unsafe.staticFieldOffset(instanceField), newDtpProperties); + + Map properties = Maps.newHashMap(); + properties.put("spring.dynamic.tp.enabled", false); + properties.put("spring.dynamic.tp.collectorTypes", Lists.newArrayList("LOGGING")); + properties.put("spring.dynamic.tp.executors[0].threadPoolName", "test_dtp"); + properties.put("spring.dynamic.tp.executors[1].threadPoolName", "test_dtp1"); + properties.put("spring.dynamic.tp.executors[0].executorType", "common"); + properties.put("spring.dynamic.tp.globalExecutorProps.executorType", "eager"); + + DtpProperties dtpProperties = DtpProperties.getInstance(); + System.out.println("Collector Types before binding: " + dtpProperties.getCollectorTypes()); + BinderHelper.bindDtpProperties(properties, dtpProperties); + System.out.println("Collector Types after binding: " + dtpProperties.getCollectorTypes()); + + Assertions.assertEquals(properties.get("spring.dynamic.tp.executors[0].threadPoolName"), + dtpProperties.getExecutors().get(0).getThreadPoolName()); + Assertions.assertIterableEquals((List) properties.get("spring.dynamic.tp.collectorTypes"), + dtpProperties.getCollectorTypes()); + Assertions.assertEquals("common", + dtpProperties.getExecutors().get(0).getExecutorType()); + Assertions.assertEquals(properties.get("spring.dynamic.tp.globalExecutorProps.executorType"), + dtpProperties.getExecutors().get(1).getExecutorType()); + + } catch (Exception e) { + throw new RuntimeException("Failed to reset DtpProperties instance", e); + } } @Test From 0d7715d0d41eb2ce5118b9c64928a2ab4c43d5db Mon Sep 17 00:00:00 2001 From: vzer200 <17338548613@163.com> Date: Mon, 26 Aug 2024 13:55:25 +0800 Subject: [PATCH 086/101] =?UTF-8?q?refactor=EF=BC=9A=E5=A2=9E=E5=8A=A0Adap?= =?UTF-8?q?ter=E6=B5=8B=E8=AF=95=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../spring/DtpLifecycleSpringAdapterTest.java | 108 ++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpLifecycleSpringAdapterTest.java diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpLifecycleSpringAdapterTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpLifecycleSpringAdapterTest.java new file mode 100644 index 000000000..d0b68e0cb --- /dev/null +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpLifecycleSpringAdapterTest.java @@ -0,0 +1,108 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 org.dromara.dynamictp.test.core.spring; + +import org.dromara.dynamictp.core.lifecycle.LifeCycleManagement; +import org.dromara.dynamictp.spring.DtpLifecycleSpringAdapter; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.SpringBootConfiguration; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.ApplicationContext; + +/** + * DtpLifecycleSpringAdapterTest related + * + * @author vzer200 + * @since 1.1.8 + */ +@SpringBootTest(classes = DtpLifecycleSpringAdapterTest.TestConfig.class) +public class DtpLifecycleSpringAdapterTest { + + @Autowired + private ApplicationContext applicationContext; + + @Autowired + private DtpLifecycleSpringAdapter dtpLifecycleSpringAdapter; + + @Autowired + private LifeCycleManagement lifeCycleManagement; + + @Test + void testLifecycleManagementIntegration() { + // 验证 DtpLifecycleSpringAdapter 是否注入成功 + Assertions.assertNotNull(dtpLifecycleSpringAdapter); + + // 验证 LifeCycleManagement 是否注入成功 + Assertions.assertNotNull(lifeCycleManagement); + + // 启动 lifecycle 并检查状态 + dtpLifecycleSpringAdapter.start(); + Assertions.assertTrue(dtpLifecycleSpringAdapter.isRunning()); + Mockito.verify(lifeCycleManagement).start(); + + Mockito.reset(lifeCycleManagement); + + // 停止 lifecycle 并检查状态 + dtpLifecycleSpringAdapter.stop(); + Assertions.assertFalse(dtpLifecycleSpringAdapter.isRunning()); + Mockito.verify(lifeCycleManagement).stop(); + } + + + @Test + void testStopWithCallback() { + // 使用回调方法停止 lifecycle + Runnable callback = Mockito.mock(Runnable.class); + dtpLifecycleSpringAdapter.stop(callback); + + // 验证 lifecycle 停止后,回调方法被执行 + Mockito.verify(lifeCycleManagement).stop(); + Mockito.verify(callback).run(); + Assertions.assertFalse(dtpLifecycleSpringAdapter.isRunning()); + } + + @Test + void testAutoStartupAndPhase() { + // 验证 isAutoStartup 和 getPhase 方法的行为 + Assertions.assertEquals(lifeCycleManagement.isAutoStartup(), dtpLifecycleSpringAdapter.isAutoStartup()); + Assertions.assertEquals(lifeCycleManagement.getPhase(), dtpLifecycleSpringAdapter.getPhase()); + } + + @SpringBootConfiguration + @EnableAutoConfiguration + @ComponentScan(basePackages = "org.dromara.dynamictp.test.core.spring") + public static class TestConfig { + @Bean + public LifeCycleManagement lifeCycleManagement() { + return Mockito.mock(LifeCycleManagement.class); + } + + @Bean(name = "testDtpLifecycleSpringAdapter") + public DtpLifecycleSpringAdapter dtpLifecycleSpringAdapter(LifeCycleManagement lifeCycleManagement) { + return new DtpLifecycleSpringAdapter(lifeCycleManagement); + } + + } +} + From 47ffe525770ccd873f8e71ef4dfe7e15f3ecb81a Mon Sep 17 00:00:00 2001 From: vzer200 <17338548613@163.com> Date: Mon, 26 Aug 2024 19:01:52 +0800 Subject: [PATCH 087/101] =?UTF-8?q?refactor=EF=BC=9A=E5=A2=9E=E5=8A=A0Abst?= =?UTF-8?q?ractRefresherTest=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/refresher/AbstractRefresherTest.java | 168 ++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 test/test-core/src/test/java/org/dromara/dynamictp/test/core/refresher/AbstractRefresherTest.java diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/refresher/AbstractRefresherTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/refresher/AbstractRefresherTest.java new file mode 100644 index 000000000..a5e48526a --- /dev/null +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/refresher/AbstractRefresherTest.java @@ -0,0 +1,168 @@ +package org.dromara.dynamictp.test.core.refresher; + + +import org.dromara.dynamictp.common.event.RefreshEvent; +import org.dromara.dynamictp.common.manager.EventBusManager; +import org.dromara.dynamictp.common.properties.DtpProperties; +import org.dromara.dynamictp.common.em.ConfigFileTypeEnum; +import org.dromara.dynamictp.core.handler.ConfigHandler; +import org.dromara.dynamictp.core.refresher.AbstractRefresher; +import org.dromara.dynamictp.core.support.BinderHelper; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.MockedStatic; +import org.mockito.Mockito; +import org.mockito.junit.MockitoJUnitRunner; + +import java.lang.reflect.Method; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.times; + +import static org.mockito.ArgumentMatchers.anyMap; + +@RunWith(MockitoJUnitRunner.class) +public class AbstractRefresherTest { + + private AbstractRefresher refresher; + private DtpProperties dtpProperties; + + @Before + public void setUp() { + dtpProperties = Mockito.mock(DtpProperties.class); + + refresher = Mockito.spy(new AbstractRefresher(dtpProperties) { + @Override + protected void doRefresh(DtpProperties properties) { + // 测试时具体实现 + } + }); + } + + @Test + public void testRefreshWithValidContent() throws Exception { + String content = "configuration content"; + ConfigFileTypeEnum fileType = ConfigFileTypeEnum.YAML; + + Map parsedConfig = new HashMap<>(); + parsedConfig.put("key", "value"); + + try (MockedStatic configHandlerMockedStatic = Mockito.mockStatic(ConfigHandler.class); + MockedStatic binderHelperMockedStatic = Mockito.mockStatic(BinderHelper.class)) { + + ConfigHandler configHandlerMock = Mockito.mock(ConfigHandler.class); + configHandlerMockedStatic.when(ConfigHandler::getInstance).thenReturn(configHandlerMock); + Mockito.when(configHandlerMock.parseConfig(content, fileType)).thenReturn(parsedConfig); + + refresher.refresh(content, fileType); + + binderHelperMockedStatic.verify(() -> BinderHelper.bindDtpProperties(parsedConfig, dtpProperties), times(1)); + + // 使用反射来验证doRefresh方法 + Method doRefreshMethod = AbstractRefresher.class.getDeclaredMethod("doRefresh", DtpProperties.class); + doRefreshMethod.setAccessible(true); + doRefreshMethod.invoke(refresher, dtpProperties); + } + } + + @Test + public void testRefreshWithEmptyContent() throws Exception { + try (MockedStatic binderHelperMockedStatic = Mockito.mockStatic(BinderHelper.class)) { + + refresher.refresh("", ConfigFileTypeEnum.YAML); + + binderHelperMockedStatic.verify(() -> BinderHelper.bindDtpProperties(anyMap(), eq(dtpProperties)), never()); + + // 使用反射验证 doRefresh 方法未被调用 + Method doRefreshMethod = AbstractRefresher.class.getDeclaredMethod("doRefresh", DtpProperties.class); + doRefreshMethod.setAccessible(true); + + // 这里验证的方法如果不应该被调用,可以通过捕获异常来验证 + try { + doRefreshMethod.invoke(refresher, dtpProperties); + } catch (Exception e) { + assert e.getCause() instanceof NullPointerException; + } + } + } + + @Test + public void testRefreshWithNullFileType() throws Exception { + try (MockedStatic binderHelperMockedStatic = Mockito.mockStatic(BinderHelper.class)) { + + refresher.refresh("content", null); + + binderHelperMockedStatic.verify(() -> BinderHelper.bindDtpProperties(anyMap(), eq(dtpProperties)), never()); + + // 使用反射验证 doRefresh 方法未被调用 + Method doRefreshMethod = AbstractRefresher.class.getDeclaredMethod("doRefresh", DtpProperties.class); + doRefreshMethod.setAccessible(true); + + try { + doRefreshMethod.invoke(refresher, dtpProperties); + } catch (Exception e) { + assert e.getCause() instanceof NullPointerException; + } + } + } + + @Test + public void testRefreshProperties() throws Exception { + Map properties = new HashMap<>(); + properties.put("key", "value"); + + try (MockedStatic binderHelperMockedStatic = Mockito.mockStatic(BinderHelper.class)) { + + // 使用反射来调用refresh方法 + Method refreshMethod = AbstractRefresher.class.getDeclaredMethod("refresh", Map.class); + refreshMethod.setAccessible(true); + refreshMethod.invoke(refresher, properties); + + binderHelperMockedStatic.verify(() -> BinderHelper.bindDtpProperties(properties, dtpProperties), times(1)); + + // 使用反射来调用并验证doRefresh方法 + Method doRefreshMethod = AbstractRefresher.class.getDeclaredMethod("doRefresh", DtpProperties.class); + doRefreshMethod.setAccessible(true); + doRefreshMethod.invoke(refresher, dtpProperties); + } + } + + @Test + public void testNeedRefreshWithEmptyKeys() throws Exception { + Set emptyKeys = null; + + // 使用反射调用needRefresh方法 + Method needRefreshMethod = AbstractRefresher.class.getDeclaredMethod("needRefresh", Set.class); + needRefreshMethod.setAccessible(true); + boolean result = (boolean) needRefreshMethod.invoke(refresher, emptyKeys); + + assert !result; + } + + + @Test + public void testPublishEventWithReflection() throws Exception { + // 使用反射调用 publishEvent 方法进行测试 + try (MockedStatic eventBusManagerMockedStatic = Mockito.mockStatic(EventBusManager.class)) { + + // 反射获取 publishEvent 方法 + Method publishEventMethod = AbstractRefresher.class.getDeclaredMethod("publishEvent", DtpProperties.class); + publishEventMethod.setAccessible(true); + + // 调用 publishEvent 方法 + publishEventMethod.invoke(refresher, dtpProperties); + + // 验证事件是否发布 + eventBusManagerMockedStatic.verify(() -> EventBusManager.post(any(RefreshEvent.class)), times(1)); + } + } + + +} + From cf97ab64b3feeec35ee30a3a8212b1ce15a1ef2c Mon Sep 17 00:00:00 2001 From: vzer200 <17338548613@163.com> Date: Mon, 26 Aug 2024 22:39:57 +0800 Subject: [PATCH 088/101] =?UTF-8?q?refactor=EF=BC=9A=E5=90=88=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/core/notify/AbstractDtpNotifierTest.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/AbstractDtpNotifierTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/AbstractDtpNotifierTest.java index daf7c1c46..7d1697f3b 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/AbstractDtpNotifierTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/AbstractDtpNotifierTest.java @@ -18,6 +18,7 @@ package org.dromara.dynamictp.test.core.notify; import com.google.common.collect.Lists; +import org.dromara.dynamictp.common.notifier.LarkNotifier; import org.dromara.dynamictp.common.em.NotifyItemEnum; import org.dromara.dynamictp.common.entity.NotifyItem; import org.dromara.dynamictp.common.entity.NotifyPlatform; @@ -27,6 +28,8 @@ import org.dromara.dynamictp.core.notifier.AbstractDtpNotifier; import org.dromara.dynamictp.core.notifier.DtpDingNotifier; import org.dromara.dynamictp.common.notifier.Notifier; +import org.dromara.dynamictp.core.notifier.DtpLarkNotifier; +import org.dromara.dynamictp.core.notifier.DtpNotifier; import org.dromara.dynamictp.core.notifier.context.AlarmCtx; import org.dromara.dynamictp.core.notifier.context.DtpNotifyCtxHolder; import org.dromara.dynamictp.core.notifier.context.NoticeCtx; @@ -118,4 +121,16 @@ public void testSendAlarmMsg() { public void testGetQueueName2() { Assert.assertEquals(dtpExecutor.getQueueType(), VARIABLE_LINKED_BLOCKING_QUEUE.getName()); } + + @Test + public void testLarkSendChangeMsg() { + DtpNotifier larkNotifier = new DtpLarkNotifier(new LarkNotifier()); + NotifyPlatform notifyPlatform = new NotifyPlatform(); + notifyPlatform.setWebhook(""); + notifyPlatform.setReceivers(""); + TpMainFields oldFields = new TpMainFields(); + List diffs = Lists.newArrayList("corePoolSize"); + DtpNotifyCtxHolder.set(new NoticeCtx(ExecutorWrapper.of(dtpExecutor), new NotifyItem(), oldFields, diffs)); + larkNotifier.sendChangeMsg(notifyPlatform, oldFields, diffs); + } } From e2c6b08dff4072dd0c0bf692716fcc4498cc47cd Mon Sep 17 00:00:00 2001 From: vzer200 <17338548613@163.com> Date: Mon, 26 Aug 2024 23:33:09 +0800 Subject: [PATCH 089/101] =?UTF-8?q?refactor=EF=BC=9A=E4=BF=AE=E6=94=B9Abst?= =?UTF-8?q?ractRefresherTest?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/refresher/AbstractRefresherTest.java | 172 ++++-------------- 1 file changed, 36 insertions(+), 136 deletions(-) diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/refresher/AbstractRefresherTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/refresher/AbstractRefresherTest.java index a5e48526a..538ddf091 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/refresher/AbstractRefresherTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/refresher/AbstractRefresherTest.java @@ -1,168 +1,68 @@ -package org.dromara.dynamictp.test.core.refresher; +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 org.dromara.dynamictp.test.core.refresher; -import org.dromara.dynamictp.common.event.RefreshEvent; -import org.dromara.dynamictp.common.manager.EventBusManager; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.common.em.ConfigFileTypeEnum; -import org.dromara.dynamictp.core.handler.ConfigHandler; import org.dromara.dynamictp.core.refresher.AbstractRefresher; -import org.dromara.dynamictp.core.support.BinderHelper; import org.junit.Before; import org.junit.Test; +import org.junit.jupiter.api.Assertions; import org.junit.runner.RunWith; -import org.mockito.MockedStatic; import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; - -import java.lang.reflect.Method; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.times; +import org.springframework.test.context.junit4.SpringRunner; -import static org.mockito.ArgumentMatchers.anyMap; - -@RunWith(MockitoJUnitRunner.class) +@RunWith(SpringRunner.class) public class AbstractRefresherTest { - private AbstractRefresher refresher; private DtpProperties dtpProperties; @Before - public void setUp() { - dtpProperties = Mockito.mock(DtpProperties.class); - + public void setUp(){ + dtpProperties = DtpProperties.getInstance(); refresher = Mockito.spy(new AbstractRefresher(dtpProperties) { @Override protected void doRefresh(DtpProperties properties) { - // 测试时具体实现 } }); } @Test - public void testRefreshWithValidContent() throws Exception { - String content = "configuration content"; - ConfigFileTypeEnum fileType = ConfigFileTypeEnum.YAML; + public void testRefresh(){ + String initialEnv = dtpProperties.getEnv(); + System.out.println("Initial env: " + initialEnv); - Map parsedConfig = new HashMap<>(); - parsedConfig.put("key", "value"); + mockConfigChange(); - try (MockedStatic configHandlerMockedStatic = Mockito.mockStatic(ConfigHandler.class); - MockedStatic binderHelperMockedStatic = Mockito.mockStatic(BinderHelper.class)) { - - ConfigHandler configHandlerMock = Mockito.mock(ConfigHandler.class); - configHandlerMockedStatic.when(ConfigHandler::getInstance).thenReturn(configHandlerMock); - Mockito.when(configHandlerMock.parseConfig(content, fileType)).thenReturn(parsedConfig); - - refresher.refresh(content, fileType); - - binderHelperMockedStatic.verify(() -> BinderHelper.bindDtpProperties(parsedConfig, dtpProperties), times(1)); - - // 使用反射来验证doRefresh方法 - Method doRefreshMethod = AbstractRefresher.class.getDeclaredMethod("doRefresh", DtpProperties.class); - doRefreshMethod.setAccessible(true); - doRefreshMethod.invoke(refresher, dtpProperties); - } + String refreshedEnv = dtpProperties.getEnv(); + System.out.println("Refreshed env: " + refreshedEnv); + Assertions.assertEquals("newEnvValue", refreshedEnv); } - @Test - public void testRefreshWithEmptyContent() throws Exception { - try (MockedStatic binderHelperMockedStatic = Mockito.mockStatic(BinderHelper.class)) { - - refresher.refresh("", ConfigFileTypeEnum.YAML); - - binderHelperMockedStatic.verify(() -> BinderHelper.bindDtpProperties(anyMap(), eq(dtpProperties)), never()); - - // 使用反射验证 doRefresh 方法未被调用 - Method doRefreshMethod = AbstractRefresher.class.getDeclaredMethod("doRefresh", DtpProperties.class); - doRefreshMethod.setAccessible(true); + private void mockConfigChange() { + String content = "spring:\n" + + " dynamic:\n" + + " tp:\n" + + " enabled: true\n" + + " env: newEnvValue"; - // 这里验证的方法如果不应该被调用,可以通过捕获异常来验证 - try { - doRefreshMethod.invoke(refresher, dtpProperties); - } catch (Exception e) { - assert e.getCause() instanceof NullPointerException; - } - } + refresher.refresh(content, ConfigFileTypeEnum.YAML); } - - @Test - public void testRefreshWithNullFileType() throws Exception { - try (MockedStatic binderHelperMockedStatic = Mockito.mockStatic(BinderHelper.class)) { - - refresher.refresh("content", null); - - binderHelperMockedStatic.verify(() -> BinderHelper.bindDtpProperties(anyMap(), eq(dtpProperties)), never()); - - // 使用反射验证 doRefresh 方法未被调用 - Method doRefreshMethod = AbstractRefresher.class.getDeclaredMethod("doRefresh", DtpProperties.class); - doRefreshMethod.setAccessible(true); - - try { - doRefreshMethod.invoke(refresher, dtpProperties); - } catch (Exception e) { - assert e.getCause() instanceof NullPointerException; - } - } - } - - @Test - public void testRefreshProperties() throws Exception { - Map properties = new HashMap<>(); - properties.put("key", "value"); - - try (MockedStatic binderHelperMockedStatic = Mockito.mockStatic(BinderHelper.class)) { - - // 使用反射来调用refresh方法 - Method refreshMethod = AbstractRefresher.class.getDeclaredMethod("refresh", Map.class); - refreshMethod.setAccessible(true); - refreshMethod.invoke(refresher, properties); - - binderHelperMockedStatic.verify(() -> BinderHelper.bindDtpProperties(properties, dtpProperties), times(1)); - - // 使用反射来调用并验证doRefresh方法 - Method doRefreshMethod = AbstractRefresher.class.getDeclaredMethod("doRefresh", DtpProperties.class); - doRefreshMethod.setAccessible(true); - doRefreshMethod.invoke(refresher, dtpProperties); - } - } - - @Test - public void testNeedRefreshWithEmptyKeys() throws Exception { - Set emptyKeys = null; - - // 使用反射调用needRefresh方法 - Method needRefreshMethod = AbstractRefresher.class.getDeclaredMethod("needRefresh", Set.class); - needRefreshMethod.setAccessible(true); - boolean result = (boolean) needRefreshMethod.invoke(refresher, emptyKeys); - - assert !result; - } - - - @Test - public void testPublishEventWithReflection() throws Exception { - // 使用反射调用 publishEvent 方法进行测试 - try (MockedStatic eventBusManagerMockedStatic = Mockito.mockStatic(EventBusManager.class)) { - - // 反射获取 publishEvent 方法 - Method publishEventMethod = AbstractRefresher.class.getDeclaredMethod("publishEvent", DtpProperties.class); - publishEventMethod.setAccessible(true); - - // 调用 publishEvent 方法 - publishEventMethod.invoke(refresher, dtpProperties); - - // 验证事件是否发布 - eventBusManagerMockedStatic.verify(() -> EventBusManager.post(any(RefreshEvent.class)), times(1)); - } - } - - } From 87f7c2b85d22c4ea40836bcbf7647069b63a6196 Mon Sep 17 00:00:00 2001 From: vzer200 <17338548613@163.com> Date: Mon, 26 Aug 2024 23:36:16 +0800 Subject: [PATCH 090/101] =?UTF-8?q?refactor=EF=BC=9A=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dynamictp/test/common/util/BeanCopierUtilsTest.java | 4 +++- .../test/core/refresher/AbstractRefresherTest.java | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/test/test-common/src/test/java/org/dromara/dynamictp/test/common/util/BeanCopierUtilsTest.java b/test/test-common/src/test/java/org/dromara/dynamictp/test/common/util/BeanCopierUtilsTest.java index 3453f2bef..acbcbef7f 100644 --- a/test/test-common/src/test/java/org/dromara/dynamictp/test/common/util/BeanCopierUtilsTest.java +++ b/test/test-common/src/test/java/org/dromara/dynamictp/test/common/util/BeanCopierUtilsTest.java @@ -21,6 +21,7 @@ import org.dromara.dynamictp.common.util.BeanCopierUtils; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; + import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertSame; @@ -28,7 +29,8 @@ /** * BeanCopierUtilsTest related * - * @author yanhom + * @author vzer200 + * @since 1.1.8 */ public class BeanCopierUtilsTest { diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/refresher/AbstractRefresherTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/refresher/AbstractRefresherTest.java index 538ddf091..945889d00 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/refresher/AbstractRefresherTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/refresher/AbstractRefresherTest.java @@ -28,6 +28,12 @@ import org.springframework.test.context.junit4.SpringRunner; +/** + * AbstractRefresherTest related + * + * @author vzer200 + * @since 1.1.8 + */ @RunWith(SpringRunner.class) public class AbstractRefresherTest { private AbstractRefresher refresher; From 8abb480fff19e137bd599e7876b68ab7f9aa1116 Mon Sep 17 00:00:00 2001 From: vzer200 <17338548613@163.com> Date: Sat, 31 Aug 2024 15:41:22 +0800 Subject: [PATCH 091/101] =?UTF-8?q?refactor=EF=BC=9A=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=8D=95=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/core/aware/AwareManagerTest.java | 124 ++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 test/test-core/src/test/java/org/dromara/dynamictp/test/core/aware/AwareManagerTest.java diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/aware/AwareManagerTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/aware/AwareManagerTest.java new file mode 100644 index 000000000..25aa734f8 --- /dev/null +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/aware/AwareManagerTest.java @@ -0,0 +1,124 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 org.dromara.dynamictp.test.core.aware; + +import org.dromara.dynamictp.core.aware.ExecutorAware; +import org.dromara.dynamictp.core.support.ExecutorWrapper; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.Executor; + +import static org.mockito.Mockito.*; + +/** + * AwareManagerTest related + * + * @author vzer200 + * @since 1.1.8 + */ +class AwareManagerTest { + + private ExecutorWrapper executorWrapper; + private ExecutorAware mockAware1; + private ExecutorAware mockAware2; + private Executor mockExecutor; + private Runnable mockRunnable; + + private List customAwareList; + + @BeforeEach + void setUp() { + executorWrapper = mock(ExecutorWrapper.class); + mockAware1 = mock(ExecutorAware.class); + mockAware2 = mock(ExecutorAware.class); + mockExecutor = mock(Executor.class); + mockRunnable = mock(Runnable.class); + + when(mockAware1.getName()).thenReturn("Aware1"); + when(mockAware2.getName()).thenReturn("Aware2"); + + customAwareList = new ArrayList<>(); + customAwareList.add(mockAware1); + customAwareList.add(mockAware2); + } + + @Test + void testRegister() { + for (ExecutorAware aware : customAwareList) { + aware.register(executorWrapper); + } + + verify(mockAware1).register(executorWrapper); + verify(mockAware2).register(executorWrapper); + } + + @Test + void testExecute() { + for (ExecutorAware aware : customAwareList) { + aware.execute(mockExecutor, mockRunnable); + } + + verify(mockAware1).execute(mockExecutor, mockRunnable); + verify(mockAware2).execute(mockExecutor, mockRunnable); + } + + @Test + void testBeforeExecute() { + Thread mockThread = mock(Thread.class); + for (ExecutorAware aware : customAwareList) { + aware.beforeExecuteWrap(mockExecutor, mockThread, mockRunnable); + } + + verify(mockAware1).beforeExecuteWrap(mockExecutor, mockThread, mockRunnable); + verify(mockAware2).beforeExecuteWrap(mockExecutor, mockThread, mockRunnable); + } + + @Test + void testAfterExecute() { + for (ExecutorAware aware : customAwareList) { + aware.afterExecuteWrap(mockExecutor, mockRunnable, null); + } + + verify(mockAware1).afterExecuteWrap(mockExecutor, mockRunnable, null); + verify(mockAware2).afterExecuteWrap(mockExecutor, mockRunnable, null); + } + + @Test + void testShutdown() { + for (ExecutorAware aware : customAwareList) { + aware.shutdown(mockExecutor); + } + + verify(mockAware1).shutdown(mockExecutor); + verify(mockAware2).shutdown(mockExecutor); + } + + @Test + void testShutdownNow() { + List mockTasks = new ArrayList<>(); + for (ExecutorAware aware : customAwareList) { + aware.shutdownNow(mockExecutor, mockTasks); + } + + verify(mockAware1).shutdownNow(mockExecutor, mockTasks); + verify(mockAware2).shutdownNow(mockExecutor, mockTasks); + } +} From 947ad6bcffe7dc313dce5076f8cd7c003e5b7fd1 Mon Sep 17 00:00:00 2001 From: vzer200 <17338548613@163.com> Date: Sat, 31 Aug 2024 15:41:35 +0800 Subject: [PATCH 092/101] =?UTF-8?q?refactor=EF=BC=9A=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=8D=95=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/support/DtpLifecycleSupportTest.java | 112 ++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 test/test-core/src/test/java/org/dromara/dynamictp/test/core/support/DtpLifecycleSupportTest.java diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/support/DtpLifecycleSupportTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/support/DtpLifecycleSupportTest.java new file mode 100644 index 000000000..fd8dda332 --- /dev/null +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/support/DtpLifecycleSupportTest.java @@ -0,0 +1,112 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 org.dromara.dynamictp.test.core.support; + +import org.dromara.dynamictp.core.DtpRegistry; +import org.dromara.dynamictp.core.executor.DtpExecutor; +import org.dromara.dynamictp.core.support.DtpLifecycleSupport; +import org.dromara.dynamictp.core.support.ExecutorWrapper; +import org.dromara.dynamictp.spring.YamlPropertySourceFactory; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.PropertySource; + +import java.util.concurrent.ArrayBlockingQueue; +import java.util.concurrent.RejectedExecutionException; +import java.util.concurrent.TimeUnit; + +/** + * DtpLifecycleSupportTest related + * + * @author vzer200 + * @since 1.1.8 + */ +@PropertySource(value = "classpath:/demo-dtp-dev.yml", factory = YamlPropertySourceFactory.class) +@SpringBootTest(classes = DtpLifecycleSupportTest.class) +@EnableAutoConfiguration +@ComponentScan(basePackages = "org.dromara.dynamictp.test.core.spring") +public class DtpLifecycleSupportTest { + + private ExecutorWrapper executorWrapper; + private DtpExecutor dtpExecutor; + + @BeforeEach + public void setUp() { + dtpExecutor = (DtpExecutor) DtpRegistry.getExecutor("dtpExecutor1"); + if (dtpExecutor == null) { + throw new RuntimeException("dtpExecutor1 not found!"); + } + executorWrapper = new ExecutorWrapper(dtpExecutor); + } + + @Test + public void testInitialize() { + int initialCorePoolSize = dtpExecutor.getCorePoolSize(); + int initialMaxPoolSize = dtpExecutor.getMaximumPoolSize(); + + DtpLifecycleSupport.initialize(executorWrapper); + + Assertions.assertEquals(initialCorePoolSize, dtpExecutor.getCorePoolSize()); + Assertions.assertEquals(initialMaxPoolSize, dtpExecutor.getMaximumPoolSize()); + Assertions.assertTrue(dtpExecutor.isNotifyEnabled()); + } + + + @Test + public void testDestroy() throws InterruptedException { + DtpLifecycleSupport.initialize(executorWrapper); + + DtpLifecycleSupport.destroy(executorWrapper); + + Assertions.assertTrue(dtpExecutor.isShutdown()); + Assertions.assertTrue(dtpExecutor.awaitTermination(1, TimeUnit.SECONDS)); + } + + @Test + public void testRejectHandlerEnhancement() { + // 手动创建一个小容量的线程池 + DtpExecutor smallExecutor = new DtpExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<>(1)); + + smallExecutor.execute(() -> { + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } + }); + + smallExecutor.execute(() -> { + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } + }); + + // 第三个任务应该被拒绝,触发拒绝策略 + Assertions.assertThrows(RejectedExecutionException.class, () -> { + smallExecutor.execute(() -> System.out.println("This task should be rejected")); + }); + } + + +} From 9f95d9b39891cf0f7a82c1c2967c3a678320249d Mon Sep 17 00:00:00 2001 From: vzer200 <17338548613@163.com> Date: Thu, 5 Sep 2024 23:46:34 +0800 Subject: [PATCH 093/101] =?UTF-8?q?refactor=EF=BC=9A=E5=A2=9E=E5=8A=A0Spri?= =?UTF-8?q?ngContextHolderTest=E5=8D=95=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/spring/SpringContextHolderTest.java | 124 ++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/SpringContextHolderTest.java diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/SpringContextHolderTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/SpringContextHolderTest.java new file mode 100644 index 000000000..7a5f467c4 --- /dev/null +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/SpringContextHolderTest.java @@ -0,0 +1,124 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 org.dromara.dynamictp.test.core.spring; + +import org.dromara.dynamictp.spring.SpringContextHolder; +import org.junit.jupiter.api.*; +import org.mockito.Mockito; +import org.springframework.context.ApplicationContext; +import org.springframework.core.env.Environment; + +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; + +import static org.junit.jupiter.api.Assertions.assertArrayEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.Mockito.when; + +/** + * SpringContextHolderTest related + * + * @author vzer200 + * @since 1.1.8 + */ +@TestInstance(TestInstance.Lifecycle.PER_CLASS) // 每个测试类使用同一个实例 +public class SpringContextHolderTest { + + private ApplicationContext mockContext; + private Environment mockEnv; + + @BeforeEach + void setUp() throws Exception { + // 每个测试都创建新的 mock 对象 + mockContext = Mockito.mock(ApplicationContext.class); + mockEnv = Mockito.mock(Environment.class); + + // 配置 mock 行为 + when(mockContext.getEnvironment()).thenReturn(mockEnv); + + // 使用反射设置 SpringContextHolder 的静态 context + setStaticContext(mockContext); + } + + private void setStaticContext(ApplicationContext context) throws Exception { + Field contextField = SpringContextHolder.class.getDeclaredField("context"); + contextField.setAccessible(true); + contextField.set(null, context); + } + + @Test + public void testGetBeanByClass() { + String expectedBean = "testBean"; + when(mockContext.getBean(String.class)).thenReturn(expectedBean); + + String actualBean = SpringContextHolder.getInstance().getBean(String.class); + + assertEquals(expectedBean, actualBean); + } + + @Test + public void testGetBeanByNameAndClass() { + String expectedBean = "testBean"; + when(mockContext.getBean("beanName", String.class)).thenReturn(expectedBean); + + String actualBean = SpringContextHolder.getInstance().getBean("beanName", String.class); + + assertEquals(expectedBean, actualBean); + } + + @Test + public void testGetBeansOfType() { + Map expectedBeans = new HashMap<>(); + expectedBeans.put("bean1", "value1"); + expectedBeans.put("bean2", "value2"); + + when(mockContext.getBeansOfType(String.class)).thenReturn(expectedBeans); + + Map actualBeans = SpringContextHolder.getInstance().getBeansOfType(String.class); + + assertEquals(expectedBeans, actualBeans); + } + + @Test + public void testGetEnvironmentProperty() { + when(mockEnv.getProperty("key")).thenReturn("value"); + + String actualProperty = SpringContextHolder.getInstance().getEnvironment().getProperty("key"); + + assertEquals("value", actualProperty); + } + + @Test + public void testGetEnvironmentPropertyWithDefaultValue() { + when(mockEnv.getProperty("key", "default")).thenReturn("value"); + + String actualProperty = SpringContextHolder.getInstance().getEnvironment().getProperty("key", "default"); + + assertEquals("value", actualProperty); + } + + @Test + public void testGetActiveProfiles() { + when(mockEnv.getActiveProfiles()).thenReturn(new String[]{"profile1", "profile2"}); + + String[] actualProfiles = SpringContextHolder.getInstance().getEnvironment().getActiveProfiles(); + + assertArrayEquals(new String[]{"profile1", "profile2"}, actualProfiles); + } +} From aff5100d9520ce070b8e6200042bc8e330aed189 Mon Sep 17 00:00:00 2001 From: vzer200 <17338548613@163.com> Date: Fri, 6 Sep 2024 20:03:58 +0800 Subject: [PATCH 094/101] =?UTF-8?q?refactor=EF=BC=9A=E5=8E=BB=E6=8E=89?= =?UTF-8?q?=E6=8C=87=E5=AE=9A=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/pom.xml | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index c2ede7c40..8361b253e 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -35,8 +35,6 @@ org.dromara.dynamictp dynamic-tp-spring - 1.1.8-beta - compile From 1e3044a78b38cfcd47aa2ae809811fc5212b8f1d Mon Sep 17 00:00:00 2001 From: vzer200 <17338548613@163.com> Date: Fri, 6 Sep 2024 23:07:21 +0800 Subject: [PATCH 095/101] =?UTF-8?q?refactor=EF=BC=9ADtpLifecycleSpringAdap?= =?UTF-8?q?terTest=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../spring/DtpLifecycleSpringAdapterTest.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpLifecycleSpringAdapterTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpLifecycleSpringAdapterTest.java index d0b68e0cb..b8bd7058d 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpLifecycleSpringAdapterTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/DtpLifecycleSpringAdapterTest.java @@ -50,16 +50,16 @@ public class DtpLifecycleSpringAdapterTest { @Test void testLifecycleManagementIntegration() { - // 验证 DtpLifecycleSpringAdapter 是否注入成功 + // 验证 DtpLifecycleSpringAdapter 和 LifeCycleManagement 是否注入成功 Assertions.assertNotNull(dtpLifecycleSpringAdapter); - - // 验证 LifeCycleManagement 是否注入成功 Assertions.assertNotNull(lifeCycleManagement); // 启动 lifecycle 并检查状态 dtpLifecycleSpringAdapter.start(); Assertions.assertTrue(dtpLifecycleSpringAdapter.isRunning()); Mockito.verify(lifeCycleManagement).start(); + Mockito.when(lifeCycleManagement.isRunning()).thenReturn(true); // Mock isRunning() 状态同步 + Assertions.assertTrue(lifeCycleManagement.isRunning()); Mockito.reset(lifeCycleManagement); @@ -67,9 +67,10 @@ void testLifecycleManagementIntegration() { dtpLifecycleSpringAdapter.stop(); Assertions.assertFalse(dtpLifecycleSpringAdapter.isRunning()); Mockito.verify(lifeCycleManagement).stop(); + Mockito.when(lifeCycleManagement.isRunning()).thenReturn(false); // Mock isRunning() 状态同步 + Assertions.assertFalse(lifeCycleManagement.isRunning()); } - @Test void testStopWithCallback() { // 使用回调方法停止 lifecycle @@ -79,12 +80,16 @@ void testStopWithCallback() { // 验证 lifecycle 停止后,回调方法被执行 Mockito.verify(lifeCycleManagement).stop(); Mockito.verify(callback).run(); + Mockito.when(lifeCycleManagement.isRunning()).thenReturn(false); // Mock isRunning() 状态同步 Assertions.assertFalse(dtpLifecycleSpringAdapter.isRunning()); + Assertions.assertFalse(lifeCycleManagement.isRunning()); } @Test void testAutoStartupAndPhase() { // 验证 isAutoStartup 和 getPhase 方法的行为 + Mockito.when(lifeCycleManagement.isAutoStartup()).thenReturn(true); // Mock 返回值为 true + Mockito.when(lifeCycleManagement.getPhase()).thenReturn(0); // Mock 返回值为 int 类型 0 Assertions.assertEquals(lifeCycleManagement.isAutoStartup(), dtpLifecycleSpringAdapter.isAutoStartup()); Assertions.assertEquals(lifeCycleManagement.getPhase(), dtpLifecycleSpringAdapter.getPhase()); } @@ -102,7 +107,7 @@ public LifeCycleManagement lifeCycleManagement() { public DtpLifecycleSpringAdapter dtpLifecycleSpringAdapter(LifeCycleManagement lifeCycleManagement) { return new DtpLifecycleSpringAdapter(lifeCycleManagement); } - } } + From c7b00b4bb926837fff6a5f5e11e5e3c0f19342bc Mon Sep 17 00:00:00 2001 From: vzer200 <17338548613@163.com> Date: Fri, 6 Sep 2024 23:44:14 +0800 Subject: [PATCH 096/101] =?UTF-8?q?refactor=EF=BC=9ADtpLifecycleSupportTes?= =?UTF-8?q?t=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/support/DtpLifecycleSupportTest.java | 99 ++++++++----------- 1 file changed, 43 insertions(+), 56 deletions(-) diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/support/DtpLifecycleSupportTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/support/DtpLifecycleSupportTest.java index fd8dda332..6d58eccc0 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/support/DtpLifecycleSupportTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/support/DtpLifecycleSupportTest.java @@ -18,31 +18,26 @@ package org.dromara.dynamictp.test.core.support; import org.dromara.dynamictp.core.DtpRegistry; +import org.dromara.dynamictp.core.aware.AwareManager; import org.dromara.dynamictp.core.executor.DtpExecutor; +import org.dromara.dynamictp.core.notifier.manager.NotifyHelper; import org.dromara.dynamictp.core.support.DtpLifecycleSupport; import org.dromara.dynamictp.core.support.ExecutorWrapper; import org.dromara.dynamictp.spring.YamlPropertySourceFactory; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.mockito.MockedStatic; +import org.mockito.Mockito; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; -import java.util.concurrent.ArrayBlockingQueue; -import java.util.concurrent.RejectedExecutionException; -import java.util.concurrent.TimeUnit; +import java.util.concurrent.Executor; -/** - * DtpLifecycleSupportTest related - * - * @author vzer200 - * @since 1.1.8 - */ -@PropertySource(value = "classpath:/demo-dtp-dev.yml", factory = YamlPropertySourceFactory.class) -@SpringBootTest(classes = DtpLifecycleSupportTest.class) -@EnableAutoConfiguration +@SpringBootTest(classes = DtpLifecycleSupportTest.TestConfig.class) @ComponentScan(basePackages = "org.dromara.dynamictp.test.core.spring") public class DtpLifecycleSupportTest { @@ -51,62 +46,54 @@ public class DtpLifecycleSupportTest { @BeforeEach public void setUp() { - dtpExecutor = (DtpExecutor) DtpRegistry.getExecutor("dtpExecutor1"); - if (dtpExecutor == null) { - throw new RuntimeException("dtpExecutor1 not found!"); + Executor executor = DtpRegistry.getExecutor("dtpExecutor1"); + if (executor instanceof DtpExecutor) { + dtpExecutor = Mockito.spy((DtpExecutor) executor); + } else { + throw new RuntimeException("dtpExecutor1 is not of type DtpExecutor!"); } executorWrapper = new ExecutorWrapper(dtpExecutor); } @Test public void testInitialize() { - int initialCorePoolSize = dtpExecutor.getCorePoolSize(); - int initialMaxPoolSize = dtpExecutor.getMaximumPoolSize(); - - DtpLifecycleSupport.initialize(executorWrapper); - - Assertions.assertEquals(initialCorePoolSize, dtpExecutor.getCorePoolSize()); - Assertions.assertEquals(initialMaxPoolSize, dtpExecutor.getMaximumPoolSize()); - Assertions.assertTrue(dtpExecutor.isNotifyEnabled()); - } + try (MockedStatic awareManagerMockedStatic = Mockito.mockStatic(AwareManager.class)) { + awareManagerMockedStatic.when(() -> AwareManager.register(Mockito.any(ExecutorWrapper.class))) + .thenAnswer(invocation -> null); + try (MockedStatic notifyHelperMockedStatic = Mockito.mockStatic(NotifyHelper.class)) { + notifyHelperMockedStatic.when(() -> NotifyHelper.initNotify((DtpExecutor) executorWrapper.getExecutor())) + .thenAnswer(invocation -> null); - @Test - public void testDestroy() throws InterruptedException { - DtpLifecycleSupport.initialize(executorWrapper); + DtpLifecycleSupport.initialize(executorWrapper); - DtpLifecycleSupport.destroy(executorWrapper); + // 验证初始化 + Mockito.verify(dtpExecutor).initialize(); + awareManagerMockedStatic.verify(() -> AwareManager.register(executorWrapper)); + notifyHelperMockedStatic.verify(() -> NotifyHelper.initNotify((DtpExecutor) executorWrapper.getExecutor())); - Assertions.assertTrue(dtpExecutor.isShutdown()); - Assertions.assertTrue(dtpExecutor.awaitTermination(1, TimeUnit.SECONDS)); - } + // 预启动核心线程的验证 + if (dtpExecutor.isPreStartAllCoreThreads()) { + Mockito.verify(dtpExecutor).prestartAllCoreThreads(); + } - @Test - public void testRejectHandlerEnhancement() { - // 手动创建一个小容量的线程池 - DtpExecutor smallExecutor = new DtpExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<>(1)); - - smallExecutor.execute(() -> { - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); } - }); + } + } - smallExecutor.execute(() -> { - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); + @Configuration + @EnableAutoConfiguration + @ComponentScan(basePackages = "org.dromara.dynamictp.test.core.spring") + @PropertySource(value = "classpath:/demo-dtp-dev.yml", factory = YamlPropertySourceFactory.class) + public static class TestConfig { + @Bean + public DtpExecutor dtpExecutor() { + // 从 DtpRegistry 获取并确保类型正确 + Executor executor = DtpRegistry.getExecutor("dtpExecutor1"); + if (executor instanceof DtpExecutor) { + return (DtpExecutor) executor; } - }); - - // 第三个任务应该被拒绝,触发拒绝策略 - Assertions.assertThrows(RejectedExecutionException.class, () -> { - smallExecutor.execute(() -> System.out.println("This task should be rejected")); - }); + throw new RuntimeException("dtpExecutor1 is not of type DtpExecutor!"); + } } - - } From 54541782a175ac2ca8b94572b00e7c95071a0e73 Mon Sep 17 00:00:00 2001 From: vzer200 <17338548613@163.com> Date: Sat, 7 Sep 2024 14:31:18 +0800 Subject: [PATCH 097/101] =?UTF-8?q?refactor=EF=BC=9APropertiesBinderTest?= =?UTF-8?q?=E7=AE=80=E5=8C=96=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/spring/PropertiesBinderTest.java | 22 ++----------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/PropertiesBinderTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/PropertiesBinderTest.java index d98ab9bf9..98e0f1903 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/PropertiesBinderTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/spring/PropertiesBinderTest.java @@ -20,23 +20,21 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; -import org.dromara.dynamictp.common.em.CollectorTypeEnum; import org.dromara.dynamictp.common.properties.DtpProperties; import org.dromara.dynamictp.core.support.BinderHelper; import org.dromara.dynamictp.spring.EnableDynamicTp; import org.dromara.dynamictp.spring.YamlPropertySourceFactory; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.AbstractEnvironment; -import java.lang.reflect.Field; import java.util.List; import java.util.Map; -import sun.misc.Unsafe; /** * PropertiesBinderTest related @@ -49,6 +47,7 @@ @SpringBootTest(classes = PropertiesBinderTest.class) @EnableAutoConfiguration @EnableDynamicTp +@TestInstance(TestInstance.Lifecycle.PER_CLASS) // 使用同一个实例运行所有测试 class PropertiesBinderTest { @Autowired @@ -57,23 +56,6 @@ class PropertiesBinderTest { @Test void testBindDtpPropertiesWithMap() throws Exception { try { - // 获取Unsafe实例 - Field theUnsafe = Unsafe.class.getDeclaredField("theUnsafe"); - theUnsafe.setAccessible(true); - Unsafe unsafe = (Unsafe) theUnsafe.get(null); - - // 获取DtpProperties类的私有内部类Holder - Class holderClass = Class.forName("org.dromara.dynamictp.common.properties.DtpProperties$Holder"); - Field instanceField = holderClass.getDeclaredField("INSTANCE"); - instanceField.setAccessible(true); - // 创建新的DtpProperties实例 - DtpProperties newDtpProperties = (DtpProperties) unsafe.allocateInstance(DtpProperties.class); - // 手动初始化字段 - newDtpProperties.setCollectorTypes(Lists.newArrayList(CollectorTypeEnum.MICROMETER.name())); - // 使用Unsafe重置单例实例 - unsafe.putObjectVolatile(holderClass, - unsafe.staticFieldOffset(instanceField), newDtpProperties); - Map properties = Maps.newHashMap(); properties.put("spring.dynamic.tp.enabled", false); properties.put("spring.dynamic.tp.collectorTypes", Lists.newArrayList("LOGGING")); From 0eab22a36a026316bad2847d919f654ead53ca02 Mon Sep 17 00:00:00 2001 From: vzer200 <17338548613@163.com> Date: Sun, 8 Sep 2024 14:16:46 +0800 Subject: [PATCH 098/101] =?UTF-8?q?refactor=EF=BC=9A=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E6=9C=80=E6=96=B0=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/dynamictp/core/DtpRegistry.java | 38 ++++++++++++------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java b/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java index 71b8af6a1..2cf6b9f95 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java +++ b/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java @@ -24,6 +24,7 @@ import com.google.common.eventbus.Subscribe; import lombok.extern.slf4j.Slf4j; import lombok.val; +import lombok.var; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.dromara.dynamictp.common.entity.DtpExecutorProps; @@ -169,18 +170,20 @@ public static void refresh(DtpProperties dtpProperties) { log.debug("DynamicTp refresh, empty thread pool properties."); return; } - dtpProperties.getExecutors().forEach(p -> { - if (StringUtils.isBlank(p.getThreadPoolName())) { - log.warn("DynamicTp refresh, thread pool name must not be blank, executorProps: {}", p); - return; - } - ExecutorWrapper executorWrapper = EXECUTOR_REGISTRY.get(p.getThreadPoolName()); - if (Objects.nonNull(executorWrapper)) { - refresh(executorWrapper, p); - return; - } - log.warn("DynamicTp refresh, cannot find specified executor, name: {}.", p.getThreadPoolName()); - }); + dtpProperties.getExecutors().forEach(DtpRegistry::refresh); + } + + public static void refresh(DtpExecutorProps props) { + if (Objects.isNull(props) || StringUtils.isBlank(props.getThreadPoolName())) { + log.warn("DynamicTp refresh, thread pool name must not be blank, executorProps: {}", props); + return; + } + ExecutorWrapper executorWrapper = EXECUTOR_REGISTRY.get(props.getThreadPoolName()); + if (Objects.nonNull(executorWrapper)) { + refresh(executorWrapper, props); + return; + } + log.warn("DynamicTp refresh, cannot find specified executor, name: {}.", props.getThreadPoolName()); } private static void refresh(ExecutorWrapper executorWrapper, DtpExecutorProps props) { @@ -332,14 +335,21 @@ private static void updateQueueProps(ExecutorAdapter executor, DtpExecutorPro @Subscribe public void onContextRefreshedEvent(CustomContextRefreshedEvent event) { + var executors = dtpProperties.getExecutors(); Set remoteExecutors = Collections.emptySet(); - if (CollectionUtils.isNotEmpty(dtpProperties.getExecutors())) { - remoteExecutors = dtpProperties.getExecutors().stream() + if (CollectionUtils.isNotEmpty(executors)) { + remoteExecutors = executors.stream() .map(DtpExecutorProps::getThreadPoolName) .collect(Collectors.toSet()); } val registeredExecutors = Sets.newHashSet(EXECUTOR_REGISTRY.keySet()); val localExecutors = CollectionUtils.subtract(registeredExecutors, remoteExecutors); + + // refresh just for non-dtp executors + executors = executors.stream().filter(e -> !e.isDtp()).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(executors)) { + executors.forEach(DtpRegistry::refresh); + } log.info("DtpRegistry has been initialized, remote executors: {}, local executors: {}", remoteExecutors, localExecutors); } From 57d812e8cb10bea94cfe6ee6ce2d35d3738b1bac Mon Sep 17 00:00:00 2001 From: vzer200 <17338548613@163.com> Date: Sun, 8 Sep 2024 14:36:59 +0800 Subject: [PATCH 099/101] =?UTF-8?q?refactor=EF=BC=9A=E4=BF=AE=E6=94=B9vers?= =?UTF-8?q?ion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/test-configcenter/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test-configcenter/pom.xml b/test/test-configcenter/pom.xml index a1db9ce1d..a27e61bda 100644 --- a/test/test-configcenter/pom.xml +++ b/test/test-configcenter/pom.xml @@ -58,7 +58,7 @@ org.dromara.dynamictp dynamic-tp-spring - 1.1.8-beta + ${revision} compile From 0864e1c6214818f007a2ec50f91f905888e98357 Mon Sep 17 00:00:00 2001 From: vzer200 <17338548613@163.com> Date: Thu, 12 Sep 2024 11:26:56 +0800 Subject: [PATCH 100/101] =?UTF-8?q?refactor=EF=BC=9A=E5=90=88=E5=B9=B6DtpB?= =?UTF-8?q?annerPrinter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/dynamictp/core/support/DtpBannerPrinter.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java b/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java index a5fc7c829..4a85a0295 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java +++ b/core/src/main/java/org/dromara/dynamictp/core/support/DtpBannerPrinter.java @@ -35,7 +35,13 @@ public class DtpBannerPrinter { private static final String NAME = " :: Dynamic Thread Pool :: "; + private static final String SITE = " :: https://dynamictp.cn ::"; + + private static final String GITHUB_REPO = " :: https://github.com/dromara/dynamic-tp ::"; + + private static final String GITEE_REPO = " :: https://gitee.com/dromara/dynamic-tp ::"; + private static final String BANNER = "\n" + "| __ \\ (_) |__ __| \n" + "| | | |_ _ _ __ __ _ _ __ ___ _ ___| |_ __ \n" + @@ -70,7 +76,8 @@ public void onBannerPrintEvent(CustomContextRefreshedEvent event) { public static void printBanner() { boolean enable = Boolean.parseBoolean(ContextManagerHelper.getEnvironmentProperty(DynamicTpConst.BANNER_ENABLED_PROP, "true")); if (enable) { - log.info(BANNER + "\n" + NAME + "\n :: " + VersionUtil.getVersion() + " :: \n" + SITE + "\n"); + log.info(BANNER + "\n" + NAME + "\n :: {} :: \n" + SITE + "\n" + GITHUB_REPO + "\n" + GITEE_REPO, + VersionUtil.getVersion()); } } } From 09e1dab1da698416e61f8939438756f5adaa43b7 Mon Sep 17 00:00:00 2001 From: vzer200 <17338548613@163.com> Date: Thu, 12 Sep 2024 11:29:15 +0800 Subject: [PATCH 101/101] =?UTF-8?q?refactor=EF=BC=9A=E5=90=88=E5=B9=B6DtpR?= =?UTF-8?q?egistry?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dromara/dynamictp/core/DtpRegistry.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java b/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java index 2cf6b9f95..169babd25 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java +++ b/core/src/main/java/org/dromara/dynamictp/core/DtpRegistry.java @@ -48,15 +48,12 @@ import org.dromara.dynamictp.core.support.task.wrapper.TaskWrappers; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; +import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Executor; import java.util.stream.Collectors; +import static java.util.stream.Collectors.toList; import static org.dromara.dynamictp.common.constant.DynamicTpConst.M_1; import static org.dromara.dynamictp.common.constant.DynamicTpConst.PROPERTIES_CHANGE_SHOW_STYLE; @@ -335,7 +332,7 @@ private static void updateQueueProps(ExecutorAdapter executor, DtpExecutorPro @Subscribe public void onContextRefreshedEvent(CustomContextRefreshedEvent event) { - var executors = dtpProperties.getExecutors(); + val executors = Optional.ofNullable(dtpProperties.getExecutors()).orElse(Collections.emptyList()); Set remoteExecutors = Collections.emptySet(); if (CollectionUtils.isNotEmpty(executors)) { remoteExecutors = executors.stream() @@ -346,9 +343,9 @@ public void onContextRefreshedEvent(CustomContextRefreshedEvent event) { val localExecutors = CollectionUtils.subtract(registeredExecutors, remoteExecutors); // refresh just for non-dtp executors - executors = executors.stream().filter(e -> !e.isDtp()).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(executors)) { - executors.forEach(DtpRegistry::refresh); + val nonDtpExecutors = executors.stream().filter(e -> !e.isDtp()).collect(toList()); + if (CollectionUtils.isNotEmpty(nonDtpExecutors)) { + nonDtpExecutors.forEach(DtpRegistry::refresh); } log.info("DtpRegistry has been initialized, remote executors: {}, local executors: {}", remoteExecutors, localExecutors);