diff --git a/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/CollectionUtil.java b/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/CollectionUtil.java new file mode 100644 index 00000000..f735d311 --- /dev/null +++ b/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/CollectionUtil.java @@ -0,0 +1,40 @@ +package cn.hippo4j.common.toolkit; + +import java.util.Iterator; +import java.util.Map; + +/** + * Collection util. + * + * @author chen.ma + * @date 2021/12/22 20:43 + */ +public class CollectionUtil { + + /** + * Get first. + * + * @param iterable + * @param + * @return + */ + public static T getFirst(Iterable iterable) { + Iterator iterator; + if (iterable != null && (iterator = iterable.iterator()) != null && iterator.hasNext()) { + return iterator.next(); + } + + return null; + } + + /** + * Is not empty. + * + * @param map + * @return + */ + public static boolean isNotEmpty(Map map) { + return map != null && map.isEmpty() == false; + } + +} diff --git a/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java b/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java new file mode 100644 index 00000000..1b768226 --- /dev/null +++ b/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java @@ -0,0 +1,48 @@ +package cn.hippo4j.common.toolkit; + +/** + * String util. + * + * @author chen.ma + * @date 2021/12/22 20:58 + */ +public class StringUtil { + + public static final String EMPTY = ""; + + /** + * Is blank. + * + * @param str + * @return + */ + public static boolean isBlank(String str) { + int length; + + if ((str == null) || ((length = str.length()) == 0)) { + return true; + } + + for (int i = 0; i < length; i++) { + char c = str.charAt(i); + + boolean charNotBlank = Character.isWhitespace(c) || Character.isSpaceChar(c) || c == '\ufeff' || c == '\u202a'; + if (charNotBlank == false) { + return false; + } + } + + return true; + } + + /** + * Is not blank. + * + * @param str + * @return + */ + public static boolean isNotBlank(String str) { + return isBlank(str) == false; + } + +} diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ConfigServiceImpl.java b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ConfigServiceImpl.java index 8b1b9989..6b741d4e 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ConfigServiceImpl.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ConfigServiceImpl.java @@ -1,10 +1,7 @@ package cn.hippo4j.config.service.biz.impl; import cn.hippo4j.common.config.ApplicationContextHolder; -import cn.hippo4j.common.toolkit.ConditionUtil; -import cn.hippo4j.common.toolkit.ContentUtil; -import cn.hippo4j.common.toolkit.JSONUtil; -import cn.hippo4j.common.toolkit.Md5Util; +import cn.hippo4j.common.toolkit.*; import cn.hippo4j.config.event.LocalDataChangeEvent; import cn.hippo4j.config.mapper.ConfigInfoMapper; import cn.hippo4j.config.mapper.ConfigInstanceMapper; @@ -25,12 +22,15 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.concurrent.LinkedTransferQueue; import java.util.concurrent.SynchronousQueue; import java.util.stream.Collectors; import java.util.stream.Stream; +import static cn.hippo4j.config.service.ConfigCacheService.getContent; + /** * Config service impl. * @@ -100,6 +100,7 @@ public class ConfigServiceImpl implements ConfigService { @Override public void insertOrUpdate(String identify, ConfigAllInfo configInfo) { + verification(identify); LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(ConfigAllInfo.class) .eq(ConfigAllInfo::getTenantId, configInfo.getTenantId()) .eq(ConfigInfoBase::getItemId, configInfo.getItemId()) @@ -123,6 +124,13 @@ public class ConfigServiceImpl implements ConfigService { ConfigChangePublisher.notifyConfigChange(new LocalDataChangeEvent(identify, ContentUtil.getGroupKey(configInfo))); } + private void verification(String identify) { + if (StringUtil.isNotBlank(identify)) { + Map content = getContent(identify); + Assert.isTrue(CollectionUtil.isNotEmpty(content), "线程池实例不存在, 请尝试页面刷新."); + } + } + public Long addConfigInfo(ConfigAllInfo config) { config.setContent(ContentUtil.getPoolContent(config)); config.setMd5(Md5Util.getTpContentMd5(config));