diff --git a/hippo4j-common/pom.xml b/hippo4j-common/pom.xml
index efe18f4b..a44a8fb2 100644
--- a/hippo4j-common/pom.xml
+++ b/hippo4j-common/pom.xml
@@ -65,6 +65,12 @@
com.github.dozermapper
dozer-core
+
+
+ org.apache.commons
+ commons-lang3
+
+
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
index e81c1999..0d5e280c 100644
--- a/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java
+++ b/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java
@@ -17,8 +17,13 @@
package cn.hippo4j.common.toolkit;
+import org.springframework.util.StringUtils;
+
+import java.util.Arrays;
+import java.util.Objects;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import java.util.stream.Collectors;
/**
* String util.
@@ -29,6 +34,8 @@ public class StringUtil {
public static final char UNDERLINE = '_';
+ public static final String[] EMPTY_ARRAY = new String[0];
+
/**
* Returns the given string if it is nonempty; {@code null} otherwise.
*
@@ -52,9 +59,11 @@ public class StringUtil {
/**
* Returns {@code true} if the given string is null or is the empty string.
*
+ * this method has been deprecated, use isEmpty() instead.
* @param str
* @return
*/
+ @Deprecated
public static boolean isNullOrEmpty(String str) {
return str == null || str.isEmpty();
}
@@ -288,6 +297,33 @@ public class StringUtil {
.replaceAll(Matcher.quoteReplacement(replaceStr));
}
+ /**
+ *
Splits the provided text into an array, separators specified.
+ *
+ *
+ * StringUtils.split(null, *) = null
+ * StringUtils.split("", *) = []
+ * StringUtils.split("abc def", null) = ["abc", "def"]
+ * StringUtils.split("abc def", " ") = ["abc", "def"]
+ * StringUtils.split("ab:cd:ef", ":") = ["ab", "cd", "ef"]
+ *
+ * @param str the String to parse, may be null
+ * @param separatorChars the characters used as the delimiters,
+ * @return an array of parsed Strings
+ */
+ public static String[] split(final String str, final String separatorChars) {
+ if (str == null) {
+ return null;
+ }
+ if (isBlank(str)) {
+ return EMPTY_ARRAY;
+ }
+ if (isBlank(separatorChars)) {
+ return str.split(" ");
+ }
+ return str.split(separatorChars);
+ }
+
/**
* Tests if this string starts with the specified prefix.
*
diff --git a/hippo4j-common/src/test/java/cn/hippo4j/common/toolkit/StringUtilTest.java b/hippo4j-common/src/test/java/cn/hippo4j/common/toolkit/StringUtilTest.java
index 9d9c1f02..4c92830b 100644
--- a/hippo4j-common/src/test/java/cn/hippo4j/common/toolkit/StringUtilTest.java
+++ b/hippo4j-common/src/test/java/cn/hippo4j/common/toolkit/StringUtilTest.java
@@ -20,8 +20,58 @@ package cn.hippo4j.common.toolkit;
import org.junit.Test;
import org.junit.Assert;
+import java.util.Arrays;
+import java.util.Optional;
+
public class StringUtilTest {
+ @Test
+ public void replace() {
+ String url = "http://localhost:8088/hippo4j_manager?";
+ String replace = StringUtil.replace(url, "/hippo4j_manager?", "?");
+ Assert.assertEquals(replace, "http://localhost:8088?");
+ }
+
+ /**
+ * Splits the provided text into an array, separators specified.
+ *
+ *
+ * StringUtils.split(null, *) = null
+ * StringUtils.split("", *) = []
+ * StringUtils.split("abc def", null) = ["abc", "def"]
+ * StringUtils.split("abc def", " ") = ["abc", "def"]
+ * StringUtils.split("ab:cd:ef", ":") = ["ab", "cd", "ef"]
+ *
+ */
+ @Test
+ public void split() {
+ String str1 = null;
+ String separator1 = "*";
+ String[] res1 = StringUtil.split(str1, separator1);
+ assert res1 == null;
+
+ String str2 = "";
+ String separator2 = "*";
+ String[] res2 = StringUtil.split(str2, separator2);
+ Assert.assertArrayEquals(res2, new String[0]);
+
+ String str3 = "abc def";
+ String separator3 = null;
+ String[] res3 = StringUtil.split(str3, separator3);
+ Assert.assertArrayEquals(res3, new String[]{"abc", "def"});
+
+ String str4 = "abc def";
+ String separator4 = " ";
+ String[] res4 = StringUtil.split(str4, separator4);
+ Assert.assertArrayEquals(res4, new String[]{"abc", "def"});
+
+ String str5 = "ab:cd:ef";
+ String separator5 = ":";
+ String[] res5 = StringUtil.split(str5, separator5);
+ Assert.assertArrayEquals(res5, new String[]{"ab", "cd", "ef"});
+
+ }
+
@Test
public void assertIsEmpty() {
String string = "";
@@ -49,7 +99,7 @@ public class StringUtilTest {
@Test
public void isNullOrEmpty() {
String string = "null";
- Assert.assertFalse(StringUtil.isNullOrEmpty(string));
+ Assert.assertFalse(StringUtil.isEmpty(string));
}
@Test
diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ItemServiceImpl.java b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ItemServiceImpl.java
index b2966cdf..d0eab4ad 100644
--- a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ItemServiceImpl.java
+++ b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ItemServiceImpl.java
@@ -19,6 +19,7 @@ package cn.hippo4j.config.service.biz.impl;
import cn.hippo4j.common.toolkit.Assert;
import cn.hippo4j.common.enums.DelEnum;
+import cn.hippo4j.common.toolkit.StringUtil;
import cn.hippo4j.config.mapper.ItemInfoMapper;
import cn.hippo4j.config.model.ItemInfo;
import cn.hippo4j.config.model.biz.item.ItemQueryReqDTO;
@@ -36,7 +37,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import lombok.AllArgsConstructor;
-import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
@@ -55,10 +55,10 @@ public class ItemServiceImpl implements ItemService {
@Override
public IPage queryItemPage(ItemQueryReqDTO reqDTO) {
LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(ItemInfo.class)
- .eq(!StringUtils.isEmpty(reqDTO.getItemId()), ItemInfo::getItemId, reqDTO.getItemId())
- .eq(!StringUtils.isEmpty(reqDTO.getItemName()), ItemInfo::getItemName, reqDTO.getItemName())
- .eq(!StringUtils.isEmpty(reqDTO.getTenantId()), ItemInfo::getTenantId, reqDTO.getTenantId())
- .eq(!StringUtils.isEmpty(reqDTO.getOwner()), ItemInfo::getOwner, reqDTO.getOwner())
+ .eq(StringUtil.isNotEmpty(reqDTO.getItemId()), ItemInfo::getItemId, reqDTO.getItemId())
+ .eq(StringUtil.isNotEmpty(reqDTO.getItemName()), ItemInfo::getItemName, reqDTO.getItemName())
+ .eq(StringUtil.isNotEmpty(reqDTO.getTenantId()), ItemInfo::getTenantId, reqDTO.getTenantId())
+ .eq(StringUtil.isNotEmpty(reqDTO.getOwner()), ItemInfo::getOwner, reqDTO.getOwner())
.orderByDesc(reqDTO.getDesc() != null, ItemInfo::getGmtCreate);
Page resultPage = itemInfoMapper.selectPage(reqDTO, wrapper);
return resultPage.convert(each -> BeanUtil.convert(each, ItemRespDTO.class));
@@ -78,8 +78,8 @@ public class ItemServiceImpl implements ItemService {
@Override
public List queryItem(ItemQueryReqDTO reqDTO) {
LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(ItemInfo.class)
- .eq(!StringUtils.isEmpty(reqDTO.getItemId()), ItemInfo::getItemId, reqDTO.getItemId())
- .eq(!StringUtils.isEmpty(reqDTO.getTenantId()), ItemInfo::getTenantId, reqDTO.getTenantId());
+ .eq(StringUtil.isNotEmpty(reqDTO.getItemId()), ItemInfo::getItemId, reqDTO.getItemId())
+ .eq(StringUtil.isNotEmpty(reqDTO.getTenantId()), ItemInfo::getTenantId, reqDTO.getTenantId());
List itemInfos = itemInfoMapper.selectList(wrapper);
return BeanUtil.convert(itemInfos, ItemRespDTO.class);
}
diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/TenantServiceImpl.java b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/TenantServiceImpl.java
index 1945562d..83d5cc4d 100644
--- a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/TenantServiceImpl.java
+++ b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/TenantServiceImpl.java
@@ -19,6 +19,7 @@ package cn.hippo4j.config.service.biz.impl;
import cn.hippo4j.common.enums.DelEnum;
import cn.hippo4j.common.toolkit.Assert;
+import cn.hippo4j.common.toolkit.StringUtil;
import cn.hippo4j.config.mapper.TenantInfoMapper;
import cn.hippo4j.config.model.TenantInfo;
import cn.hippo4j.config.model.biz.item.ItemQueryReqDTO;
@@ -37,7 +38,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import lombok.AllArgsConstructor;
-import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
@@ -70,9 +70,9 @@ public class TenantServiceImpl implements TenantService {
@Override
public IPage queryTenantPage(TenantQueryReqDTO reqDTO) {
LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(TenantInfo.class)
- .eq(!StringUtils.isEmpty(reqDTO.getTenantId()), TenantInfo::getTenantId, reqDTO.getTenantId())
- .eq(!StringUtils.isEmpty(reqDTO.getTenantName()), TenantInfo::getTenantName, reqDTO.getTenantName())
- .eq(!StringUtils.isEmpty(reqDTO.getOwner()), TenantInfo::getOwner, reqDTO.getOwner())
+ .eq(StringUtil.isNotEmpty(reqDTO.getTenantId()), TenantInfo::getTenantId, reqDTO.getTenantId())
+ .eq(StringUtil.isNotEmpty(reqDTO.getTenantName()), TenantInfo::getTenantName, reqDTO.getTenantName())
+ .eq(StringUtil.isNotEmpty(reqDTO.getOwner()), TenantInfo::getOwner, reqDTO.getOwner())
.orderByDesc(reqDTO.getDesc() != null, TenantInfo::getGmtCreate);
Page resultPage = tenantInfoMapper.selectPage(reqDTO, wrapper);
return resultPage.convert(each -> BeanUtil.convert(each, TenantRespDTO.class));
diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/toolkit/EnvUtil.java b/hippo4j-config/src/main/java/cn/hippo4j/config/toolkit/EnvUtil.java
index 2e78d7dd..0aa9a052 100644
--- a/hippo4j-config/src/main/java/cn/hippo4j/config/toolkit/EnvUtil.java
+++ b/hippo4j-config/src/main/java/cn/hippo4j/config/toolkit/EnvUtil.java
@@ -17,7 +17,7 @@
package cn.hippo4j.config.toolkit;
-import org.apache.commons.lang3.StringUtils;
+import cn.hippo4j.common.toolkit.StringUtil;
import java.nio.file.Paths;
import java.util.Objects;
@@ -41,9 +41,9 @@ public class EnvUtil {
* @return
*/
public static String getHippo4JHome() {
- if (StringUtils.isBlank(HIPPO4J_HOME_PATH)) {
+ if (StringUtil.isBlank(HIPPO4J_HOME_PATH)) {
String hippo4jHome = System.getProperty(HIPPO4J_HOME_KEY);
- if (StringUtils.isBlank(hippo4jHome)) {
+ if (StringUtil.isBlank(hippo4jHome)) {
hippo4jHome = Paths.get(System.getProperty("user.home"), "hippo4j").toString();
}
return hippo4jHome;
diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/toolkit/Md5ConfigUtil.java b/hippo4j-config/src/main/java/cn/hippo4j/config/toolkit/Md5ConfigUtil.java
index bb0ae38a..f8b76d00 100644
--- a/hippo4j-config/src/main/java/cn/hippo4j/config/toolkit/Md5ConfigUtil.java
+++ b/hippo4j-config/src/main/java/cn/hippo4j/config/toolkit/Md5ConfigUtil.java
@@ -19,6 +19,7 @@ package cn.hippo4j.config.toolkit;
import cn.hippo4j.common.toolkit.GroupKey;
import cn.hippo4j.common.toolkit.Md5Util;
+import cn.hippo4j.common.toolkit.StringUtil;
import cn.hippo4j.config.service.ConfigCacheService;
import cn.hippo4j.config.model.ConfigAllInfo;
import org.springframework.util.StringUtils;
@@ -140,7 +141,7 @@ public class Md5ConfigUtil {
sb.append(dataIdGroupId[1]);
// if have tenant, then set it
if (dataIdGroupId.length == 4) {
- if (org.apache.commons.lang3.StringUtils.isNotBlank(dataIdGroupId[2])) {
+ if (StringUtil.isNotBlank(dataIdGroupId[2])) {
sb.append(WORD_SEPARATOR);
sb.append(dataIdGroupId[2]);
}
diff --git a/hippo4j-monitor/hippo4j-monitor-elasticsearch/src/main/java/cn/hippo4j/monitor/es/EsClientHolder.java b/hippo4j-monitor/hippo4j-monitor-elasticsearch/src/main/java/cn/hippo4j/monitor/es/EsClientHolder.java
index dbbe5b00..c8cfc61d 100644
--- a/hippo4j-monitor/hippo4j-monitor-elasticsearch/src/main/java/cn/hippo4j/monitor/es/EsClientHolder.java
+++ b/hippo4j-monitor/hippo4j-monitor-elasticsearch/src/main/java/cn/hippo4j/monitor/es/EsClientHolder.java
@@ -57,7 +57,7 @@ public class EsClientHolder {
userName = environment.getProperty("es.thread-pool-state.userName");
password = environment.getProperty("es.thread-pool-state.password");
List hosts = parseHosts();
- if (StringUtil.isNullOrEmpty(userName) || StringUtil.isNullOrEmpty(password)) {
+ if (StringUtil.isEmpty(userName) || StringUtil.isEmpty(password)) {
client = new RestHighLevelClient(RestClient.builder(hosts.toArray(new HttpHost[]{})));
} else {
client = new RestHighLevelClient(RestClient.builder(hosts.toArray(new HttpHost[]{}))
@@ -74,7 +74,7 @@ public class EsClientHolder {
}
private static BasicCredentialsProvider getCredentialsProvider() {
- if (!StringUtil.isNullOrEmpty(userName) && !StringUtil.isNullOrEmpty(password)) {
+ if (StringUtil.isNotEmpty(userName) && StringUtil.isNotEmpty(password)) {
final BasicCredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials(userName, password));
diff --git a/hippo4j-server/src/main/java/cn/hippo4j/server/init/LocalDataSourceLoader.java b/hippo4j-server/src/main/java/cn/hippo4j/server/init/LocalDataSourceLoader.java
index 447000b8..76784710 100644
--- a/hippo4j-server/src/main/java/cn/hippo4j/server/init/LocalDataSourceLoader.java
+++ b/hippo4j-server/src/main/java/cn/hippo4j/server/init/LocalDataSourceLoader.java
@@ -17,9 +17,9 @@
package cn.hippo4j.server.init;
+import cn.hippo4j.common.toolkit.StringUtil;
import cn.hippo4j.server.config.DataBaseProperties;
import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.jdbc.ScriptRunner;
import org.springframework.beans.BeansException;
@@ -68,7 +68,7 @@ public class LocalDataSourceLoader implements InstantiationAwareBeanPostProcesso
// because the hippo4j database does not need to be specified when executing the SQL file,
// otherwise the hippo4j database will be disconnected when the hippo4j database does not exist
if (Objects.equals(dataBaseProperties.getDialect(), "mysql")) {
- jdbcUrl = StringUtils.replace(properties.getUrl(), "/hippo4j_manager?", "?");
+ jdbcUrl = StringUtil.replace(properties.getUrl(), "/hippo4j_manager?", "?");
}
Connection connection = DriverManager.getConnection(jdbcUrl, properties.getUsername(), properties.getPassword());
// TODO Compatible with h2 to execute `INSERT IGNORE INTO` statement error
@@ -103,7 +103,7 @@ public class LocalDataSourceLoader implements InstantiationAwareBeanPostProcesso
runner.setLogWriter(null);
runner.setAutoCommit(true);
Resources.setCharset(StandardCharsets.UTF_8);
- String[] initScripts = StringUtils.split(script, ";");
+ String[] initScripts = StringUtil.split(script, ";");
for (String sqlScript : initScripts) {
if (sqlScript.startsWith(PRE_FIX)) {
String sqlFile = sqlScript.substring(PRE_FIX.length());
diff --git a/pom.xml b/pom.xml
index 5a0d41b5..9d14c53b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -57,7 +57,6 @@
6.5.0
2.9.3
3.12.0
- 3.12.0
6.1.5.Final
2.12.1
0.9.0
@@ -117,11 +116,6 @@
okhttp
${okhttp3.version}
-
- org.apache.commons
- commons-lang3
- ${commons-lang3.version}
-
cn.hippo4j
hippo4j-message