check the required fields of polaris when the config mode starts (#1470)

* check the required fields of polaris when the config mode starts

* Modify the format of polaris in BootstrapConfigProperties

* Define static constants of polaris in BeforeCheckConfiguration

* Use configuration and constants exist in  PolarisRefresherHandler

* Just consider the properties of BootstrapPropertiesInterface

* Don't throw exception in if else

* Optimize code format in BeforeCheckConfiguration
pull/1498/head
Rain 9 months ago committed by GitHub
parent cf854b3cb3
commit 26212e47cf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -101,4 +101,11 @@ public interface BootstrapPropertiesInterface {
return null;
}
/**
* Get Polaris.
*/
default Map<String, Object> getPolaris() {
return null;
}
}

@ -76,6 +76,11 @@ public class BootstrapConfigProperties implements BootstrapPropertiesInterface {
*/
private Map<String, String> etcd;
/**
* polaris config
*/
private Map<String, Object> polaris;
/**
* Web config
*

@ -71,4 +71,5 @@ public class PolarisRefresherHandler extends AbstractConfigThreadPoolDynamicRefr
return Objects.equals(POLARIS_FILE_TYPE, "yaml") ? configFileService.getConfigYamlFile(namespace, fileGroup, fileName)
: configFileService.getConfigPropertiesFile(namespace, fileGroup, fileName);
}
}

@ -23,6 +23,7 @@ import cn.hippo4j.core.config.ConfigEmptyException;
import cn.hippo4j.threadpool.dynamic.api.BootstrapPropertiesInterface;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.ConfigurableEnvironment;
@ -144,6 +145,39 @@ public class BeforeCheckConfiguration {
}
}
Map<String, Object> polaris = properties.getPolaris();
if (MapUtil.isNotEmpty(polaris)) {
String namespace = polaris.get("namespace").toString();
if (StringUtil.isBlank(namespace)) {
throw new ConfigEmptyException(
"Web server maybe fail to start. The dynamic thread pool polaris namespace is empty.",
"Please check whether the [spring.dynamic.thread-pool.polaris.namespace] configuration is empty or an empty string.");
}
if (!(polaris.get("file") instanceof Map)) {
throw new ConfigEmptyException(
"Web server maybe fail to start. Lack of the dynamic thread pool polaris file configuration.",
"Please check whether the [spring.dynamic.thread-pool.polaris.file.*] configuration is complete.");
}
Map<String, String> polarisFile = (Map<String, String>) polaris.get("file");
String fileGroup = polarisFile.get("group");
if (StringUtil.isBlank(fileGroup)) {
throw new ConfigEmptyException(
"Web server maybe fail to start. The dynamic thread pool polaris file group is empty.",
"Please check whether the [spring.dynamic.thread-pool.polaris.file.group] configuration is empty or an empty string.");
}
String fileName = polarisFile.get("name");
if (StringUtil.isBlank(fileName)) {
throw new ConfigEmptyException(
"Web server maybe fail to start. The dynamic thread pool polaris file name is empty.",
"Please check whether the [spring.dynamic.thread-pool.polaris.file.name] configuration is empty or an empty string.");
}
String fileType = polarisFile.get("type");
if (StringUtil.isBlank(fileType)) {
throw new ConfigEmptyException(
"Web server maybe fail to start. The dynamic thread pool polaris file type is empty.",
"Please check whether the [spring.dynamic.thread-pool.polaris.file.type] configuration is empty or an empty string.");
}
}
break;
}
default:

Loading…
Cancel
Save