Revert the bugfix changes and split them into issue #1134.

pull/1133/head
yanrongzhen 3 years ago
parent 5a9a16d1e4
commit aee8f5326c

@ -18,29 +18,22 @@
package cn.hippo4j.adapter.web;
import cn.hippo4j.common.config.ApplicationContextHolder;
import io.undertow.Undertow;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.web.context.WebServerApplicationContext;
import org.springframework.boot.web.server.WebServer;
import org.springframework.context.ApplicationContext;
import org.springframework.util.ReflectionUtils;
import java.lang.reflect.Field;
import java.util.concurrent.Executor;
/**
* Default WebThreadPoolService abstract class,
* reuses common capabilities for web container operations.
*/
@Slf4j
public abstract class DefaultAbstractWebThreadPoolService extends AbstractWebThreadPoolService {
public DefaultAbstractWebThreadPoolService(IWebThreadPoolHandlerSupport support) {
super(support);
}
private static final String STARTED_FIELD_NAME = "started";
/**
* Get the internal abstract method of the web container thread pool,
* to be implemented by subclasses.
@ -60,19 +53,6 @@ public abstract class DefaultAbstractWebThreadPoolService extends AbstractWebThr
return getWebServer().getPort();
}
@Override
public boolean isContainerStarted() {
try {
WebServer container = getWebServer();
Field field = ReflectionUtils.findField(WebServer.class, STARTED_FIELD_NAME);
ReflectionUtils.makeAccessible(field);
return (boolean) ReflectionUtils.getField(field, container);
} catch (Throwable th) {
log.error("Failed to get isStarted flag.", th);
return false;
}
}
/**
* Get the thread pool object of the current web container based on the WebServer.
* @param webServer current Web-Server.

@ -30,11 +30,6 @@ import java.util.concurrent.Executor;
*/
public interface WebThreadPoolService {
/**
* Determine if the web container has started.
*/
boolean isContainerStarted();
/**
* Get web thread pool.
*

@ -20,25 +20,18 @@ package cn.hippo4j.config.springboot1x.starter.web;
import cn.hippo4j.adapter.web.AbstractWebThreadPoolService;
import cn.hippo4j.adapter.web.IWebThreadPoolHandlerSupport;
import cn.hippo4j.common.config.ApplicationContextHolder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.embedded.EmbeddedServletContainer;
import org.springframework.boot.context.embedded.EmbeddedWebApplicationContext;
import org.springframework.util.ReflectionUtils;
import java.lang.reflect.Field;
/**
* Abstract class for adapting WebThreadPoolService to Spring 1.x version.
*/
@Slf4j
public abstract class AbstractWebThreadPoolService1x extends AbstractWebThreadPoolService {
public AbstractWebThreadPoolService1x(IWebThreadPoolHandlerSupport support) {
super(support);
}
private static final String STARTED_FIELD_NAME = "started";
/**
* Get the embedded Servlet container from the Spring application context.
*/
@ -53,17 +46,4 @@ public abstract class AbstractWebThreadPoolService1x extends AbstractWebThreadPo
public Integer getPort() {
return getContainer().getPort();
}
@Override
public boolean isContainerStarted() {
try {
EmbeddedServletContainer container = getContainer();
Field field = ReflectionUtils.findField(EmbeddedServletContainer.class, STARTED_FIELD_NAME);
ReflectionUtils.makeAccessible(field);
return (boolean) ReflectionUtils.getField(field, container);
} catch (Throwable th) {
log.error("Failed to get isStarted flag.", th);
return false;
}
}
}

@ -25,8 +25,6 @@ import cn.hippo4j.common.model.ThreadPoolParameter;
import cn.hippo4j.common.model.ThreadPoolParameterInfo;
import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties;
import cn.hippo4j.config.springboot.starter.config.WebExecutorProperties;
import cn.hippo4j.message.enums.NotifyTypeEnum;
import cn.hippo4j.message.request.ChangeParameterNotifyRequest;
import cn.hippo4j.message.request.WebChangeParameterNotifyRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.annotation.Order;
@ -79,8 +77,7 @@ public class WebExecutorRefreshListener extends AbstractRefreshListener<WebExecu
}
if (!Objects.equals(beforeParameter.getCoreSize(), nowParameter.getCoreSize())
|| !Objects.equals(beforeParameter.getMaxSize(), nowParameter.getMaxSize())
|| !Objects.equals(beforeParameter.getKeepAliveTime(), nowParameter.getKeepAliveTime())
|| !webThreadPoolService.isContainerStarted()) {
|| !Objects.equals(beforeParameter.getKeepAliveTime(), nowParameter.getKeepAliveTime())) {
webThreadPoolService.updateWebThreadPool(nowParameter);
configChange.sendPoolConfigChange(buildChangeRequest(beforeParameter, nowParameter, webThreadPoolService));
}

Loading…
Cancel
Save