Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

增加项目单测 #470

Open
wants to merge 116 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 102 commits
Commits
Show all changes
116 commits
Select commit Hold shift + click to select a range
e1622bf
refactor:DynamicTp生命周期的设计以及spring模块的基础设计
vzer200 Jun 30, 2024
eff32e0
refactor:DynamicTp迁移spring模块且使用spi机制解决依赖循环
vzer200 Jul 5, 2024
63bef8d
refactor:DynamicTp迁移spring模块且使用spi机制解决依赖循环
vzer200 Jul 5, 2024
fbb7487
refactor:DynamicTp迁移spring模块且使用spi机制解决依赖循环
vzer200 Jul 8, 2024
8bfd03a
refactor:DynamicTp迁移spring模块,创建顶层接口使用spi修改现有体系,并抽象environment对象为Object
vzer200 Jul 11, 2024
d03733f
refactor:DynamicTp迁移spring模块,替换监听机制
vzer200 Jul 16, 2024
aba05f6
refactor:DynamicTp迁移spring模块,修改ApplicationContextHolder相关类
vzer200 Jul 16, 2024
ca1b3cc
refactor:替换Spring Assert为Guava的Preconditions
vzer200 Jul 16, 2024
bfe8fda
refactor:替换Spring ReflectionUtils为ApacheCommons Lang的FieldUtils
vzer200 Jul 16, 2024
9af03b2
refactor:替换Spring ReflectionUtils为ApacheCommons Lang的FieldUtils
vzer200 Jul 16, 2024
44560fa
refactor:替换Spring NonNull为lombok的NonNull
vzer200 Jul 16, 2024
a7f4e36
refactor:替换Spring CollectionUtils为Apache Commons Collections
vzer200 Jul 16, 2024
636a79b
refactor:替换Spring BeanUtils为Apache Commons BeanUtils
vzer200 Jul 16, 2024
00fc046
refactor:替换Spring BeanUtils为Apache Commons BeanUtils
vzer200 Jul 16, 2024
3a97955
refactor:替换Spring Assert为Guava的Preconditions
vzer200 Jul 16, 2024
2e79723
refactor:替换Spring Yaml为SnakeYAML
vzer200 Jul 17, 2024
e65d96c
refactor:删除AsyncTaskExecutor接口
vzer200 Jul 19, 2024
733ce41
refactor:删除AsyncTaskExecutor接口
vzer200 Jul 19, 2024
98506d0
refactor:删除AsyncTaskExecutor接口
vzer200 Jul 19, 2024
7545020
refactor:删除AsyncTaskExecutor接口
vzer200 Jul 19, 2024
052ff31
refactor:基本完成spring模块化
vzer200 Jul 19, 2024
6095049
refactor:IllegalAccessException移除
vzer200 Jul 19, 2024
7741f09
refactor:IllegalAccessException移除
vzer200 Jul 19, 2024
1a1654e
refactor:IllegalAccessException移除
vzer200 Jul 19, 2024
dfaf69a
refactor:IllegalAccessException移除
vzer200 Jul 19, 2024
2c6f0de
refactor:修复
vzer200 Jul 19, 2024
5a145f6
refactor:改用EventObject
vzer200 Jul 24, 2024
49632df
refactor:dynamic-tp-spring版本定义修改
vzer200 Jul 24, 2024
3fd9c61
refactor:dynamic-tp-spring版本定义修改
vzer200 Jul 24, 2024
f3eb49c
refactor:误删修改
vzer200 Jul 24, 2024
0b7e22c
refactor:改用EventObject
vzer200 Jul 24, 2024
7b5aac6
refactor:包名移除ex错误
vzer200 Jul 24, 2024
0118115
refactor:修改日志路径错误
vzer200 Jul 24, 2024
dbb0515
refactor:提前返回减少if
vzer200 Jul 24, 2024
6f06bca
refactor:直接调用父类
vzer200 Jul 24, 2024
9b556fc
refactor:修复大小写问题
vzer200 Jul 24, 2024
fb91e7e
refactor:添加开源协议头
vzer200 Jul 25, 2024
1bb3b4a
refactor:添加适配器将DtpLifecycle和spring生命周期联系起来
vzer200 Jul 25, 2024
e285c8d
refactor:添加适配器将DtpLifecycle和spring生命周期联系起来
vzer200 Jul 25, 2024
1e0bf9a
refactor:将spring包改名
vzer200 Jul 25, 2024
687f996
refactor:删除无用依赖
vzer200 Jul 25, 2024
222953f
refactor:import*优化
vzer200 Jul 25, 2024
afd7d32
refactor:使用cglib的BeanCopier替换spring的BeanUtils
vzer200 Jul 25, 2024
259d4f3
refactor:ContextManagerHelper的service Loader优化
vzer200 Jul 25, 2024
895fd01
refactor:checkstyle格式优化
vzer200 Jul 25, 2024
f9c02f4
refactor:接口添加注释
vzer200 Jul 25, 2024
88da2a6
refactor:记录日志
vzer200 Jul 26, 2024
6725580
refactor:事件类进行单独划分
vzer200 Jul 26, 2024
cd8a682
refactor:Yaml移除spring特性并测试通过
vzer200 Jul 26, 2024
82fe4c8
refactor:修复事件总线的同步问题
vzer200 Jul 26, 2024
14df348
refactor:checkstyle格式优化
vzer200 Jul 26, 2024
debed60
refactor:bannerPrinter利用事件机制解耦
vzer200 Jul 26, 2024
2f1b65f
refactor:优化依赖
vzer200 Jul 26, 2024
ec126cf
refactor:优化测试用例
vzer200 Jul 26, 2024
e5e3dd7
refactor:优化初始化null问题
vzer200 Jul 26, 2024
e0cddc5
refactor:合并
vzer200 Jul 27, 2024
2ac59f2
Merge branch 'master' into master
vzer200 Jul 27, 2024
52ef223
refactor:添加启动类注解
vzer200 Jul 30, 2024
0d26d94
refactor:修改开源文件头
vzer200 Jul 30, 2024
632497e
refactor:修改开源文件头
vzer200 Jul 30, 2024
7beacd6
refactor:添加类注释
vzer200 Jul 30, 2024
5d74400
Merge remote-tracking branch 'origin/master'
vzer200 Jul 30, 2024
e2727a9
refactor:依赖优化
vzer200 Jul 30, 2024
e1532f3
refactor:抽取 BeanCopierUtils 工具类
vzer200 Jul 30, 2024
20bd7d3
refactor:优化import
vzer200 Jul 31, 2024
23948b6
refactor:优化事件机制
vzer200 Jul 31, 2024
6eef105
Merge remote-tracking branch 'origin/master'
vzer200 Aug 1, 2024
66fe078
refactor:替换Spring ReflectionUtils
vzer200 Aug 5, 2024
d1ba7cc
refactor:替换Spring CollectionUtils为Apache Commons Collections
vzer200 Aug 5, 2024
23a5201
refactor:Checkstyle
vzer200 Aug 5, 2024
afb86b7
refactor:创建自定义事件类替换EventObject
vzer200 Aug 6, 2024
81cef4c
refactor:优化BannerPrint
vzer200 Aug 7, 2024
334d4eb
refactor:自定义事件类问题修复
vzer200 Aug 7, 2024
8a569ea
refactor:修复自定义事件类,避免重复注册
vzer200 Aug 7, 2024
f174019
refactor:修改Spring事件机制
vzer200 Aug 8, 2024
568294a
Merge remote-tracking branch 'origin/master'
vzer200 Aug 8, 2024
99ec5d1
refactor:修改冲突
vzer200 Aug 8, 2024
9e43ad4
refactor:解决冲突
vzer200 Aug 8, 2024
ee9d4ab
Merge branch 'master' into master
vzer200 Aug 8, 2024
668a512
refactor:Checkstyle
vzer200 Aug 14, 2024
9285a3f
refactor:优化部分方法
vzer200 Aug 14, 2024
3e60c9c
refactor:修复问题
vzer200 Aug 14, 2024
0c32fc8
refactor:解耦OnceApplicationContextEventListener
vzer200 Aug 14, 2024
995804e
refactor:合并分支解决冲突
vzer200 Aug 15, 2024
9b6c926
Merge remote-tracking branch 'origin/master'
vzer200 Aug 15, 2024
e0e8549
refactor:优化
vzer200 Aug 22, 2024
62ea4cd
refactor:改用MethodUtils
vzer200 Aug 22, 2024
9737656
refactor:抽取DtpEvent
vzer200 Aug 22, 2024
b5caa47
refactor:修改注释错误
vzer200 Aug 22, 2024
a5fc7f3
refactor:Checkstyle
vzer200 Aug 22, 2024
b3c774e
Merge remote-tracking branch 'origin/master'
vzer200 Aug 22, 2024
bd7bdea
refactor:增加工具类测试
vzer200 Aug 26, 2024
dd55dd4
refactor:修改配置绑定测试类
vzer200 Aug 26, 2024
0d7715d
refactor:增加Adapter测试类
vzer200 Aug 26, 2024
47ffe52
refactor:增加AbstractRefresherTest测试
vzer200 Aug 26, 2024
cf97ab6
refactor:合并
vzer200 Aug 26, 2024
e2c6b08
refactor:修改AbstractRefresherTest
vzer200 Aug 26, 2024
87f7c2b
refactor:增加注释
vzer200 Aug 26, 2024
e40e654
Merge remote-tracking branch 'origin/master'
vzer200 Aug 27, 2024
8abb480
refactor:增加单测
vzer200 Aug 31, 2024
947ad6b
refactor:增加单测
vzer200 Aug 31, 2024
ed9ef9c
Merge remote-tracking branch 'origin/text'
vzer200 Sep 3, 2024
9f95d9b
refactor:增加SpringContextHolderTest单测
vzer200 Sep 5, 2024
aff5100
refactor:去掉指定版本
vzer200 Sep 6, 2024
1e3044a
refactor:DtpLifecycleSpringAdapterTest修改
vzer200 Sep 6, 2024
c7b00b4
refactor:DtpLifecycleSupportTest修改
vzer200 Sep 6, 2024
ed7662e
Merge remote-tracking branch 'origin/text'
vzer200 Sep 6, 2024
5454178
refactor:PropertiesBinderTest简化逻辑
vzer200 Sep 7, 2024
082d597
Merge remote-tracking branch 'origin/master'
vzer200 Sep 8, 2024
0eab22a
refactor:合并最新更改
vzer200 Sep 8, 2024
57d812e
refactor:修改version
vzer200 Sep 8, 2024
d89595e
Merge remote-tracking branch 'origin/text'
vzer200 Sep 8, 2024
2991915
Merge remote-tracking branch 'origin/master'
vzer200 Sep 12, 2024
0864e1c
refactor:合并DtpBannerPrinter
vzer200 Sep 12, 2024
09e1dab
refactor:合并DtpRegistry
vzer200 Sep 12, 2024
db31b47
Merge remote-tracking branch 'origin/text'
vzer200 Sep 14, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion adapter/adapter-common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,4 @@
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>dynamic-tp-adapter-common</artifactId>

</project>
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -31,9 +32,10 @@
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.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;
Expand All @@ -44,7 +46,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.springframework.context.event.ContextRefreshedEvent;

import java.util.Collections;
import java.util.List;
Expand All @@ -67,16 +68,20 @@
* @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();

protected final Map<String, ExecutorWrapper> executors = Maps.newHashMap();

@Override
protected void onContextRefreshedEvent(ContextRefreshedEvent event) {
public AbstractDtpAdapter() {
EventBusManager.register(this);
}

@Subscribe
public synchronized void onContextRefreshedEvent(CustomContextRefreshedEvent event) {
try {
DtpProperties dtpProperties = ApplicationContextHolder.getBean(DtpProperties.class);
DtpProperties dtpProperties = ContextManagerHelper.getBean(DtpProperties.class);
initialize();
afterInitialize();
refresh(dtpProperties);
Expand Down Expand Up @@ -163,12 +168,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) {
Expand Down Expand Up @@ -220,3 +221,4 @@ private void doRefreshPoolSize(ExecutorAdapter<?> executor, TpExecutorProps prop
}
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,19 @@

package org.dromara.dynamictp.adapter.common;

import org.dromara.dynamictp.common.spring.ApplicationContextHolder;
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.EventBusManager;
import org.dromara.dynamictp.common.properties.DtpProperties;
import org.dromara.dynamictp.core.handler.CollectorHandler;
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 org.apache.commons.collections4.MapUtils;
import java.util.EventObject;

import static org.dromara.dynamictp.common.constant.DynamicTpConst.SCHEDULE_NOTIFY_ITEMS;

Expand All @@ -42,62 +40,37 @@
* @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;
public DtpAdapterListener() {
EventBusManager.register(this);
}

@Override
public void onApplicationEvent(@NonNull ApplicationEvent event) {
@Subscribe
public void handleRefreshedEvent(EventObject event) {
try {
if (event instanceof RefreshEvent) {
doRefresh(((RefreshEvent) event).getDtpProperties());
RefreshEvent refreshEvent = (RefreshEvent) event;
doRefresh(refreshEvent.getDtpProperties());
} else if (event instanceof CollectEvent) {
doCollect(((CollectEvent) event).getDtpProperties());
CollectEvent collectEvent = (CollectEvent) event;
doCollect(collectEvent.getDtpProperties());
} else if (event instanceof AlarmCheckEvent) {
doAlarmCheck(((AlarmCheckEvent) event).getDtpProperties());
AlarmCheckEvent alarmCheckEvent = (AlarmCheckEvent) event;
doAlarmCheck(alarmCheckEvent.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);
if (CollectionUtils.isEmpty(handlerMap)) {
val handlerMap = ContextManagerHelper.getBeansOfType(DtpAdapter.class);
if (MapUtils.isEmpty(handlerMap)) {
return;
}
handlerMap.forEach((k, v) -> v.getMultiPoolStats().forEach(ps ->
Expand All @@ -109,8 +82,8 @@ protected void doCollect(DtpProperties dtpProperties) {
* @param dtpProperties dtpProperties
*/
protected void doRefresh(DtpProperties dtpProperties) {
val handlerMap = ApplicationContextHolder.getBeansOfType(DtpAdapter.class);
if (CollectionUtils.isEmpty(handlerMap)) {
val handlerMap = ContextManagerHelper.getBeansOfType(DtpAdapter.class);
if (MapUtils.isEmpty(handlerMap)) {
return;
}
handlerMap.forEach((k, v) -> v.refresh(dtpProperties));
Expand All @@ -121,8 +94,8 @@ protected void doRefresh(DtpProperties dtpProperties) {
* @param dtpProperties dtpProperties
*/
protected void doAlarmCheck(DtpProperties dtpProperties) {
val handlerMap = ApplicationContextHolder.getBeansOfType(DtpAdapter.class);
if (CollectionUtils.isEmpty(handlerMap)) {
val handlerMap = ContextManagerHelper.getBeansOfType(DtpAdapter.class);
if (MapUtils.isEmpty(handlerMap)) {
return;
}
handlerMap.forEach((k, v) -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
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.common.spring.ApplicationContextHolder;
import org.dromara.dynamictp.jvmti.JVMTI;
import org.springframework.beans.factory.InitializingBean;

Expand Down Expand Up @@ -59,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);
initialize();
afterInitialize();
refresh(dtpProperties);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,13 @@
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.spring.ApplicationContextHolder;
import org.dromara.dynamictp.common.util.ReflectionUtil;
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;
Expand All @@ -57,7 +58,7 @@
*/
@Slf4j
@SuppressWarnings("all")
public class ApacheDubboDtpAdapter extends AbstractDtpAdapter {
public class ApacheDubboDtpAdapter extends AbstractDtpAdapter implements ApplicationListener<ApplicationEvent> {

private static final String TP_PREFIX = "dubboTp";

Expand All @@ -69,7 +70,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();
afterInitialize();
refresh(dtpProperties);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
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.manager.ContextManagerHelper;
import org.dromara.dynamictp.common.util.ReflectionUtil;

import java.util.Objects;
Expand Down Expand Up @@ -70,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);
}
Expand All @@ -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);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@
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.spring.ApplicationContextHolder;
import org.dromara.dynamictp.common.util.StreamUtil;
import org.dromara.dynamictp.core.support.ExecutorWrapper;

Expand Down Expand Up @@ -81,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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@
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.spring.ApplicationContextHolder;
import org.dromara.dynamictp.common.util.ReflectionUtil;

import java.util.List;
Expand Down Expand Up @@ -65,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;
Expand All @@ -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);
}
});
});
Expand Down
Loading