diff --git a/kernel/dynamic/api/src/main/java/cn/hippo4j/threadpool/dynamic/api/BootstrapPropertiesInterface.java b/kernel/dynamic/api/src/main/java/cn/hippo4j/threadpool/dynamic/api/BootstrapPropertiesInterface.java index ab743fd2..4f7316da 100644 --- a/kernel/dynamic/api/src/main/java/cn/hippo4j/threadpool/dynamic/api/BootstrapPropertiesInterface.java +++ b/kernel/dynamic/api/src/main/java/cn/hippo4j/threadpool/dynamic/api/BootstrapPropertiesInterface.java @@ -101,4 +101,11 @@ public interface BootstrapPropertiesInterface { return null; } + /** + * Get Polaris. + */ + default Map getPolaris() { + return null; + } + } diff --git a/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/properties/BootstrapConfigProperties.java b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/properties/BootstrapConfigProperties.java index ea1dc322..1bc87dc0 100644 --- a/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/properties/BootstrapConfigProperties.java +++ b/kernel/dynamic/mode/config/src/main/java/cn/hippo4j/threadpool/dynamic/mode/config/properties/BootstrapConfigProperties.java @@ -76,6 +76,11 @@ public class BootstrapConfigProperties implements BootstrapPropertiesInterface { */ private Map etcd; + /** + * polaris config + */ + private Map polaris; + /** * Web config * diff --git a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/PolarisRefresherHandler.java b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/PolarisRefresherHandler.java index 31c875b3..b06b4ebf 100644 --- a/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/PolarisRefresherHandler.java +++ b/starters/threadpool/config/src/main/java/cn/hippo4j/config/springboot/starter/refresher/PolarisRefresherHandler.java @@ -36,13 +36,13 @@ public class PolarisRefresherHandler extends AbstractConfigThreadPoolDynamicRefr private final ConfigFileService configFileService; - private static final String POLARIS_NAMESPACE = "${spring.dynamic.thread-pool.polaris.namespace}"; + private static final String POLARIS_NAMESPACE = "${spring.dynamic.thread-pool.polaris.namespace:dev}"; - private static final String POLARIS_FILE_GROUP = "${spring.dynamic.thread-pool.polaris.file.group}"; + private static final String POLARIS_FILE_GROUP = "${spring.dynamic.thread-pool.polaris.file.group:dynamic}"; - private static final String POLARIS_FILE_NAME = "${spring.dynamic.thread-pool.polaris.file.name}"; + private static final String POLARIS_FILE_NAME = "${spring.dynamic.thread-pool.polaris.file.name:root/bootstrap.yaml}"; - private static final String POLARIS_FILE_TYPE = "${spring.dynamic.thread-pool.polaris.file.type}"; + private static final String POLARIS_FILE_TYPE = "${spring.dynamic.thread-pool.polaris.file.type:properties}"; @Value(POLARIS_NAMESPACE) private String namespace; @@ -72,19 +72,4 @@ public class PolarisRefresherHandler extends AbstractConfigThreadPoolDynamicRefr : configFileService.getConfigPropertiesFile(namespace, fileGroup, fileName); } - public static String getPolarisNamespace() { - return POLARIS_NAMESPACE; - } - - public static String getPolarisFileGroup() { - return POLARIS_FILE_GROUP; - } - - public static String getPolarisFileName() { - return POLARIS_FILE_NAME; - } - - public static String getPolarisFileType() { - return POLARIS_FILE_TYPE; - } } diff --git a/threadpool/core/pom.xml b/threadpool/core/pom.xml index 79182b81..903c73de 100644 --- a/threadpool/core/pom.xml +++ b/threadpool/core/pom.xml @@ -34,11 +34,6 @@ hippo4j-threadpool-kernel-monitor ${project.version} - - cn.hippo4j - hippo4j-threadpool-config-spring-boot-starter - ${project.version} - org.springframework.boot spring-boot-starter-test diff --git a/threadpool/core/src/main/java/cn/hippo4j/core/enable/BeforeCheckConfiguration.java b/threadpool/core/src/main/java/cn/hippo4j/core/enable/BeforeCheckConfiguration.java index 8a6bb428..9b7a3a8a 100644 --- a/threadpool/core/src/main/java/cn/hippo4j/core/enable/BeforeCheckConfiguration.java +++ b/threadpool/core/src/main/java/cn/hippo4j/core/enable/BeforeCheckConfiguration.java @@ -40,18 +40,6 @@ public class BeforeCheckConfiguration { private final String bootstrapPropertiesClassName = "cn.hippo4j.springboot.starter.config.BootstrapProperties"; private final String bootstrapConfigPropertiesClassName = "cn.hippo4j.threadpool.dynamic.mode.config.properties.BootstrapConfigProperties"; - @Value("#{T(cn.hippo4j.config.springboot.starter.refresher.PolarisRefresherHandler).getPolarisNamespace()}") - private String polarisNamespace; - - @Value("#{T(cn.hippo4j.config.springboot.starter.refresher.PolarisRefresherHandler).getPolarisFileGroup()}") - private String polarisFileGroup; - - @Value("#{T(cn.hippo4j.config.springboot.starter.refresher.PolarisRefresherHandler).getPolarisFileName()}") - private String polarisFileName; - - @Value("#{T(cn.hippo4j.config.springboot.starter.refresher.PolarisRefresherHandler).getPolarisFileType()}") - private String polarisFileType; - @Bean public BeforeCheckConfiguration.BeforeCheck dynamicThreadPoolBeforeCheckBean(@Autowired(required = false) BootstrapPropertiesInterface properties, ConfigurableEnvironment environment) { @@ -157,25 +145,39 @@ public class BeforeCheckConfiguration { } } - if (StringUtil.isBlank(polarisNamespace)) { - throw new ConfigEmptyException( - "Web server failed 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 (StringUtil.isBlank(polarisFileGroup)) { - throw new ConfigEmptyException( - "Web server failed 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."); - } - if (StringUtil.isBlank(polarisFileName)) { - throw new ConfigEmptyException( - "Web server failed 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."); - } - if (StringUtil.isBlank(polarisFileType)) { - throw new ConfigEmptyException( - "Web server failed 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."); + Map 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) { + Map polarisFile = (Map)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."); + } + } else { + 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."); + } } break; }