From ce754f43c791c78bf0381a05d651713167244226 Mon Sep 17 00:00:00 2001 From: yanhom Date: Wed, 20 Dec 2023 23:24:58 +0800 Subject: [PATCH 1/2] move notifier base package and plugin package to common module --- common/pom.xml | 9 +++++++ .../dynamictp/common/entity/NotifyItem.java | 2 +- .../notifier}/AbstractHttpNotifier.java | 2 +- .../common/notifier}/AbstractNotifier.java | 24 +------------------ .../common/notifier}/DingNotifier.java | 4 ++-- .../common/notifier}/LarkNotifier.java | 2 +- .../dynamictp/common/notifier}/Notifier.java | 2 +- .../common/notifier}/WechatNotifier.java | 2 +- .../common}/plugin/DtpInterceptor.java | 2 +- .../common}/plugin/DtpInterceptorProxy.java | 2 +- .../plugin/DtpInterceptorProxyFactory.java | 2 +- .../plugin/DtpInterceptorRegistry.java | 2 +- .../common}/plugin/DtpIntercepts.java | 2 +- .../common}/plugin/DtpInvocation.java | 2 +- .../common}/plugin/DtpSignature.java | 2 +- .../common}/plugin/PluginException.java | 2 +- core/pom.xml | 10 -------- .../core/handler/NotifierHandler.java | 6 ++--- .../core/notifier/AbstractDtpNotifier.java | 18 +++++++++++--- .../core/notifier/DtpDingNotifier.java | 2 +- .../core/notifier/DtpLarkNotifier.java | 2 +- .../core/notifier/DtpWechatNotifier.java | 2 +- .../core/spring/DtpPostProcessor.java | 2 +- .../example/notifier/SmsNotifier.java | 4 ++-- .../example/notifier/SmsNotifier.java | 4 ++-- .../example/notifier/SmsNotifier.java | 4 ++-- .../example/notifier/SmsNotifier.java | 4 ++-- .../example/notifier/SmsNotifier.java | 4 ++-- .../interceptor/TestExecuteInterceptor.java | 8 +++---- .../example/notifier/SmsNotifier.java | 4 ++-- ...ra.dynamictp.common.plugin.DtpInterceptor} | 0 .../interceptor/TestExecuteInterceptor.java | 8 +++---- .../example/notifier/SmsNotifier.java | 4 ++-- ...ra.dynamictp.common.plugin.DtpInterceptor} | 0 .../example/notifier/SmsNotifier.java | 4 ++-- .../example/notifier/SmsNotifier.java | 4 ++-- .../extension/notify/email/EmailNotifier.java | 4 ++-- .../notify/yunzhijia/YunZhiJiaNotifier.java | 2 +- .../util/ExtensionServiceLoaderTest.java | 2 +- .../common/util/TestInterceptorLoader.java | 8 +++---- ...ra.dynamictp.common.plugin.DtpInterceptor} | 0 .../core/notify/AbstractDtpNotifierTest.java | 2 +- .../core/notify/DtpWechatNotifierTest.java | 2 +- .../test/core/thread/AInterceptorTest.java | 8 +++---- .../test/core/thread/InterceptTest.java | 2 +- 45 files changed, 88 insertions(+), 99 deletions(-) rename {core/src/main/java/org/dromara/dynamictp/core/notifier/base => common/src/main/java/org/dromara/dynamictp/common/notifier}/AbstractHttpNotifier.java (97%) rename {core/src/main/java/org/dromara/dynamictp/core/notifier/base => common/src/main/java/org/dromara/dynamictp/common/notifier}/AbstractNotifier.java (63%) rename {core/src/main/java/org/dromara/dynamictp/core/notifier/base => common/src/main/java/org/dromara/dynamictp/common/notifier}/DingNotifier.java (95%) rename {core/src/main/java/org/dromara/dynamictp/core/notifier/base => common/src/main/java/org/dromara/dynamictp/common/notifier}/LarkNotifier.java (98%) rename {core/src/main/java/org/dromara/dynamictp/core/notifier/base => common/src/main/java/org/dromara/dynamictp/common/notifier}/Notifier.java (96%) rename {core/src/main/java/org/dromara/dynamictp/core/notifier/base => common/src/main/java/org/dromara/dynamictp/common/notifier}/WechatNotifier.java (97%) rename {core/src/main/java/org/dromara/dynamictp/core => common/src/main/java/org/dromara/dynamictp/common}/plugin/DtpInterceptor.java (97%) rename {core/src/main/java/org/dromara/dynamictp/core => common/src/main/java/org/dromara/dynamictp/common}/plugin/DtpInterceptorProxy.java (97%) rename {core/src/main/java/org/dromara/dynamictp/core => common/src/main/java/org/dromara/dynamictp/common}/plugin/DtpInterceptorProxyFactory.java (98%) rename {core/src/main/java/org/dromara/dynamictp/core => common/src/main/java/org/dromara/dynamictp/common}/plugin/DtpInterceptorRegistry.java (98%) rename {core/src/main/java/org/dromara/dynamictp/core => common/src/main/java/org/dromara/dynamictp/common}/plugin/DtpIntercepts.java (96%) rename {core/src/main/java/org/dromara/dynamictp/core => common/src/main/java/org/dromara/dynamictp/common}/plugin/DtpInvocation.java (97%) rename {core/src/main/java/org/dromara/dynamictp/core => common/src/main/java/org/dromara/dynamictp/common}/plugin/DtpSignature.java (96%) rename {core/src/main/java/org/dromara/dynamictp/core => common/src/main/java/org/dromara/dynamictp/common}/plugin/PluginException.java (96%) rename example/example-nacos/src/main/resources/META-INF/services/{org.dromara.dynamictp.core.plugin.DtpInterceptor => org.dromara.dynamictp.common.plugin.DtpInterceptor} (100%) rename example/example-polaris-cloud/src/main/resources/META-INF/services/{org.dromara.dynamictp.core.plugin.DtpInterceptor => org.dromara.dynamictp.common.plugin.DtpInterceptor} (100%) rename test/test-common/src/test/resources/META-INF/services/{org.dromara.dynamictp.core.plugin.DtpInterceptor => org.dromara.dynamictp.common.plugin.DtpInterceptor} (100%) diff --git a/common/pom.xml b/common/pom.xml index 6908bad20..d3b3951b9 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -51,5 +51,14 @@ true + + cn.hutool + hutool-http + + + + cglib + cglib + diff --git a/common/src/main/java/org/dromara/dynamictp/common/entity/NotifyItem.java b/common/src/main/java/org/dromara/dynamictp/common/entity/NotifyItem.java index 11ed552a7..2bc6ef961 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/entity/NotifyItem.java +++ b/common/src/main/java/org/dromara/dynamictp/common/entity/NotifyItem.java @@ -69,7 +69,7 @@ public class NotifyItem { private int clusterLimit = 1; /** - * Receivers, split by , If NotifyPlatform.receivers have a value, they will be overwritten by the thread pool alarm + * Receivers, split by, If NotifyPlatform.receivers have a value, they will be overwritten by the thread pool alarm */ private String receivers; diff --git a/core/src/main/java/org/dromara/dynamictp/core/notifier/base/AbstractHttpNotifier.java b/common/src/main/java/org/dromara/dynamictp/common/notifier/AbstractHttpNotifier.java similarity index 97% rename from core/src/main/java/org/dromara/dynamictp/core/notifier/base/AbstractHttpNotifier.java rename to common/src/main/java/org/dromara/dynamictp/common/notifier/AbstractHttpNotifier.java index 1ece9c3b0..b7580f9bc 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/notifier/base/AbstractHttpNotifier.java +++ b/common/src/main/java/org/dromara/dynamictp/common/notifier/AbstractHttpNotifier.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.core.notifier.base; +package org.dromara.dynamictp.common.notifier; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; diff --git a/core/src/main/java/org/dromara/dynamictp/core/notifier/base/AbstractNotifier.java b/common/src/main/java/org/dromara/dynamictp/common/notifier/AbstractNotifier.java similarity index 63% rename from core/src/main/java/org/dromara/dynamictp/core/notifier/base/AbstractNotifier.java rename to common/src/main/java/org/dromara/dynamictp/common/notifier/AbstractNotifier.java index 3f7af1dec..e5f9cca85 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/notifier/base/AbstractNotifier.java +++ b/common/src/main/java/org/dromara/dynamictp/common/notifier/AbstractNotifier.java @@ -15,16 +15,10 @@ * limitations under the License. */ -package org.dromara.dynamictp.core.notifier.base; +package org.dromara.dynamictp.common.notifier; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.dromara.dynamictp.common.entity.NotifyItem; import org.dromara.dynamictp.common.entity.NotifyPlatform; -import org.dromara.dynamictp.core.notifier.context.BaseNotifyCtx; -import org.dromara.dynamictp.core.notifier.context.DtpNotifyCtxHolder; - -import java.util.Optional; /** * AbstractNotifier related @@ -51,20 +45,4 @@ public final void send(NotifyPlatform platform, String content) { * @param content content */ protected abstract void send0(NotifyPlatform platform, String content); - - /** - * Get the notify receivers - * @param platform platform - * @return Receivers - */ - protected String[] getReceivers(NotifyPlatform platform) { - BaseNotifyCtx context = DtpNotifyCtxHolder.get(); - String receivers = Optional.ofNullable(context) - .map(BaseNotifyCtx::getNotifyItem) - .map(NotifyItem::getReceivers) - .orElse(null); - receivers = StringUtils.isBlank(receivers) ? platform.getReceivers() : receivers; - return receivers.split(","); - } - } diff --git a/core/src/main/java/org/dromara/dynamictp/core/notifier/base/DingNotifier.java b/common/src/main/java/org/dromara/dynamictp/common/notifier/DingNotifier.java similarity index 95% rename from core/src/main/java/org/dromara/dynamictp/core/notifier/base/DingNotifier.java rename to common/src/main/java/org/dromara/dynamictp/common/notifier/DingNotifier.java index cebcdb88d..381aff0aa 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/notifier/base/DingNotifier.java +++ b/common/src/main/java/org/dromara/dynamictp/common/notifier/DingNotifier.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.core.notifier.base; +package org.dromara.dynamictp.common.notifier; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; @@ -57,7 +57,7 @@ protected String buildMsgBody(NotifyPlatform platform, String content) { MarkdownReq.At at = new MarkdownReq.At(); - List mobiles = Lists.newArrayList(getReceivers(platform)); + List mobiles = Lists.newArrayList(platform.getReceivers().split(",")); at.setAtMobiles(mobiles); if (mobiles.contains(ALL) || CollectionUtils.isEmpty(mobiles)) { at.setAtAll(true); diff --git a/core/src/main/java/org/dromara/dynamictp/core/notifier/base/LarkNotifier.java b/common/src/main/java/org/dromara/dynamictp/common/notifier/LarkNotifier.java similarity index 98% rename from core/src/main/java/org/dromara/dynamictp/core/notifier/base/LarkNotifier.java rename to common/src/main/java/org/dromara/dynamictp/common/notifier/LarkNotifier.java index cb17a010c..234620fb9 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/notifier/base/LarkNotifier.java +++ b/common/src/main/java/org/dromara/dynamictp/common/notifier/LarkNotifier.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.core.notifier.base; +package org.dromara.dynamictp.common.notifier; import lombok.extern.slf4j.Slf4j; import lombok.val; diff --git a/core/src/main/java/org/dromara/dynamictp/core/notifier/base/Notifier.java b/common/src/main/java/org/dromara/dynamictp/common/notifier/Notifier.java similarity index 96% rename from core/src/main/java/org/dromara/dynamictp/core/notifier/base/Notifier.java rename to common/src/main/java/org/dromara/dynamictp/common/notifier/Notifier.java index f2754ed45..01f06d81a 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/notifier/base/Notifier.java +++ b/common/src/main/java/org/dromara/dynamictp/common/notifier/Notifier.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.core.notifier.base; +package org.dromara.dynamictp.common.notifier; import org.dromara.dynamictp.common.entity.NotifyPlatform; diff --git a/core/src/main/java/org/dromara/dynamictp/core/notifier/base/WechatNotifier.java b/common/src/main/java/org/dromara/dynamictp/common/notifier/WechatNotifier.java similarity index 97% rename from core/src/main/java/org/dromara/dynamictp/core/notifier/base/WechatNotifier.java rename to common/src/main/java/org/dromara/dynamictp/common/notifier/WechatNotifier.java index 6258a46eb..8d70c71cf 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/notifier/base/WechatNotifier.java +++ b/common/src/main/java/org/dromara/dynamictp/common/notifier/WechatNotifier.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.core.notifier.base; +package org.dromara.dynamictp.common.notifier; import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.common.constant.WechatNotifyConst; diff --git a/core/src/main/java/org/dromara/dynamictp/core/plugin/DtpInterceptor.java b/common/src/main/java/org/dromara/dynamictp/common/plugin/DtpInterceptor.java similarity index 97% rename from core/src/main/java/org/dromara/dynamictp/core/plugin/DtpInterceptor.java rename to common/src/main/java/org/dromara/dynamictp/common/plugin/DtpInterceptor.java index db694b1ca..3c121b1be 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/plugin/DtpInterceptor.java +++ b/common/src/main/java/org/dromara/dynamictp/common/plugin/DtpInterceptor.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.core.plugin; +package org.dromara.dynamictp.common.plugin; /** * @author windsearcher.lq diff --git a/core/src/main/java/org/dromara/dynamictp/core/plugin/DtpInterceptorProxy.java b/common/src/main/java/org/dromara/dynamictp/common/plugin/DtpInterceptorProxy.java similarity index 97% rename from core/src/main/java/org/dromara/dynamictp/core/plugin/DtpInterceptorProxy.java rename to common/src/main/java/org/dromara/dynamictp/common/plugin/DtpInterceptorProxy.java index 779d046f3..40b3f614b 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/plugin/DtpInterceptorProxy.java +++ b/common/src/main/java/org/dromara/dynamictp/common/plugin/DtpInterceptorProxy.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.core.plugin; +package org.dromara.dynamictp.common.plugin; import net.sf.cglib.proxy.MethodInterceptor; import net.sf.cglib.proxy.MethodProxy; diff --git a/core/src/main/java/org/dromara/dynamictp/core/plugin/DtpInterceptorProxyFactory.java b/common/src/main/java/org/dromara/dynamictp/common/plugin/DtpInterceptorProxyFactory.java similarity index 98% rename from core/src/main/java/org/dromara/dynamictp/core/plugin/DtpInterceptorProxyFactory.java rename to common/src/main/java/org/dromara/dynamictp/common/plugin/DtpInterceptorProxyFactory.java index b2351a526..64a62da53 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/plugin/DtpInterceptorProxyFactory.java +++ b/common/src/main/java/org/dromara/dynamictp/common/plugin/DtpInterceptorProxyFactory.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.core.plugin; +package org.dromara.dynamictp.common.plugin; import com.google.common.collect.Maps; import net.sf.cglib.proxy.Enhancer; diff --git a/core/src/main/java/org/dromara/dynamictp/core/plugin/DtpInterceptorRegistry.java b/common/src/main/java/org/dromara/dynamictp/common/plugin/DtpInterceptorRegistry.java similarity index 98% rename from core/src/main/java/org/dromara/dynamictp/core/plugin/DtpInterceptorRegistry.java rename to common/src/main/java/org/dromara/dynamictp/common/plugin/DtpInterceptorRegistry.java index c9fbd7b17..377f97455 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/plugin/DtpInterceptorRegistry.java +++ b/common/src/main/java/org/dromara/dynamictp/common/plugin/DtpInterceptorRegistry.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.core.plugin; +package org.dromara.dynamictp.common.plugin; import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; diff --git a/core/src/main/java/org/dromara/dynamictp/core/plugin/DtpIntercepts.java b/common/src/main/java/org/dromara/dynamictp/common/plugin/DtpIntercepts.java similarity index 96% rename from core/src/main/java/org/dromara/dynamictp/core/plugin/DtpIntercepts.java rename to common/src/main/java/org/dromara/dynamictp/common/plugin/DtpIntercepts.java index 948b1faee..27b20895f 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/plugin/DtpIntercepts.java +++ b/common/src/main/java/org/dromara/dynamictp/common/plugin/DtpIntercepts.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.core.plugin; +package org.dromara.dynamictp.common.plugin; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/core/src/main/java/org/dromara/dynamictp/core/plugin/DtpInvocation.java b/common/src/main/java/org/dromara/dynamictp/common/plugin/DtpInvocation.java similarity index 97% rename from core/src/main/java/org/dromara/dynamictp/core/plugin/DtpInvocation.java rename to common/src/main/java/org/dromara/dynamictp/common/plugin/DtpInvocation.java index 1022ca10b..59233e910 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/plugin/DtpInvocation.java +++ b/common/src/main/java/org/dromara/dynamictp/common/plugin/DtpInvocation.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.core.plugin; +package org.dromara.dynamictp.common.plugin; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; diff --git a/core/src/main/java/org/dromara/dynamictp/core/plugin/DtpSignature.java b/common/src/main/java/org/dromara/dynamictp/common/plugin/DtpSignature.java similarity index 96% rename from core/src/main/java/org/dromara/dynamictp/core/plugin/DtpSignature.java rename to common/src/main/java/org/dromara/dynamictp/common/plugin/DtpSignature.java index d4da8a834..0ac5f31f5 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/plugin/DtpSignature.java +++ b/common/src/main/java/org/dromara/dynamictp/common/plugin/DtpSignature.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.core.plugin; +package org.dromara.dynamictp.common.plugin; /** * The annotation that indicate the method signature. diff --git a/core/src/main/java/org/dromara/dynamictp/core/plugin/PluginException.java b/common/src/main/java/org/dromara/dynamictp/common/plugin/PluginException.java similarity index 96% rename from core/src/main/java/org/dromara/dynamictp/core/plugin/PluginException.java rename to common/src/main/java/org/dromara/dynamictp/common/plugin/PluginException.java index 7d5fc2009..495b144c7 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/plugin/PluginException.java +++ b/common/src/main/java/org/dromara/dynamictp/common/plugin/PluginException.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.dromara.dynamictp.core.plugin; +package org.dromara.dynamictp.common.plugin; import org.dromara.dynamictp.common.ex.DtpException; diff --git a/core/pom.xml b/core/pom.xml index b480e32b4..849f112b2 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -52,16 +52,6 @@ hutool-core - - cn.hutool - hutool-http - - - - cglib - cglib - - io.dropwizard.metrics metrics-core diff --git a/core/src/main/java/org/dromara/dynamictp/core/handler/NotifierHandler.java b/core/src/main/java/org/dromara/dynamictp/core/handler/NotifierHandler.java index 9d7936ca2..4b6f73ce7 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/handler/NotifierHandler.java +++ b/core/src/main/java/org/dromara/dynamictp/core/handler/NotifierHandler.java @@ -26,9 +26,9 @@ import org.dromara.dynamictp.core.notifier.DtpLarkNotifier; import org.dromara.dynamictp.core.notifier.DtpNotifier; import org.dromara.dynamictp.core.notifier.DtpWechatNotifier; -import org.dromara.dynamictp.core.notifier.base.DingNotifier; -import org.dromara.dynamictp.core.notifier.base.LarkNotifier; -import org.dromara.dynamictp.core.notifier.base.WechatNotifier; +import org.dromara.dynamictp.common.notifier.DingNotifier; +import org.dromara.dynamictp.common.notifier.LarkNotifier; +import org.dromara.dynamictp.common.notifier.WechatNotifier; import org.dromara.dynamictp.core.notifier.context.DtpNotifyCtxHolder; import org.dromara.dynamictp.core.notifier.manager.NotifyHelper; diff --git a/core/src/main/java/org/dromara/dynamictp/core/notifier/AbstractDtpNotifier.java b/core/src/main/java/org/dromara/dynamictp/core/notifier/AbstractDtpNotifier.java index 8c9b735cd..dea14289e 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/notifier/AbstractDtpNotifier.java +++ b/core/src/main/java/org/dromara/dynamictp/core/notifier/AbstractDtpNotifier.java @@ -27,16 +27,17 @@ 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.notifier.Notifier; import org.dromara.dynamictp.common.util.CommonUtil; import org.dromara.dynamictp.common.util.DateUtil; import org.dromara.dynamictp.core.notifier.alarm.AlarmCounter; -import org.dromara.dynamictp.core.notifier.base.Notifier; import org.dromara.dynamictp.core.notifier.context.AlarmCtx; import org.dromara.dynamictp.core.notifier.context.BaseNotifyCtx; import org.dromara.dynamictp.core.notifier.context.DtpNotifyCtxHolder; import org.dromara.dynamictp.core.support.ExecutorWrapper; import org.dromara.dynamictp.core.system.SystemMetricManager; import org.slf4j.MDC; +import org.springframework.beans.BeanUtils; import java.lang.reflect.Field; import java.util.List; @@ -74,7 +75,7 @@ public void sendChangeMsg(NotifyPlatform notifyPlatform, TpMainFields oldFields, log.debug("Notice content is empty, ignore send notice message."); return; } - notifier.send(notifyPlatform, content); + notifier.send(newTargetPlatform(notifyPlatform), content); } @Override @@ -84,7 +85,7 @@ public void sendAlarmMsg(NotifyPlatform notifyPlatform, NotifyItemEnum notifyIte log.debug("Alarm content is empty, ignore send alarm message."); return; } - notifier.send(notifyPlatform, content); + notifier.send(newTargetPlatform(notifyPlatform), content); } protected String buildAlarmContent(NotifyPlatform platform, NotifyItemEnum notifyItemEnum) { @@ -179,6 +180,17 @@ protected String formatReceivers(String receives) { return Joiner.on(", @").join(receivers); } + private NotifyPlatform newTargetPlatform(NotifyPlatform platform) { + NotifyPlatform targetPlatform = new NotifyPlatform(); + BeanUtils.copyProperties(platform, targetPlatform); + + BaseNotifyCtx context = DtpNotifyCtxHolder.get(); + NotifyItem item = context.getNotifyItem(); + String receives = StringUtils.isBlank(item.getReceivers()) ? platform.getReceivers() : item.getReceivers(); + targetPlatform.setReceivers(receives); + return targetPlatform; + } + protected String populatePoolName(ExecutorWrapper executorWrapper) { String poolAlisaName = executorWrapper.getThreadPoolAliasName(); if (StringUtils.isBlank(poolAlisaName)) { diff --git a/core/src/main/java/org/dromara/dynamictp/core/notifier/DtpDingNotifier.java b/core/src/main/java/org/dromara/dynamictp/core/notifier/DtpDingNotifier.java index 29269dc6d..46a321b95 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/notifier/DtpDingNotifier.java +++ b/core/src/main/java/org/dromara/dynamictp/core/notifier/DtpDingNotifier.java @@ -19,7 +19,7 @@ import org.dromara.dynamictp.common.constant.DingNotifyConst; import org.dromara.dynamictp.common.em.NotifyPlatformEnum; -import org.dromara.dynamictp.core.notifier.base.Notifier; +import org.dromara.dynamictp.common.notifier.Notifier; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; diff --git a/core/src/main/java/org/dromara/dynamictp/core/notifier/DtpLarkNotifier.java b/core/src/main/java/org/dromara/dynamictp/core/notifier/DtpLarkNotifier.java index 42dd51aba..eca352621 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/notifier/DtpLarkNotifier.java +++ b/core/src/main/java/org/dromara/dynamictp/core/notifier/DtpLarkNotifier.java @@ -23,7 +23,7 @@ import org.apache.commons.lang3.tuple.Pair; import org.dromara.dynamictp.common.constant.LarkNotifyConst; import org.dromara.dynamictp.common.em.NotifyPlatformEnum; -import org.dromara.dynamictp.core.notifier.base.Notifier; +import org.dromara.dynamictp.common.notifier.Notifier; import java.util.Arrays; import java.util.stream.Collectors; diff --git a/core/src/main/java/org/dromara/dynamictp/core/notifier/DtpWechatNotifier.java b/core/src/main/java/org/dromara/dynamictp/core/notifier/DtpWechatNotifier.java index 84c5a2486..1faa1ceaa 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/notifier/DtpWechatNotifier.java +++ b/core/src/main/java/org/dromara/dynamictp/core/notifier/DtpWechatNotifier.java @@ -20,7 +20,7 @@ import org.apache.commons.lang3.StringUtils; import org.dromara.dynamictp.common.constant.WechatNotifyConst; import org.dromara.dynamictp.common.em.NotifyPlatformEnum; -import org.dromara.dynamictp.core.notifier.base.Notifier; +import org.dromara.dynamictp.common.notifier.Notifier; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/DtpPostProcessor.java b/core/src/main/java/org/dromara/dynamictp/core/spring/DtpPostProcessor.java index a63875cd9..6d0470a41 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/spring/DtpPostProcessor.java +++ b/core/src/main/java/org/dromara/dynamictp/core/spring/DtpPostProcessor.java @@ -26,7 +26,7 @@ import org.dromara.dynamictp.core.executor.DtpExecutor; import org.dromara.dynamictp.core.executor.eager.EagerDtpExecutor; import org.dromara.dynamictp.core.executor.eager.TaskQueue; -import org.dromara.dynamictp.core.plugin.DtpInterceptorRegistry; +import org.dromara.dynamictp.common.plugin.DtpInterceptorRegistry; import org.dromara.dynamictp.core.support.DynamicTp; import org.dromara.dynamictp.core.support.ExecutorWrapper; import org.dromara.dynamictp.core.support.ScheduledThreadPoolExecutorProxy; diff --git a/example/example-apollo/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java b/example/example-apollo/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java index e4a4d8d5e..29c512124 100644 --- a/example/example-apollo/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java +++ b/example/example-apollo/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.example.notifier; import org.dromara.dynamictp.common.entity.NotifyPlatform; -import org.dromara.dynamictp.core.notifier.base.AbstractNotifier; +import org.dromara.dynamictp.common.notifier.AbstractNotifier; /** * SmsNotifier related @@ -41,7 +41,7 @@ public String platform() { @Override protected void send0(NotifyPlatform platform, String content) { - String[] receivers = getReceivers(platform); + String[] receivers = platform.getReceivers().split(","); smsClient.send(platform.getSecret(), receivers, content); } } diff --git a/example/example-consul-cloud/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java b/example/example-consul-cloud/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java index e4a4d8d5e..29c512124 100644 --- a/example/example-consul-cloud/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java +++ b/example/example-consul-cloud/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.example.notifier; import org.dromara.dynamictp.common.entity.NotifyPlatform; -import org.dromara.dynamictp.core.notifier.base.AbstractNotifier; +import org.dromara.dynamictp.common.notifier.AbstractNotifier; /** * SmsNotifier related @@ -41,7 +41,7 @@ public String platform() { @Override protected void send0(NotifyPlatform platform, String content) { - String[] receivers = getReceivers(platform); + String[] receivers = platform.getReceivers().split(","); smsClient.send(platform.getSecret(), receivers, content); } } diff --git a/example/example-etcd/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java b/example/example-etcd/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java index e4a4d8d5e..29c512124 100644 --- a/example/example-etcd/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java +++ b/example/example-etcd/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.example.notifier; import org.dromara.dynamictp.common.entity.NotifyPlatform; -import org.dromara.dynamictp.core.notifier.base.AbstractNotifier; +import org.dromara.dynamictp.common.notifier.AbstractNotifier; /** * SmsNotifier related @@ -41,7 +41,7 @@ public String platform() { @Override protected void send0(NotifyPlatform platform, String content) { - String[] receivers = getReceivers(platform); + String[] receivers = platform.getReceivers().split(","); smsClient.send(platform.getSecret(), receivers, content); } } diff --git a/example/example-huawei-cloud/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java b/example/example-huawei-cloud/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java index e4a4d8d5e..29c512124 100644 --- a/example/example-huawei-cloud/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java +++ b/example/example-huawei-cloud/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.example.notifier; import org.dromara.dynamictp.common.entity.NotifyPlatform; -import org.dromara.dynamictp.core.notifier.base.AbstractNotifier; +import org.dromara.dynamictp.common.notifier.AbstractNotifier; /** * SmsNotifier related @@ -41,7 +41,7 @@ public String platform() { @Override protected void send0(NotifyPlatform platform, String content) { - String[] receivers = getReceivers(platform); + String[] receivers = platform.getReceivers().split(","); smsClient.send(platform.getSecret(), receivers, content); } } diff --git a/example/example-nacos-cloud/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java b/example/example-nacos-cloud/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java index e4a4d8d5e..29c512124 100644 --- a/example/example-nacos-cloud/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java +++ b/example/example-nacos-cloud/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.example.notifier; import org.dromara.dynamictp.common.entity.NotifyPlatform; -import org.dromara.dynamictp.core.notifier.base.AbstractNotifier; +import org.dromara.dynamictp.common.notifier.AbstractNotifier; /** * SmsNotifier related @@ -41,7 +41,7 @@ public String platform() { @Override protected void send0(NotifyPlatform platform, String content) { - String[] receivers = getReceivers(platform); + String[] receivers = platform.getReceivers().split(","); smsClient.send(platform.getSecret(), receivers, content); } } diff --git a/example/example-nacos/src/main/java/org/dromara/dynamictp/example/interceptor/TestExecuteInterceptor.java b/example/example-nacos/src/main/java/org/dromara/dynamictp/example/interceptor/TestExecuteInterceptor.java index 3c8cc25f8..6d44a9e07 100644 --- a/example/example-nacos/src/main/java/org/dromara/dynamictp/example/interceptor/TestExecuteInterceptor.java +++ b/example/example-nacos/src/main/java/org/dromara/dynamictp/example/interceptor/TestExecuteInterceptor.java @@ -18,10 +18,10 @@ package org.dromara.dynamictp.example.interceptor; import lombok.extern.slf4j.Slf4j; -import org.dromara.dynamictp.core.plugin.DtpInterceptor; -import org.dromara.dynamictp.core.plugin.DtpIntercepts; -import org.dromara.dynamictp.core.plugin.DtpInvocation; -import org.dromara.dynamictp.core.plugin.DtpSignature; +import org.dromara.dynamictp.common.plugin.DtpInterceptor; +import org.dromara.dynamictp.common.plugin.DtpIntercepts; +import org.dromara.dynamictp.common.plugin.DtpInvocation; +import org.dromara.dynamictp.common.plugin.DtpSignature; import org.dromara.dynamictp.core.executor.DtpExecutor; import org.dromara.dynamictp.core.executor.ScheduledDtpExecutor; diff --git a/example/example-nacos/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java b/example/example-nacos/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java index e4a4d8d5e..29c512124 100644 --- a/example/example-nacos/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java +++ b/example/example-nacos/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.example.notifier; import org.dromara.dynamictp.common.entity.NotifyPlatform; -import org.dromara.dynamictp.core.notifier.base.AbstractNotifier; +import org.dromara.dynamictp.common.notifier.AbstractNotifier; /** * SmsNotifier related @@ -41,7 +41,7 @@ public String platform() { @Override protected void send0(NotifyPlatform platform, String content) { - String[] receivers = getReceivers(platform); + String[] receivers = platform.getReceivers().split(","); smsClient.send(platform.getSecret(), receivers, content); } } diff --git a/example/example-nacos/src/main/resources/META-INF/services/org.dromara.dynamictp.core.plugin.DtpInterceptor b/example/example-nacos/src/main/resources/META-INF/services/org.dromara.dynamictp.common.plugin.DtpInterceptor similarity index 100% rename from example/example-nacos/src/main/resources/META-INF/services/org.dromara.dynamictp.core.plugin.DtpInterceptor rename to example/example-nacos/src/main/resources/META-INF/services/org.dromara.dynamictp.common.plugin.DtpInterceptor diff --git a/example/example-polaris-cloud/src/main/java/org/dromara/dynamictp/example/interceptor/TestExecuteInterceptor.java b/example/example-polaris-cloud/src/main/java/org/dromara/dynamictp/example/interceptor/TestExecuteInterceptor.java index 6a8bd5bff..bdeea6eda 100644 --- a/example/example-polaris-cloud/src/main/java/org/dromara/dynamictp/example/interceptor/TestExecuteInterceptor.java +++ b/example/example-polaris-cloud/src/main/java/org/dromara/dynamictp/example/interceptor/TestExecuteInterceptor.java @@ -18,10 +18,10 @@ package org.dromara.dynamictp.example.interceptor; import lombok.extern.slf4j.Slf4j; -import org.dromara.dynamictp.core.plugin.DtpInterceptor; -import org.dromara.dynamictp.core.plugin.DtpIntercepts; -import org.dromara.dynamictp.core.plugin.DtpInvocation; -import org.dromara.dynamictp.core.plugin.DtpSignature; +import org.dromara.dynamictp.common.plugin.DtpInterceptor; +import org.dromara.dynamictp.common.plugin.DtpIntercepts; +import org.dromara.dynamictp.common.plugin.DtpInvocation; +import org.dromara.dynamictp.common.plugin.DtpSignature; import org.dromara.dynamictp.core.executor.DtpExecutor; import org.dromara.dynamictp.core.executor.ScheduledDtpExecutor; diff --git a/example/example-polaris-cloud/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java b/example/example-polaris-cloud/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java index e4a4d8d5e..29c512124 100644 --- a/example/example-polaris-cloud/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java +++ b/example/example-polaris-cloud/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.example.notifier; import org.dromara.dynamictp.common.entity.NotifyPlatform; -import org.dromara.dynamictp.core.notifier.base.AbstractNotifier; +import org.dromara.dynamictp.common.notifier.AbstractNotifier; /** * SmsNotifier related @@ -41,7 +41,7 @@ public String platform() { @Override protected void send0(NotifyPlatform platform, String content) { - String[] receivers = getReceivers(platform); + String[] receivers = platform.getReceivers().split(","); smsClient.send(platform.getSecret(), receivers, content); } } diff --git a/example/example-polaris-cloud/src/main/resources/META-INF/services/org.dromara.dynamictp.core.plugin.DtpInterceptor b/example/example-polaris-cloud/src/main/resources/META-INF/services/org.dromara.dynamictp.common.plugin.DtpInterceptor similarity index 100% rename from example/example-polaris-cloud/src/main/resources/META-INF/services/org.dromara.dynamictp.core.plugin.DtpInterceptor rename to example/example-polaris-cloud/src/main/resources/META-INF/services/org.dromara.dynamictp.common.plugin.DtpInterceptor diff --git a/example/example-zookeeper-cloud/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java b/example/example-zookeeper-cloud/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java index e4a4d8d5e..29c512124 100644 --- a/example/example-zookeeper-cloud/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java +++ b/example/example-zookeeper-cloud/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.example.notifier; import org.dromara.dynamictp.common.entity.NotifyPlatform; -import org.dromara.dynamictp.core.notifier.base.AbstractNotifier; +import org.dromara.dynamictp.common.notifier.AbstractNotifier; /** * SmsNotifier related @@ -41,7 +41,7 @@ public String platform() { @Override protected void send0(NotifyPlatform platform, String content) { - String[] receivers = getReceivers(platform); + String[] receivers = platform.getReceivers().split(","); smsClient.send(platform.getSecret(), receivers, content); } } diff --git a/example/example-zookeeper/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java b/example/example-zookeeper/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java index e4a4d8d5e..29c512124 100644 --- a/example/example-zookeeper/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java +++ b/example/example-zookeeper/src/main/java/org/dromara/dynamictp/example/notifier/SmsNotifier.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.example.notifier; import org.dromara.dynamictp.common.entity.NotifyPlatform; -import org.dromara.dynamictp.core.notifier.base.AbstractNotifier; +import org.dromara.dynamictp.common.notifier.AbstractNotifier; /** * SmsNotifier related @@ -41,7 +41,7 @@ public String platform() { @Override protected void send0(NotifyPlatform platform, String content) { - String[] receivers = getReceivers(platform); + String[] receivers = platform.getReceivers().split(","); smsClient.send(platform.getSecret(), receivers, content); } } diff --git a/extension/extension-notify-email/src/main/java/org/dromara/dynamictp/extension/notify/email/EmailNotifier.java b/extension/extension-notify-email/src/main/java/org/dromara/dynamictp/extension/notify/email/EmailNotifier.java index fe97292a8..820c92bd8 100644 --- a/extension/extension-notify-email/src/main/java/org/dromara/dynamictp/extension/notify/email/EmailNotifier.java +++ b/extension/extension-notify-email/src/main/java/org/dromara/dynamictp/extension/notify/email/EmailNotifier.java @@ -21,7 +21,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.common.em.NotifyPlatformEnum; import org.dromara.dynamictp.common.entity.NotifyPlatform; -import org.dromara.dynamictp.core.notifier.base.AbstractNotifier; +import org.dromara.dynamictp.common.notifier.AbstractNotifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; @@ -65,7 +65,7 @@ protected void send0(NotifyPlatform platform, String content) { MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8"); messageHelper.setSubject(title); messageHelper.setFrom(sendFrom); - messageHelper.setTo(getReceivers(platform)); + messageHelper.setTo(platform.getReceivers()); messageHelper.setSentDate(new Date()); messageHelper.setText(content, true); javaMailSender.send(mimeMessage); diff --git a/extension/extension-notify-yunzhijia/src/main/java/org/dromara/dynamictp/extension/notify/yunzhijia/YunZhiJiaNotifier.java b/extension/extension-notify-yunzhijia/src/main/java/org/dromara/dynamictp/extension/notify/yunzhijia/YunZhiJiaNotifier.java index 08c33aba1..d15efaf2e 100644 --- a/extension/extension-notify-yunzhijia/src/main/java/org/dromara/dynamictp/extension/notify/yunzhijia/YunZhiJiaNotifier.java +++ b/extension/extension-notify-yunzhijia/src/main/java/org/dromara/dynamictp/extension/notify/yunzhijia/YunZhiJiaNotifier.java @@ -20,7 +20,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.dynamictp.common.entity.NotifyPlatform; import org.dromara.dynamictp.common.util.JsonUtil; -import org.dromara.dynamictp.core.notifier.base.AbstractHttpNotifier; +import org.dromara.dynamictp.common.notifier.AbstractHttpNotifier; import java.util.HashMap; import java.util.Map; diff --git a/test/test-common/src/test/java/org/dromara/dynamictp/test/common/util/ExtensionServiceLoaderTest.java b/test/test-common/src/test/java/org/dromara/dynamictp/test/common/util/ExtensionServiceLoaderTest.java index 3281f6a49..90f9e0ecd 100644 --- a/test/test-common/src/test/java/org/dromara/dynamictp/test/common/util/ExtensionServiceLoaderTest.java +++ b/test/test-common/src/test/java/org/dromara/dynamictp/test/common/util/ExtensionServiceLoaderTest.java @@ -18,7 +18,7 @@ package org.dromara.dynamictp.test.common.util; import org.dromara.dynamictp.common.util.ExtensionServiceLoader; -import org.dromara.dynamictp.core.plugin.DtpInterceptor; +import org.dromara.dynamictp.common.plugin.DtpInterceptor; import org.junit.Test; import org.junit.jupiter.api.Assertions; diff --git a/test/test-common/src/test/java/org/dromara/dynamictp/test/common/util/TestInterceptorLoader.java b/test/test-common/src/test/java/org/dromara/dynamictp/test/common/util/TestInterceptorLoader.java index 2a24012e6..6bc650add 100644 --- a/test/test-common/src/test/java/org/dromara/dynamictp/test/common/util/TestInterceptorLoader.java +++ b/test/test-common/src/test/java/org/dromara/dynamictp/test/common/util/TestInterceptorLoader.java @@ -18,10 +18,10 @@ package org.dromara.dynamictp.test.common.util; import lombok.extern.slf4j.Slf4j; -import org.dromara.dynamictp.core.plugin.DtpInterceptor; -import org.dromara.dynamictp.core.plugin.DtpIntercepts; -import org.dromara.dynamictp.core.plugin.DtpInvocation; -import org.dromara.dynamictp.core.plugin.DtpSignature; +import org.dromara.dynamictp.common.plugin.DtpInterceptor; +import org.dromara.dynamictp.common.plugin.DtpIntercepts; +import org.dromara.dynamictp.common.plugin.DtpInvocation; +import org.dromara.dynamictp.common.plugin.DtpSignature; import org.dromara.dynamictp.core.executor.DtpExecutor; @DtpIntercepts( diff --git a/test/test-common/src/test/resources/META-INF/services/org.dromara.dynamictp.core.plugin.DtpInterceptor b/test/test-common/src/test/resources/META-INF/services/org.dromara.dynamictp.common.plugin.DtpInterceptor similarity index 100% rename from test/test-common/src/test/resources/META-INF/services/org.dromara.dynamictp.core.plugin.DtpInterceptor rename to test/test-common/src/test/resources/META-INF/services/org.dromara.dynamictp.common.plugin.DtpInterceptor 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 eb9069ddb..4485603d9 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 @@ -27,7 +27,7 @@ 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.core.notifier.base.Notifier; +import org.dromara.dynamictp.common.notifier.Notifier; import org.dromara.dynamictp.core.notifier.context.AlarmCtx; import org.dromara.dynamictp.core.notifier.context.DtpNotifyCtxHolder; import org.dromara.dynamictp.core.notifier.context.NoticeCtx; diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/DtpWechatNotifierTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/DtpWechatNotifierTest.java index 95e1e70cc..8b16791e0 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/DtpWechatNotifierTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/notify/DtpWechatNotifierTest.java @@ -28,7 +28,7 @@ import org.dromara.dynamictp.common.entity.NotifyPlatform; import org.dromara.dynamictp.common.util.DateUtil; import org.dromara.dynamictp.common.util.JsonUtil; -import org.dromara.dynamictp.core.notifier.base.WechatNotifier; +import org.dromara.dynamictp.common.notifier.WechatNotifier; import org.junit.Test; import java.util.Arrays; diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/AInterceptorTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/AInterceptorTest.java index ed53081c1..ad617eb3c 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/AInterceptorTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/AInterceptorTest.java @@ -18,10 +18,10 @@ package org.dromara.dynamictp.test.core.thread; import lombok.extern.slf4j.Slf4j; -import org.dromara.dynamictp.core.plugin.DtpInterceptor; -import org.dromara.dynamictp.core.plugin.DtpIntercepts; -import org.dromara.dynamictp.core.plugin.DtpInvocation; -import org.dromara.dynamictp.core.plugin.DtpSignature; +import org.dromara.dynamictp.common.plugin.DtpInterceptor; +import org.dromara.dynamictp.common.plugin.DtpIntercepts; +import org.dromara.dynamictp.common.plugin.DtpInvocation; +import org.dromara.dynamictp.common.plugin.DtpSignature; /** * @author hanli diff --git a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/InterceptTest.java b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/InterceptTest.java index 45952fde1..ca366388e 100644 --- a/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/InterceptTest.java +++ b/test/test-core/src/test/java/org/dromara/dynamictp/test/core/thread/InterceptTest.java @@ -19,7 +19,7 @@ import cn.hutool.core.collection.CollectionUtil; import lombok.extern.slf4j.Slf4j; -import org.dromara.dynamictp.core.plugin.DtpInterceptorRegistry; +import org.dromara.dynamictp.common.plugin.DtpInterceptorRegistry; import org.junit.Test; /** From c9d8c8a84db5cce4b0476af0f1e4d737f4978294 Mon Sep 17 00:00:00 2001 From: yanhom Date: Wed, 20 Dec 2023 23:43:23 +0800 Subject: [PATCH 2/2] [ISSUE #374] try interrupt current thread when task run timeout --- .../common/constant/DynamicTpConst.java | 2 ++ .../common/entity/TpExecutorProps.java | 5 +++++ .../core/aware/TaskTimeoutAware.java | 1 + .../dynamictp/core/executor/DtpExecutor.java | 21 +++++++++++++++---- .../spring/DtpBeanDefinitionRegistrar.java | 8 ++++--- .../core/support/ThreadPoolBuilder.java | 11 ++++++++++ .../core/support/ThreadPoolStatProvider.java | 14 +++++++++++++ .../core/timer/RunTimeoutTimerTask.java | 3 +++ 8 files changed, 58 insertions(+), 7 deletions(-) diff --git a/common/src/main/java/org/dromara/dynamictp/common/constant/DynamicTpConst.java b/common/src/main/java/org/dromara/dynamictp/common/constant/DynamicTpConst.java index 7cfbd15d6..d1cbcbf9f 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/constant/DynamicTpConst.java +++ b/common/src/main/java/org/dromara/dynamictp/common/constant/DynamicTpConst.java @@ -75,6 +75,8 @@ private DynamicTpConst() { } public static final String RUN_TIMEOUT = "runTimeout"; + public static final String TRY_INTERRUPT_WHEN_TIMEOUT = "tryInterrupt"; + public static final String QUEUE_TIMEOUT = "queueTimeout"; public static final String TASK_WRAPPERS = "taskWrappers"; diff --git a/common/src/main/java/org/dromara/dynamictp/common/entity/TpExecutorProps.java b/common/src/main/java/org/dromara/dynamictp/common/entity/TpExecutorProps.java index 2bd7389ed..1e21bbc45 100644 --- a/common/src/main/java/org/dromara/dynamictp/common/entity/TpExecutorProps.java +++ b/common/src/main/java/org/dromara/dynamictp/common/entity/TpExecutorProps.java @@ -86,6 +86,11 @@ public class TpExecutorProps { */ private long runTimeout = 0; + /** + * If try interrupt task when timeout. + */ + private boolean tryInterrupt = false; + /** * Task queue wait timeout, unit (ms), just for statistics. */ diff --git a/core/src/main/java/org/dromara/dynamictp/core/aware/TaskTimeoutAware.java b/core/src/main/java/org/dromara/dynamictp/core/aware/TaskTimeoutAware.java index 4bb19815d..bce9260aa 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/aware/TaskTimeoutAware.java +++ b/core/src/main/java/org/dromara/dynamictp/core/aware/TaskTimeoutAware.java @@ -53,6 +53,7 @@ protected void refresh(TpExecutorProps props, ThreadPoolStatProvider statProvide if (Objects.nonNull(props)) { statProvider.setRunTimeout(props.getRunTimeout()); statProvider.setQueueTimeout(props.getQueueTimeout()); + statProvider.setTryInterrupt(props.isTryInterrupt()); } } 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 e4f65e6d0..739138a82 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 @@ -116,6 +116,11 @@ public class DtpExecutor extends ThreadPoolExecutor */ private long runTimeout = 0; + /** + * for manual builder thread pools only + */ + private boolean tryInterrupt = false; + /** * for manual builder thread pools only */ @@ -355,22 +360,30 @@ public void setRejectHandlerType(String rejectHandlerType) { this.rejectHandlerType = rejectHandlerType; } + public long getRunTimeout() { + return runTimeout; + } + public void setRunTimeout(long runTimeout) { this.runTimeout = runTimeout; } - public void setQueueTimeout(long queueTimeout) { - this.queueTimeout = queueTimeout; + public boolean isTryInterrupt() { + return tryInterrupt; } - public long getRunTimeout() { - return runTimeout; + public void setTryInterrupt(boolean tryInterrupt) { + this.tryInterrupt = tryInterrupt; } public long getQueueTimeout() { return queueTimeout; } + public void setQueueTimeout(long queueTimeout) { + this.queueTimeout = queueTimeout; + } + public boolean isWaitForTasksToCompleteOnShutdown() { return waitForTasksToCompleteOnShutdown; } diff --git a/core/src/main/java/org/dromara/dynamictp/core/spring/DtpBeanDefinitionRegistrar.java b/core/src/main/java/org/dromara/dynamictp/core/spring/DtpBeanDefinitionRegistrar.java index 5f56727de..30a257c6b 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/spring/DtpBeanDefinitionRegistrar.java +++ b/core/src/main/java/org/dromara/dynamictp/core/spring/DtpBeanDefinitionRegistrar.java @@ -24,12 +24,12 @@ 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.eager.EagerDtpExecutor; +import org.dromara.dynamictp.core.executor.ExecutorType; import org.dromara.dynamictp.core.executor.NamedThreadFactory; +import org.dromara.dynamictp.core.executor.eager.EagerDtpExecutor; +import org.dromara.dynamictp.core.executor.eager.TaskQueue; import org.dromara.dynamictp.core.reject.RejectHandlerGetter; import org.dromara.dynamictp.core.support.BinderHelper; -import org.dromara.dynamictp.core.executor.ExecutorType; -import org.dromara.dynamictp.core.executor.eager.TaskQueue; import org.dromara.dynamictp.core.support.task.wrapper.TaskWrappers; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.context.EnvironmentAware; @@ -55,6 +55,7 @@ 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; @@ -104,6 +105,7 @@ private Map buildPropertyValues(DtpExecutorProps props) { propertyValues.put(REJECT_HANDLER_TYPE, props.getRejectedHandlerType()); propertyValues.put(REJECT_ENHANCED, props.isRejectEnhanced()); propertyValues.put(RUN_TIMEOUT, props.getRunTimeout()); + propertyValues.put(TRY_INTERRUPT_WHEN_TIMEOUT, props.isTryInterrupt()); propertyValues.put(QUEUE_TIMEOUT, props.getQueueTimeout()); val notifyItems = mergeAllNotifyItems(props.getNotifyItems()); propertyValues.put(NOTIFY_ITEMS, notifyItems); 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 fe3a2a386..8e69a2cd9 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 @@ -169,6 +169,11 @@ public class ThreadPoolBuilder { */ private long runTimeout = 0; + /** + * If try interrupt task when timeout. + */ + private boolean tryInterrupt = false; + /** * Task queue wait timeout, unit (ms), just for statistics. */ @@ -355,6 +360,11 @@ public ThreadPoolBuilder runTimeout(long runTimeout) { return this; } + public ThreadPoolBuilder tryInterrupt(boolean tryInterrupt) { + this.tryInterrupt = tryInterrupt; + return this; + } + public ThreadPoolBuilder queueTimeout(long queueTimeout) { this.queueTimeout = queueTimeout; return this; @@ -480,6 +490,7 @@ private DtpExecutor buildDtpExecutor(ThreadPoolBuilder builder) { dtpExecutor.setPreStartAllCoreThreads(builder.preStartAllCoreThreads); dtpExecutor.setRejectEnhanced(builder.rejectEnhanced); dtpExecutor.setRunTimeout(builder.runTimeout); + dtpExecutor.setTryInterrupt(builder.tryInterrupt); dtpExecutor.setQueueTimeout(builder.queueTimeout); dtpExecutor.setTaskWrappers(builder.taskWrappers); dtpExecutor.setNotifyItems(builder.notifyItems); 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 d576996f7..05c782435 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 @@ -48,6 +48,11 @@ public class ThreadPoolStatProvider { */ private long runTimeout = 0; + /** + * Try interrupt task when timeout. + */ + private boolean tryInterrupt = false; + /** * Task queue wait timeout, unit (ms), just for statistics. */ @@ -98,6 +103,7 @@ public static ThreadPoolStatProvider of(ExecutorWrapper executorWrapper) { val dtpExecutor = (DtpExecutor) executorWrapper.getExecutor(); provider.setRunTimeout(dtpExecutor.getRunTimeout()); provider.setQueueTimeout(dtpExecutor.getQueueTimeout()); + provider.setTryInterrupt(dtpExecutor.isTryInterrupt()); } return provider; } @@ -114,6 +120,14 @@ public void setRunTimeout(long runTimeout) { this.runTimeout = runTimeout; } + public boolean isTryInterrupt() { + return tryInterrupt; + } + + public void setTryInterrupt(boolean tryInterrupt) { + this.tryInterrupt = tryInterrupt; + } + public long getQueueTimeout() { return queueTimeout; } diff --git a/core/src/main/java/org/dromara/dynamictp/core/timer/RunTimeoutTimerTask.java b/core/src/main/java/org/dromara/dynamictp/core/timer/RunTimeoutTimerTask.java index f17623224..70d759bce 100644 --- a/core/src/main/java/org/dromara/dynamictp/core/timer/RunTimeoutTimerTask.java +++ b/core/src/main/java/org/dromara/dynamictp/core/timer/RunTimeoutTimerTask.java @@ -58,6 +58,9 @@ protected void doRun() { statProvider.getExecutorWrapper().getExecutor().getQueueCapacity(), executor.getQueue().size(), executor.getQueue().remainingCapacity(), traceToString(thread.getStackTrace())); log.warn(logMsg); + if (statProvider.isTryInterrupt()) { + thread.interrupt(); + } } public String traceToString(StackTraceElement[] trace) {