propertiesSet = CollUtil.set(false, properties);
+ keyEditor = property -> propertiesSet.contains(property) ? property : null;
+ }
+
+ // 指明了要复制的属性 所以不忽略null值
+ return beanToMap(bean, new LinkedHashMap<>(properties.length, 1), false, keyEditor);
}
/**
diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/copier/BeanCopier.java b/hutool-core/src/main/java/cn/hutool/core/bean/copier/BeanCopier.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/copier/CopyOptions.java b/hutool-core/src/main/java/cn/hutool/core/bean/copier/CopyOptions.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/Base64.java b/hutool-core/src/main/java/cn/hutool/core/codec/Base64.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/PercentCodec.java b/hutool-core/src/main/java/cn/hutool/core/codec/PercentCodec.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/FilterIter.java b/hutool-core/src/main/java/cn/hutool/core/collection/FilterIter.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/IterUtil.java b/hutool-core/src/main/java/cn/hutool/core/collection/IterUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/ListUtil.java b/hutool-core/src/main/java/cn/hutool/core/collection/ListUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/TransCollection.java b/hutool-core/src/main/java/cn/hutool/core/collection/TransCollection.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/comparator/BaseFieldComparator.java b/hutool-core/src/main/java/cn/hutool/core/comparator/BaseFieldComparator.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/Convert.java b/hutool-core/src/main/java/cn/hutool/core/convert/Convert.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/ConverterRegistry.java b/hutool-core/src/main/java/cn/hutool/core/convert/ConverterRegistry.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/date/LocalDateTimeUtil.java b/hutool-core/src/main/java/cn/hutool/core/date/LocalDateTimeUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/exceptions/CheckedUtil.java b/hutool-core/src/main/java/cn/hutool/core/exceptions/CheckedUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/img/BackgroundRemoval.java b/hutool-core/src/main/java/cn/hutool/core/img/BackgroundRemoval.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/img/FontUtil.java b/hutool-core/src/main/java/cn/hutool/core/img/FontUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/img/GraphicsUtil.java b/hutool-core/src/main/java/cn/hutool/core/img/GraphicsUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/img/Img.java b/hutool-core/src/main/java/cn/hutool/core/img/Img.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/img/ImgUtil.java b/hutool-core/src/main/java/cn/hutool/core/img/ImgUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/img/ScaleType.java b/hutool-core/src/main/java/cn/hutool/core/img/ScaleType.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/img/gif/AnimatedGifEncoder.java b/hutool-core/src/main/java/cn/hutool/core/img/gif/AnimatedGifEncoder.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/img/gif/GifDecoder.java b/hutool-core/src/main/java/cn/hutool/core/img/gif/GifDecoder.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/img/gif/LZWEncoder.java b/hutool-core/src/main/java/cn/hutool/core/img/gif/LZWEncoder.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/img/gif/NeuQuant.java b/hutool-core/src/main/java/cn/hutool/core/img/gif/NeuQuant.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/img/gif/package-info.java b/hutool-core/src/main/java/cn/hutool/core/img/gif/package-info.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/img/package-info.java b/hutool-core/src/main/java/cn/hutool/core/img/package-info.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/io/IoUtil.java b/hutool-core/src/main/java/cn/hutool/core/io/IoUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/io/checksum/crc16/CRC16Checksum.java b/hutool-core/src/main/java/cn/hutool/core/io/checksum/crc16/CRC16Checksum.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/io/file/FileCopier.java b/hutool-core/src/main/java/cn/hutool/core/io/file/FileCopier.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/io/file/FileNameUtil.java b/hutool-core/src/main/java/cn/hutool/core/io/file/FileNameUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/io/resource/ResourceUtil.java b/hutool-core/src/main/java/cn/hutool/core/io/resource/ResourceUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/io/resource/UrlResource.java b/hutool-core/src/main/java/cn/hutool/core/io/resource/UrlResource.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/io/watch/WatchServer.java b/hutool-core/src/main/java/cn/hutool/core/io/watch/WatchServer.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Assert.java b/hutool-core/src/main/java/cn/hutool/core/lang/Assert.java
index a33b2a4ed..ec0b69b27 100644
--- a/hutool-core/src/main/java/cn/hutool/core/lang/Assert.java
+++ b/hutool-core/src/main/java/cn/hutool/core/lang/Assert.java
@@ -3,6 +3,7 @@ package cn.hutool.core.lang;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import java.util.Map;
@@ -1003,6 +1004,99 @@ public class Assert {
return value;
}
+ /**
+ * 断言两个对象是否不相等,如果两个对象相等 抛出IllegalArgumentException 异常
+ *
+ * Assert.notEquals(obj1,obj2);
+ *
+ *
+ * @param obj1 对象1
+ * @param obj2 对象2
+ * @throws IllegalArgumentException obj1 must be not equals obj2
+ */
+ public static void notEquals(Object obj1, Object obj2) {
+ notEquals(obj1, obj2, "({}) must be not equals ({})", obj1, obj2);
+ }
+
+ /**
+ * 断言两个对象是否不相等,如果两个对象相等 抛出IllegalArgumentException 异常
+ *
+ * Assert.notEquals(obj1,obj2,"obj1 must be not equals obj2");
+ *
+ *
+ * @param obj1 对象1
+ * @param obj2 对象2
+ * @param errorMsgTemplate 异常信息模板,类似于"aa{}bb{}cc"
+ * @param params 异常信息参数,用于替换"{}"占位符
+ * @throws IllegalArgumentException obj1 must be not equals obj2
+ */
+ public static void notEquals(Object obj1, Object obj2, String errorMsgTemplate, Object... params) throws IllegalArgumentException {
+ notEquals(obj1, obj2, () -> new IllegalArgumentException(StrUtil.format(errorMsgTemplate, params)));
+ }
+
+ /**
+ * 断言两个对象是否不相等,如果两个对象相等,抛出指定类型异常,并使用指定的函数获取错误信息返回
+ *
+ * @param obj1 对象1
+ * @param obj2 对象2
+ * @param errorSupplier 错误抛出异常附带的消息生产接口
+ * @param 异常类型
+ * @throws X obj1 must be not equals obj2
+ */
+ public static void notEquals(Object obj1, Object obj2, Supplier errorSupplier) throws X {
+ if (ObjectUtil.equals(obj1, obj2)) {
+ throw errorSupplier.get();
+ }
+ }
+ // ----------------------------------------------------------------------------------------------------------- Check not equals
+
+ /**
+ * 断言两个对象是否相等,如果两个对象不相等 抛出IllegalArgumentException 异常
+ *
+ * Assert.isEquals(obj1,obj2);
+ *
+ *
+ * @param obj1 对象1
+ * @param obj2 对象2
+ * @throws IllegalArgumentException obj1 must be equals obj2
+ */
+ public static void equals(Object obj1, Object obj2) {
+ equals(obj1, obj2, "({}) must be equals ({})", obj1, obj2);
+ }
+
+ /**
+ * 断言两个对象是否相等,如果两个对象不相等 抛出IllegalArgumentException 异常
+ *
+ * Assert.isEquals(obj1,obj2,"obj1 must be equals obj2");
+ *
+ *
+ * @param obj1 对象1
+ * @param obj2 对象2
+ * @param errorMsgTemplate 异常信息模板,类似于"aa{}bb{}cc"
+ * @param params 异常信息参数,用于替换"{}"占位符
+ * @throws IllegalArgumentException obj1 must be equals obj2
+ */
+ public static void equals(Object obj1, Object obj2, String errorMsgTemplate, Object... params) throws IllegalArgumentException {
+ equals(obj1, obj2, () -> new IllegalArgumentException(StrUtil.format(errorMsgTemplate, params)));
+ }
+
+ /**
+ * 断言两个对象是否相等,如果两个对象不相等,抛出指定类型异常,并使用指定的函数获取错误信息返回
+ *
+ * @param obj1 对象1
+ * @param obj2 对象2
+ * @param errorSupplier 错误抛出异常附带的消息生产接口
+ * @param 异常类型
+ * @throws X obj1 must be equals obj2
+ */
+ public static void equals(Object obj1, Object obj2, Supplier errorSupplier) throws X {
+ if (ObjectUtil.notEqual(obj1, obj2)) {
+ throw errorSupplier.get();
+ }
+ }
+
+ // ----------------------------------------------------------------------------------------------------------- Check is equals
+
// -------------------------------------------------------------------------------------------------------------------------------------------- Private method start
/**
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/ClassScanner.java b/hutool-core/src/main/java/cn/hutool/core/lang/ClassScanner.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/ConsistentHash.java b/hutool-core/src/main/java/cn/hutool/core/lang/ConsistentHash.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Dict.java b/hutool-core/src/main/java/cn/hutool/core/lang/Dict.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Editor.java b/hutool-core/src/main/java/cn/hutool/core/lang/Editor.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Filter.java b/hutool-core/src/main/java/cn/hutool/core/lang/Filter.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Matcher.java b/hutool-core/src/main/java/cn/hutool/core/lang/Matcher.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/ObjectId.java b/hutool-core/src/main/java/cn/hutool/core/lang/ObjectId.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Opt.java b/hutool-core/src/main/java/cn/hutool/core/lang/Opt.java
index 139741a3e..eddc1476f 100644
--- a/hutool-core/src/main/java/cn/hutool/core/lang/Opt.java
+++ b/hutool-core/src/main/java/cn/hutool/core/lang/Opt.java
@@ -41,7 +41,7 @@ import java.util.stream.Stream;
/**
* 复制jdk16中的Optional,以及自己进行了一点调整和新增,比jdk8中的Optional多了几个实用的函数
- * 详细见:https://gitee.com/dromara/hutool/pulls/426
+ * 详细见:https://gitee.com/dromara/hutool/pulls/426
*
* @param 包裹里元素的类型
* @author VampireAchao
@@ -60,8 +60,7 @@ public class Opt {
* @return Opt
*/
public static Opt empty() {
- @SuppressWarnings("unchecked")
- Opt t = (Opt) EMPTY;
+ @SuppressWarnings("unchecked") final Opt t = (Opt) EMPTY;
return t;
}
@@ -322,7 +321,7 @@ public class Opt {
return empty();
} else {
@SuppressWarnings("unchecked")
- Opt r = (Opt) mapper.apply(value);
+ final Opt r = (Opt) mapper.apply(value);
return Objects.requireNonNull(r);
}
}
@@ -400,8 +399,7 @@ public class Opt {
if (isPresent()) {
return this;
} else {
- @SuppressWarnings("unchecked")
- Opt r = (Opt) supplier.get();
+ @SuppressWarnings("unchecked") final Opt r = (Opt) supplier.get();
return Objects.requireNonNull(r);
}
}
@@ -544,7 +542,7 @@ public class Opt {
return false;
}
- Opt> other = (Opt>) obj;
+ final Opt> other = (Opt>) obj;
return Objects.equals(value, other.value);
}
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/ParameterizedTypeImpl.java b/hutool-core/src/main/java/cn/hutool/core/lang/ParameterizedTypeImpl.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Replacer.java b/hutool-core/src/main/java/cn/hutool/core/lang/Replacer.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Singleton.java b/hutool-core/src/main/java/cn/hutool/core/lang/Singleton.java
index a4f210100..4a60648ad 100755
--- a/hutool-core/src/main/java/cn/hutool/core/lang/Singleton.java
+++ b/hutool-core/src/main/java/cn/hutool/core/lang/Singleton.java
@@ -6,7 +6,9 @@ import cn.hutool.core.util.ClassUtil;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil;
+import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.stream.Collectors;
/**
* 单例类
@@ -90,6 +92,30 @@ public final class Singleton {
POOL.put(key, obj);
}
+ /**
+ * 判断某个类的对象是否存在
+ *
+ * @param clazz 类
+ * @param params 构造参数
+ * @return 是否存在
+ */
+ public static boolean exists(Class> clazz, Object... params){
+ if (null != clazz){
+ final String key = buildKey(clazz.getName(), params);
+ return POOL.containsKey(key);
+ }
+ return false;
+ }
+
+ /**
+ * 获取单例池中存在的所有类
+ *
+ * @return 非重复的类集合
+ */
+ public static Set> getExistClass(){
+ return POOL.values().stream().map(Object::getClass).collect(Collectors.toSet());
+ }
+
/**
* 移除指定Singleton对象
*
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Snowflake.java b/hutool-core/src/main/java/cn/hutool/core/lang/Snowflake.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/TypeReference.java b/hutool-core/src/main/java/cn/hutool/core/lang/TypeReference.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/UUID.java b/hutool-core/src/main/java/cn/hutool/core/lang/UUID.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Validator.java b/hutool-core/src/main/java/cn/hutool/core/lang/Validator.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/WeightRandom.java b/hutool-core/src/main/java/cn/hutool/core/lang/WeightRandom.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/caller/package-info.java b/hutool-core/src/main/java/cn/hutool/core/lang/caller/package-info.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/copier/SrcToDestCopier.java b/hutool-core/src/main/java/cn/hutool/core/lang/copier/SrcToDestCopier.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/copier/package-info.java b/hutool-core/src/main/java/cn/hutool/core/lang/copier/package-info.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/func/package-info.java b/hutool-core/src/main/java/cn/hutool/core/lang/func/package-info.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/generator/ObjectIdGenerator.java b/hutool-core/src/main/java/cn/hutool/core/lang/generator/ObjectIdGenerator.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/generator/SnowflakeGenerator.java b/hutool-core/src/main/java/cn/hutool/core/lang/generator/SnowflakeGenerator.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/generator/UUIDGenerator.java b/hutool-core/src/main/java/cn/hutool/core/lang/generator/UUIDGenerator.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/generator/package-info.java b/hutool-core/src/main/java/cn/hutool/core/lang/generator/package-info.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/hash/package-info.java b/hutool-core/src/main/java/cn/hutool/core/lang/hash/package-info.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/id/NanoId.java b/hutool-core/src/main/java/cn/hutool/core/lang/id/NanoId.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/intern/Interner.java b/hutool-core/src/main/java/cn/hutool/core/lang/intern/Interner.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/intern/package-info.java b/hutool-core/src/main/java/cn/hutool/core/lang/intern/package-info.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/loader/LazyFunLoader.java b/hutool-core/src/main/java/cn/hutool/core/lang/loader/LazyFunLoader.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/loader/package-info.java b/hutool-core/src/main/java/cn/hutool/core/lang/loader/package-info.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/mutable/Mutable.java b/hutool-core/src/main/java/cn/hutool/core/lang/mutable/Mutable.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/mutable/package-info.java b/hutool-core/src/main/java/cn/hutool/core/lang/mutable/package-info.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/package-info.java b/hutool-core/src/main/java/cn/hutool/core/lang/package-info.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/reflect/package-info.java b/hutool-core/src/main/java/cn/hutool/core/lang/reflect/package-info.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/tree/Node.java b/hutool-core/src/main/java/cn/hutool/core/lang/tree/Node.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/tree/Tree.java b/hutool-core/src/main/java/cn/hutool/core/lang/tree/Tree.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/tree/TreeBuilder.java b/hutool-core/src/main/java/cn/hutool/core/lang/tree/TreeBuilder.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/tree/TreeNode.java b/hutool-core/src/main/java/cn/hutool/core/lang/tree/TreeNode.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/tree/TreeNodeConfig.java b/hutool-core/src/main/java/cn/hutool/core/lang/tree/TreeNodeConfig.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/tree/TreeUtil.java b/hutool-core/src/main/java/cn/hutool/core/lang/tree/TreeUtil.java
old mode 100644
new mode 100755
index 197394495..705cd1086
--- a/hutool-core/src/main/java/cn/hutool/core/lang/tree/TreeUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/lang/tree/TreeUtil.java
@@ -38,7 +38,8 @@ public class TreeUtil {
}
/**
- * 构建单root节点树
+ * 构建单root节点树
+ * 它会生成一个以指定ID为ID的空的节点,然后逐级增加子节点。
*
* @param ID类型
* @param list 源数据集合
@@ -63,7 +64,8 @@ public class TreeUtil {
}
/**
- * 构建单root节点树
+ * 构建单root节点树
+ * 它会生成一个以指定ID为ID的空的节点,然后逐级增加子节点。
*
* @param 转换的实体 为数据源里的对象类型
* @param ID类型
@@ -107,7 +109,8 @@ public class TreeUtil {
}
/**
- * 构建单root节点树
+ * 构建单root节点树
+ * 它会生成一个以指定ID为ID的空的节点,然后逐级增加子节点。
*
* @param 转换的实体 为数据源里的对象类型
* @param ID类型
@@ -137,7 +140,8 @@ public class TreeUtil {
}
/**
- * 单点树构建,按照权重排序
+ * 单点树构建,按照权重排序
+ * 它会生成一个以指定ID为ID的空的节点,然后逐级增加子节点。
*
* @param ID类型
* @param map 源数据Map
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/tree/package-info.java b/hutool-core/src/main/java/cn/hutool/core/lang/tree/package-info.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/tree/parser/DefaultNodeParser.java b/hutool-core/src/main/java/cn/hutool/core/lang/tree/parser/DefaultNodeParser.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/tree/parser/NodeParser.java b/hutool-core/src/main/java/cn/hutool/core/lang/tree/parser/NodeParser.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java b/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/net/Ipv4Util.java b/hutool-core/src/main/java/cn/hutool/core/net/Ipv4Util.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/net/NetUtil.java b/hutool-core/src/main/java/cn/hutool/core/net/NetUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/net/URLEncoder.java b/hutool-core/src/main/java/cn/hutool/core/net/URLEncoder.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/net/url/UrlBuilder.java b/hutool-core/src/main/java/cn/hutool/core/net/url/UrlBuilder.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/swing/DesktopUtil.java b/hutool-core/src/main/java/cn/hutool/core/swing/DesktopUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/swing/RobotUtil.java b/hutool-core/src/main/java/cn/hutool/core/swing/RobotUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/swing/ScreenUtil.java b/hutool-core/src/main/java/cn/hutool/core/swing/ScreenUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/swing/clipboard/ClipboardListener.java b/hutool-core/src/main/java/cn/hutool/core/swing/clipboard/ClipboardListener.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/swing/clipboard/ClipboardMonitor.java b/hutool-core/src/main/java/cn/hutool/core/swing/clipboard/ClipboardMonitor.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/swing/clipboard/ClipboardUtil.java b/hutool-core/src/main/java/cn/hutool/core/swing/clipboard/ClipboardUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/swing/clipboard/ImageSelection.java b/hutool-core/src/main/java/cn/hutool/core/swing/clipboard/ImageSelection.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/swing/clipboard/StrClipboardListener.java b/hutool-core/src/main/java/cn/hutool/core/swing/clipboard/StrClipboardListener.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/swing/clipboard/package-info.java b/hutool-core/src/main/java/cn/hutool/core/swing/clipboard/package-info.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/swing/package-info.java b/hutool-core/src/main/java/cn/hutool/core/swing/package-info.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/StrSplitter.java b/hutool-core/src/main/java/cn/hutool/core/text/StrSplitter.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/UnicodeUtil.java b/hutool-core/src/main/java/cn/hutool/core/text/UnicodeUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvBaseReader.java b/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvBaseReader.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvConfig.java b/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvConfig.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvData.java b/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvData.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvParser.java b/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvParser.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvReadConfig.java b/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvReadConfig.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvReader.java b/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvReader.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvRow.java b/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvRow.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvRowHandler.java b/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvRowHandler.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvUtil.java b/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvWriteConfig.java b/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvWriteConfig.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvWriter.java b/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvWriter.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/csv/package-info.java b/hutool-core/src/main/java/cn/hutool/core/text/csv/package-info.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/finder/CharMatcherFinder.java b/hutool-core/src/main/java/cn/hutool/core/text/finder/CharMatcherFinder.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/replacer/StrReplacer.java b/hutool-core/src/main/java/cn/hutool/core/text/replacer/StrReplacer.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/CreditCodeUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/CreditCodeUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/EscapeUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/EscapeUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/HashUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/HashUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/HexUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/HexUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/IdUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/IdUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/ObjectUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/ObjectUtil.java
index 8fe082b43..00c3454de 100644
--- a/hutool-core/src/main/java/cn/hutool/core/util/ObjectUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/util/ObjectUtil.java
@@ -104,7 +104,7 @@ public class ObjectUtil {
int count;
if (obj instanceof Iterator) {
- Iterator> iter = (Iterator>) obj;
+ final Iterator> iter = (Iterator>) obj;
count = 0;
while (iter.hasNext()) {
count++;
@@ -113,7 +113,7 @@ public class ObjectUtil {
return count;
}
if (obj instanceof Enumeration) {
- Enumeration> enumeration = (Enumeration>) obj;
+ final Enumeration> enumeration = (Enumeration>) obj;
count = 0;
while (enumeration.hasMoreElements()) {
count++;
@@ -161,9 +161,9 @@ public class ObjectUtil {
}
if (obj instanceof Iterator) {
- Iterator> iter = (Iterator>) obj;
+ final Iterator> iter = (Iterator>) obj;
while (iter.hasNext()) {
- Object o = iter.next();
+ final Object o = iter.next();
if (equal(o, element)) {
return true;
}
@@ -171,9 +171,9 @@ public class ObjectUtil {
return false;
}
if (obj instanceof Enumeration) {
- Enumeration> enumeration = (Enumeration>) obj;
+ final Enumeration> enumeration = (Enumeration>) obj;
while (enumeration.hasMoreElements()) {
- Object o = enumeration.nextElement();
+ final Object o = enumeration.nextElement();
if (equal(o, element)) {
return true;
}
@@ -181,9 +181,9 @@ public class ObjectUtil {
return false;
}
if (obj.getClass().isArray() == true) {
- int len = Array.getLength(obj);
+ final int len = Array.getLength(obj);
for (int i = 0; i < len; i++) {
- Object o = Array.get(obj, i);
+ final Object o = Array.get(obj, i);
if (equal(o, element)) {
return true;
}
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/PhoneUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/PhoneUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/RandomUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/RandomUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/ReUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/ReUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/RuntimeUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/RuntimeUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/StrUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/StrUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/TypeUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/TypeUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/XmlUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/XmlUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/ZipUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/ZipUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/convert/ConvertTest.java b/hutool-core/src/test/java/cn/hutool/core/convert/ConvertTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/convert/ConvertToBeanTest.java b/hutool-core/src/test/java/cn/hutool/core/convert/ConvertToBeanTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/convert/ConvertToCollectionTest.java b/hutool-core/src/test/java/cn/hutool/core/convert/ConvertToCollectionTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/date/DateUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/date/DateUtilTest.java
index 7874b5cd9..3984bf599 100755
--- a/hutool-core/src/test/java/cn/hutool/core/date/DateUtilTest.java
+++ b/hutool-core/src/test/java/cn/hutool/core/date/DateUtilTest.java
@@ -276,6 +276,12 @@ public class DateUtilTest {
Assert.assertEquals(0, between);
}
+ @Test
+ public void betweenTest3() {
+ long between = DateUtil.between(DateUtil.parse("2020-03-31 23:59:59"), DateUtil.parse("2020-04-01 00:00:00"), DateUnit.SECOND);
+ Assert.assertEquals(1, between);
+ }
+
@Test
public void formatChineseDateTest() {
String formatChineseDate = DateUtil.formatChineseDate(DateUtil.parse("2018-02-24"), true, false);
@@ -1058,6 +1064,17 @@ public class DateUtilTest {
Assert.assertFalse(DateUtil.isOverlap(startTime,endTime,realStartTime1,realEndTime1));
}
+ @Test
+ public void isOverlapTest2() {
+ DateTime oneStartTime = DateUtil.parseDate("2021-02-01");
+ DateTime oneEndTime = DateUtil.parseDate("2022-06-30");
+
+ DateTime oneStartTime2 = DateUtil.parseDate("2019-04-05");
+ DateTime oneEndTime2 = DateUtil.parseDate("2021-04-05");
+
+ Assert.assertTrue(DateUtil.isOverlap(oneStartTime, oneEndTime, oneStartTime2, oneEndTime2));
+ }
+
@Test
public void isInTest(){
String sourceStr = "2022-04-19 00:00:00";
diff --git a/hutool-core/src/test/java/cn/hutool/core/date/LocalDateTimeUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/date/LocalDateTimeUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/img/FontUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/img/FontUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/img/ImgTest.java b/hutool-core/src/test/java/cn/hutool/core/img/ImgTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/img/ImgUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/img/ImgUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/io/WatchMonitorTest.java b/hutool-core/src/test/java/cn/hutool/core/io/WatchMonitorTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/io/checksum/CrcTest.java b/hutool-core/src/test/java/cn/hutool/core/io/checksum/CrcTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/lang/AssertTest.java b/hutool-core/src/test/java/cn/hutool/core/lang/AssertTest.java
old mode 100644
new mode 100755
index e20ef6e96..7ddde8d47
--- a/hutool-core/src/test/java/cn/hutool/core/lang/AssertTest.java
+++ b/hutool-core/src/test/java/cn/hutool/core/lang/AssertTest.java
@@ -1,9 +1,10 @@
package cn.hutool.core.lang;
+import cn.hutool.core.util.StrUtil;
import org.junit.Test;
public class AssertTest {
-
+
@Test
public void isNullTest(){
String a = null;
@@ -33,6 +34,30 @@ public class AssertTest {
public void isTrueTest3() {
int i = -1;
//noinspection ConstantConditions
- Assert.isTrue(i > 0, ()-> new IndexOutOfBoundsException("relation message to return"));
+ Assert.isTrue(i > 0, () -> new IndexOutOfBoundsException("relation message to return"));
}
+
+ @Test
+ public void equalsTest() {
+ //String a="ab";
+ //final String b = new String("abc");
+ String a = null;
+ final String b = null;
+ Assert.equals(a, b);
+ Assert.equals(a, b, "{}不等于{}", a, b);
+ Assert.equals(a, b, () -> new RuntimeException(StrUtil.format("{}和{}不相等", a, b)));
+ }
+
+ @Test
+ public void notEqualsTest() {
+ //String c="19";
+ //final String d = new String("19");
+ String c = null;
+ final String d = "null";
+ //Assert.notEquals(c,d);
+ //Assert.notEquals(c,d,"{}等于{}",c,d);
+ Assert.notEquals(c, d, () -> new RuntimeException(StrUtil.format("{}和{}相等", c, d)));
+
+ }
+
}
diff --git a/hutool-core/src/test/java/cn/hutool/core/lang/DictTest.java b/hutool-core/src/test/java/cn/hutool/core/lang/DictTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/lang/ObjectIdTest.java b/hutool-core/src/test/java/cn/hutool/core/lang/ObjectIdTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/lang/SnowflakeTest.java b/hutool-core/src/test/java/cn/hutool/core/lang/SnowflakeTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/lang/UUIDTest.java b/hutool-core/src/test/java/cn/hutool/core/lang/UUIDTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/lang/ValidatorTest.java b/hutool-core/src/test/java/cn/hutool/core/lang/ValidatorTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/lang/caller/CallerTest.java b/hutool-core/src/test/java/cn/hutool/core/lang/caller/CallerTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/lang/caller/CallerUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/lang/caller/CallerUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/lang/hash/MetroHashTest.java b/hutool-core/src/test/java/cn/hutool/core/lang/hash/MetroHashTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/lang/tree/Issue2279Test.java b/hutool-core/src/test/java/cn/hutool/core/lang/tree/Issue2279Test.java
new file mode 100755
index 000000000..ad4a63004
--- /dev/null
+++ b/hutool-core/src/test/java/cn/hutool/core/lang/tree/Issue2279Test.java
@@ -0,0 +1,49 @@
+package cn.hutool.core.lang.tree;
+
+import cn.hutool.core.collection.ListUtil;
+import lombok.Data;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.util.List;
+
+public class Issue2279Test {
+
+ @Test
+ public void buildSingleTest() {
+ List list = ListUtil.of(
+ // 模拟数据
+ new TestTree(1, 0, 1, 1),
+ new TestTree(2, 1, 2, 2),
+ new TestTree(3, 1, 3, 3),
+ new TestTree(4, 2, 4, 4)
+ );
+
+ List> stringTree = TreeUtil.build(list, "0",
+ (object, treeNode) -> {
+ treeNode.setId(object.getId());
+ treeNode.setName(object.getName());
+ treeNode.setParentId(object.getPid());
+ treeNode.putExtra("extra1",object.getExtra1());
+ }
+ );
+
+ final Tree result = stringTree.get(0);
+ Assert.assertEquals(2, result.getChildren().size());
+ }
+
+ @Data
+ static class TestTree {
+ private String id;
+ private String pid;
+ private String name;
+ private String extra1;
+
+ public TestTree(int id, int pid, int name, int extra1) {
+ this.id = String.valueOf(id);
+ this.pid = String.valueOf(pid);
+ this.name = String.valueOf(name);
+ this.extra1 = String.valueOf(extra1);
+ }
+ }
+}
diff --git a/hutool-core/src/test/java/cn/hutool/core/lang/tree/TreeBuilderTest.java b/hutool-core/src/test/java/cn/hutool/core/lang/tree/TreeBuilderTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/lang/tree/TreeSearchTest.java b/hutool-core/src/test/java/cn/hutool/core/lang/tree/TreeSearchTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/lang/tree/TreeTest.java b/hutool-core/src/test/java/cn/hutool/core/lang/tree/TreeTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/math/ArrangementTest.java b/hutool-core/src/test/java/cn/hutool/core/math/ArrangementTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/net/NetUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/net/NetUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/net/RFC3986Test.java b/hutool-core/src/test/java/cn/hutool/core/net/RFC3986Test.java
index 781b78001..e549e9a9f 100644
--- a/hutool-core/src/test/java/cn/hutool/core/net/RFC3986Test.java
+++ b/hutool-core/src/test/java/cn/hutool/core/net/RFC3986Test.java
@@ -1,9 +1,13 @@
package cn.hutool.core.net;
+import cn.hutool.core.codec.PercentCodec;
import cn.hutool.core.util.CharsetUtil;
import org.junit.Assert;
import org.junit.Test;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+
public class RFC3986Test {
@Test
@@ -26,4 +30,12 @@ public class RFC3986Test {
String encode = RFC3986.QUERY_PARAM_VALUE.encode("a=%25", CharsetUtil.CHARSET_UTF_8, '%');
Assert.assertEquals("a=%25", encode);
}
+
+ @Test
+ public void encodeAllTest() throws UnsupportedEncodingException {
+ String toVerifyText = "行吧行吧 cargo:1.0,\"Deta-ils:[{";
+ final String encode = PercentCodec.of(RFC3986.UNRESERVED).setEncodeSpaceAsPlus(true).encode(toVerifyText, CharsetUtil.CHARSET_UTF_8);
+ final String encodeJdk = URLEncoder.encode(toVerifyText, "UTF-8");
+ Assert.assertEquals(encode, encodeJdk);
+ }
}
diff --git a/hutool-core/src/test/java/cn/hutool/core/swing/ClipboardMonitorTest.java b/hutool-core/src/test/java/cn/hutool/core/swing/ClipboardMonitorTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/swing/ClipboardUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/swing/ClipboardUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/swing/DesktopUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/swing/DesktopUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/swing/RobotUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/swing/RobotUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/text/NamingCaseTest.java b/hutool-core/src/test/java/cn/hutool/core/text/NamingCaseTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/text/csv/CsvParserTest.java b/hutool-core/src/test/java/cn/hutool/core/text/csv/CsvParserTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/text/csv/CsvReaderTest.java b/hutool-core/src/test/java/cn/hutool/core/text/csv/CsvReaderTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/text/csv/CsvUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/text/csv/CsvUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/thread/ConcurrencyTesterTest.java b/hutool-core/src/test/java/cn/hutool/core/thread/ConcurrencyTesterTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/util/EscapeUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/EscapeUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/util/HashUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/HashUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/util/HexUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/HexUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/util/IdUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/IdUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/util/ReUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/ReUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/java/cn/hutool/core/util/StrUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/StrUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/resources/test-compile/a/A.java b/hutool-core/src/test/resources/test-compile/a/A.java
old mode 100644
new mode 100755
diff --git a/hutool-core/src/test/resources/test_bean.csv b/hutool-core/src/test/resources/test_bean.csv
old mode 100644
new mode 100755
diff --git a/hutool-cron/pom.xml b/hutool-cron/pom.xml
index a909049f1..b2139d0e6 100755
--- a/hutool-cron/pom.xml
+++ b/hutool-cron/pom.xml
@@ -9,7 +9,7 @@
cn.hutool
hutool-parent
- 5.8.0.M4
+ 5.8.0
hutool-cron
diff --git a/hutool-cron/src/main/java/cn/hutool/cron/Scheduler.java b/hutool-cron/src/main/java/cn/hutool/cron/Scheduler.java
old mode 100644
new mode 100755
diff --git a/hutool-cron/src/main/java/cn/hutool/cron/pattern/CronPatternUtil.java b/hutool-cron/src/main/java/cn/hutool/cron/pattern/CronPatternUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-cron/src/main/java/cn/hutool/cron/pattern/matcher/PartMatcher.java b/hutool-cron/src/main/java/cn/hutool/cron/pattern/matcher/PartMatcher.java
old mode 100644
new mode 100755
diff --git a/hutool-cron/src/test/java/cn/hutool/cron/TaskTableTest.java b/hutool-cron/src/test/java/cn/hutool/cron/TaskTableTest.java
old mode 100644
new mode 100755
diff --git a/hutool-cron/src/test/java/cn/hutool/cron/demo/AddAndRemoveMainTest.java b/hutool-cron/src/test/java/cn/hutool/cron/demo/AddAndRemoveMainTest.java
old mode 100644
new mode 100755
diff --git a/hutool-cron/src/test/java/cn/hutool/cron/demo/TestJob.java b/hutool-cron/src/test/java/cn/hutool/cron/demo/TestJob.java
old mode 100644
new mode 100755
diff --git a/hutool-cron/src/test/java/cn/hutool/cron/demo/TestJob2.java b/hutool-cron/src/test/java/cn/hutool/cron/demo/TestJob2.java
old mode 100644
new mode 100755
diff --git a/hutool-cron/src/test/java/cn/hutool/cron/pattern/CronPatternTest.java b/hutool-cron/src/test/java/cn/hutool/cron/pattern/CronPatternTest.java
old mode 100644
new mode 100755
diff --git a/hutool-crypto/pom.xml b/hutool-crypto/pom.xml
index 78413bf0d..8c967bffb 100755
--- a/hutool-crypto/pom.xml
+++ b/hutool-crypto/pom.xml
@@ -9,7 +9,7 @@
cn.hutool
hutool-parent
- 5.8.0.M4
+ 5.8.0
hutool-crypto
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/SecureUtil.java b/hutool-crypto/src/main/java/cn/hutool/crypto/SecureUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricEncryptor.java b/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricEncryptor.java
old mode 100644
new mode 100755
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/SM2.java b/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/SM2.java
old mode 100644
new mode 100755
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/Sign.java b/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/Sign.java
old mode 100644
new mode 100755
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/digest/DigestUtil.java b/hutool-crypto/src/main/java/cn/hutool/crypto/digest/DigestUtil.java
index fc6fd61ce..e6c04e305 100644
--- a/hutool-crypto/src/main/java/cn/hutool/crypto/digest/DigestUtil.java
+++ b/hutool-crypto/src/main/java/cn/hutool/crypto/digest/DigestUtil.java
@@ -487,4 +487,110 @@ public class DigestUtil {
public static boolean bcryptCheck(String password, String hashed) {
return BCrypt.checkpw(password, hashed);
}
+
+ // ------------------------------------------------------------------------------------------- SHA-512
+
+ /**
+ * 计算SHA-512摘要值
+ *
+ * @param data 被摘要数据
+ * @return SHA-512摘要
+ */
+ public static byte[] sha512(final byte[] data) {
+ return new Digester(DigestAlgorithm.SHA512).digest(data);
+ }
+
+ /**
+ * 计算SHA-512摘要值
+ *
+ * @param data 被摘要数据
+ * @param charset 编码
+ * @return SHA-512摘要
+ * @since 3.0.8
+ */
+ public static byte[] sha512(final String data, final String charset) {
+ return new Digester(DigestAlgorithm.SHA512).digest(data, charset);
+ }
+
+ /**
+ * 计算sha512摘要值,使用UTF-8编码
+ *
+ * @param data 被摘要数据
+ * @return MD5摘要
+ */
+ public static byte[] sha512(final String data) {
+ return sha512(data, CharsetUtil.UTF_8);
+ }
+
+ /**
+ * 计算SHA-512摘要值
+ *
+ * @param data 被摘要数据
+ * @return SHA-512摘要
+ */
+ public static byte[] sha512(final InputStream data) {
+ return new Digester(DigestAlgorithm.SHA512).digest(data);
+ }
+
+ /**
+ * 计算SHA-512摘要值
+ *
+ * @param file 被摘要文件
+ * @return SHA-512摘要
+ */
+ public static byte[] sha512(final File file) {
+ return new Digester(DigestAlgorithm.SHA512).digest(file);
+ }
+
+ /**
+ * 计算SHA-1摘要值,并转为16进制字符串
+ *
+ * @param data 被摘要数据
+ * @return SHA-512摘要的16进制表示
+ */
+ public static String sha512Hex(final byte[] data) {
+ return new Digester(DigestAlgorithm.SHA512).digestHex(data);
+ }
+
+ /**
+ * 计算SHA-512摘要值,并转为16进制字符串
+ *
+ * @param data 被摘要数据
+ * @param charset 编码
+ * @return SHA-512摘要的16进制表示
+ */
+ public static String sha512Hex(final String data, final String charset) {
+ return new Digester(DigestAlgorithm.SHA512).digestHex(data, charset);
+ }
+
+ /**
+ * 计算SHA-512摘要值,并转为16进制字符串
+ *
+ * @param data 被摘要数据
+ * @return SHA-512摘要的16进制表示
+ */
+ public static String sha512Hex(final String data) {
+ return sha512Hex(data, CharsetUtil.UTF_8);
+ }
+
+ /**
+ * 计算SHA-512摘要值,并转为16进制字符串
+ *
+ * @param data 被摘要数据
+ * @return SHA-512摘要的16进制表示
+ */
+ public static String sha512Hex(final InputStream data) {
+ return new Digester(DigestAlgorithm.SHA512).digestHex(data);
+ }
+
+ /**
+ * 计算SHA-512摘要值,并转为16进制字符串
+ *
+ * @param file 被摘要文件
+ * @return SHA-512摘要的16进制表示
+ */
+ public static String sha512Hex(final File file) {
+ return new Digester(DigestAlgorithm.SHA512).digestHex(file);
+ }
+
}
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/digest/Digester.java b/hutool-crypto/src/main/java/cn/hutool/crypto/digest/Digester.java
old mode 100644
new mode 100755
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/digest/mac/Mac.java b/hutool-crypto/src/main/java/cn/hutool/crypto/digest/mac/Mac.java
old mode 100644
new mode 100755
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/PBKDF2.java b/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/PBKDF2.java
old mode 100644
new mode 100755
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/RC4.java b/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/RC4.java
old mode 100644
new mode 100755
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/SymmetricCrypto.java b/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/SymmetricCrypto.java
old mode 100644
new mode 100755
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/SymmetricEncryptor.java b/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/SymmetricEncryptor.java
old mode 100644
new mode 100755
diff --git a/hutool-crypto/src/test/java/cn/hutool/crypto/test/asymmetric/RSATest.java b/hutool-crypto/src/test/java/cn/hutool/crypto/test/asymmetric/RSATest.java
old mode 100644
new mode 100755
diff --git a/hutool-crypto/src/test/java/cn/hutool/crypto/test/asymmetric/SM2Test.java b/hutool-crypto/src/test/java/cn/hutool/crypto/test/asymmetric/SM2Test.java
old mode 100644
new mode 100755
diff --git a/hutool-crypto/src/test/java/cn/hutool/crypto/test/symmetric/AESTest.java b/hutool-crypto/src/test/java/cn/hutool/crypto/test/symmetric/AESTest.java
old mode 100644
new mode 100755
diff --git a/hutool-db/pom.xml b/hutool-db/pom.xml
index 2cfc0667c..6b3188371 100755
--- a/hutool-db/pom.xml
+++ b/hutool-db/pom.xml
@@ -9,7 +9,7 @@
cn.hutool
hutool-parent
- 5.8.0.M4
+ 5.8.0
hutool-db
@@ -94,6 +94,12 @@
org.apache.commons
commons-dbcp2
${dbcp2.version}
+
+
+ commons-pool2
+ org.apache.commons
+
+
true
@@ -108,10 +114,6 @@
jedis
${jedis.version}
-
- commons-pool2
- org.apache.commons
-
slf4j-api
org.slf4j
@@ -174,6 +176,12 @@
clickhouse-jdbc
0.3.2
test
+
+
+ gson
+ com.google.code.gson
+
+
diff --git a/hutool-db/src/main/java/cn/hutool/db/AbstractDb.java b/hutool-db/src/main/java/cn/hutool/db/AbstractDb.java
old mode 100644
new mode 100755
diff --git a/hutool-db/src/main/java/cn/hutool/db/ActiveEntity.java b/hutool-db/src/main/java/cn/hutool/db/ActiveEntity.java
old mode 100644
new mode 100755
diff --git a/hutool-db/src/main/java/cn/hutool/db/Entity.java b/hutool-db/src/main/java/cn/hutool/db/Entity.java
old mode 100644
new mode 100755
diff --git a/hutool-db/src/main/java/cn/hutool/db/ThreadLocalConnection.java b/hutool-db/src/main/java/cn/hutool/db/ThreadLocalConnection.java
old mode 100644
new mode 100755
diff --git a/hutool-db/src/main/java/cn/hutool/db/dialect/DialectFactory.java b/hutool-db/src/main/java/cn/hutool/db/dialect/DialectFactory.java
old mode 100644
new mode 100755
diff --git a/hutool-db/src/main/java/cn/hutool/db/meta/Column.java b/hutool-db/src/main/java/cn/hutool/db/meta/Column.java
old mode 100644
new mode 100755
diff --git a/hutool-db/src/main/java/cn/hutool/db/meta/MetaUtil.java b/hutool-db/src/main/java/cn/hutool/db/meta/MetaUtil.java
old mode 100644
new mode 100755
index bb151db76..f1ecafa83
--- a/hutool-db/src/main/java/cn/hutool/db/meta/MetaUtil.java
+++ b/hutool-db/src/main/java/cn/hutool/db/meta/MetaUtil.java
@@ -82,13 +82,13 @@ public class MetaUtil {
conn = ds.getConnection();
// catalog和schema获取失败默认使用null代替
- String catalog = getCatalog(conn);
+ final String catalog = getCatalog(conn);
if (null == schema) {
schema = getSchema(conn);
}
final DatabaseMetaData metaData = conn.getMetaData();
- try (ResultSet rs = metaData.getTables(catalog, schema, tableName, Convert.toStrArray(types))) {
+ try (final ResultSet rs = metaData.getTables(catalog, schema, tableName, Convert.toStrArray(types))) {
if (null != rs) {
String table;
while (rs.next()) {
@@ -116,9 +116,9 @@ public class MetaUtil {
*/
public static String[] getColumnNames(ResultSet rs) throws DbRuntimeException {
try {
- ResultSetMetaData rsmd = rs.getMetaData();
- int columnCount = rsmd.getColumnCount();
- String[] labelNames = new String[columnCount];
+ final ResultSetMetaData rsmd = rs.getMetaData();
+ final int columnCount = rsmd.getColumnCount();
+ final String[] labelNames = new String[columnCount];
for (int i = 0; i < labelNames.length; i++) {
labelNames[i] = rsmd.getColumnLabel(i + 1);
}
@@ -137,17 +137,17 @@ public class MetaUtil {
* @throws DbRuntimeException SQL执行异常
*/
public static String[] getColumnNames(DataSource ds, String tableName) {
- List columnNames = new ArrayList<>();
+ final List columnNames = new ArrayList<>();
Connection conn = null;
try {
conn = ds.getConnection();
// catalog和schema获取失败默认使用null代替
- String catalog = getCatalog(conn);
- String schema = getSchema(conn);
+ final String catalog = getCatalog(conn);
+ final String schema = getSchema(conn);
final DatabaseMetaData metaData = conn.getMetaData();
- try (ResultSet rs = metaData.getColumns(catalog, schema, tableName, null)) {
+ try (final ResultSet rs = metaData.getColumns(catalog, schema, tableName, null)) {
if (null != rs) {
while (rs.next()) {
columnNames.add(rs.getString("COLUMN_NAME"));
@@ -225,7 +225,7 @@ public class MetaUtil {
final DatabaseMetaData metaData = conn.getMetaData();
// 获得表元数据(表注释)
- try (ResultSet rs = metaData.getTables(catalog, schema, tableName, new String[]{TableType.TABLE.value()})) {
+ try (final ResultSet rs = metaData.getTables(catalog, schema, tableName, new String[]{TableType.TABLE.value()})) {
if (null != rs) {
if (rs.next()) {
table.setComment(rs.getString("REMARKS"));
@@ -234,7 +234,7 @@ public class MetaUtil {
}
// 获得主键
- try (ResultSet rs = metaData.getPrimaryKeys(catalog, schema, tableName)) {
+ try (final ResultSet rs = metaData.getPrimaryKeys(catalog, schema, tableName)) {
if (null != rs) {
while (rs.next()) {
table.addPk(rs.getString("COLUMN_NAME"));
@@ -243,7 +243,7 @@ public class MetaUtil {
}
// 获得列
- try (ResultSet rs = metaData.getColumns(catalog, schema, tableName, null)) {
+ try (final ResultSet rs = metaData.getColumns(catalog, schema, tableName, null)) {
if (null != rs) {
while (rs.next()) {
table.setColumn(Column.create(table, rs));
@@ -252,7 +252,7 @@ public class MetaUtil {
}
// 获得索引信息(since 5.7.23)
- try (ResultSet rs = metaData.getIndexInfo(catalog, schema, tableName, false, false)) {
+ try (final ResultSet rs = metaData.getIndexInfo(catalog, schema, tableName, false, false)) {
final Map indexInfoMap = new LinkedHashMap<>();
if (null != rs) {
while (rs.next()) {
diff --git a/hutool-db/src/main/java/cn/hutool/db/nosql/redis/RedisDS.java b/hutool-db/src/main/java/cn/hutool/db/nosql/redis/RedisDS.java
old mode 100644
new mode 100755
index 2236802cc..8145e745b
--- a/hutool-db/src/main/java/cn/hutool/db/nosql/redis/RedisDS.java
+++ b/hutool-db/src/main/java/cn/hutool/db/nosql/redis/RedisDS.java
@@ -13,7 +13,7 @@ import java.io.Serializable;
/**
* Jedis数据源
- *
+ *
* @author looly
* @since 3.2.3
*/
@@ -30,7 +30,7 @@ public class RedisDS implements Closeable, Serializable {
// --------------------------------------------------------------------------------- Static method start
/**
* 创建RedisDS,使用默认配置文件,默认分组
- *
+ *
* @return RedisDS
*/
public static RedisDS create() {
@@ -39,7 +39,7 @@ public class RedisDS implements Closeable, Serializable {
/**
* 创建RedisDS,使用默认配置文件
- *
+ *
* @param group 配置文件中配置分组
* @return RedisDS
*/
@@ -49,7 +49,7 @@ public class RedisDS implements Closeable, Serializable {
/**
* 创建RedisDS
- *
+ *
* @param setting 配置文件
* @param group 配置文件中配置分组
* @return RedisDS
@@ -68,7 +68,7 @@ public class RedisDS implements Closeable, Serializable {
/**
* 构造,使用默认配置文件
- *
+ *
* @param group 配置文件中配置分组
*/
public RedisDS(String group) {
@@ -77,7 +77,7 @@ public class RedisDS implements Closeable, Serializable {
/**
* 构造
- *
+ *
* @param setting 配置文件
* @param group 配置文件中配置分组
*/
@@ -88,7 +88,7 @@ public class RedisDS implements Closeable, Serializable {
/**
* 初始化Jedis客户端
- *
+ *
* @param group Redis服务器信息分组
* @return this
*/
@@ -105,6 +105,13 @@ public class RedisDS implements Closeable, Serializable {
setting.toBean(group, config);
}
+ //issue#I54TZ9
+ final Long maxWaitMillis = setting.getLong("maxWaitMillis");
+ if(null != maxWaitMillis){
+ //noinspection deprecation
+ config.setMaxWaitMillis(maxWaitMillis);
+ }
+
this.pool = new JedisPool(config,
// 地址
setting.getStr("host", group, Protocol.DEFAULT_HOST),
@@ -130,7 +137,7 @@ public class RedisDS implements Closeable, Serializable {
/**
* 从资源池中获取{@link Jedis}
- *
+ *
* @return {@link Jedis}
*/
public Jedis getJedis() {
@@ -139,7 +146,7 @@ public class RedisDS implements Closeable, Serializable {
/**
* 从Redis中获取值
- *
+ *
* @param key 键
* @return 值
*/
@@ -151,7 +158,7 @@ public class RedisDS implements Closeable, Serializable {
/**
* 从Redis中获取值
- *
+ *
* @param key 键
* @param value 值
* @return 状态码
@@ -161,10 +168,10 @@ public class RedisDS implements Closeable, Serializable {
return jedis.set(key, value);
}
}
-
+
/**
* 从Redis中删除多个值
- *
+ *
* @param keys 需要删除值对应的键列表
* @return 删除个数,0表示无key可删除
*/
diff --git a/hutool-db/src/main/java/cn/hutool/db/sql/SqlExecutor.java b/hutool-db/src/main/java/cn/hutool/db/sql/SqlExecutor.java
old mode 100644
new mode 100755
diff --git a/hutool-db/src/test/java/cn/hutool/db/ConcurentTest.java b/hutool-db/src/test/java/cn/hutool/db/ConcurentTest.java
old mode 100644
new mode 100755
diff --git a/hutool-db/src/test/java/cn/hutool/db/MySQLTest.java b/hutool-db/src/test/java/cn/hutool/db/MySQLTest.java
old mode 100644
new mode 100755
diff --git a/hutool-db/src/test/java/cn/hutool/db/OracleTest.java b/hutool-db/src/test/java/cn/hutool/db/OracleTest.java
old mode 100644
new mode 100755
diff --git a/hutool-db/src/test/java/cn/hutool/db/SqlServerTest.java b/hutool-db/src/test/java/cn/hutool/db/SqlServerTest.java
old mode 100644
new mode 100755
diff --git a/hutool-db/src/test/java/cn/hutool/db/meta/MetaUtilTest.java b/hutool-db/src/test/java/cn/hutool/db/meta/MetaUtilTest.java
index 0abd88676..d9ece6a58 100644
--- a/hutool-db/src/test/java/cn/hutool/db/meta/MetaUtilTest.java
+++ b/hutool-db/src/test/java/cn/hutool/db/meta/MetaUtilTest.java
@@ -2,6 +2,7 @@ package cn.hutool.db.meta;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
+import cn.hutool.db.DbRuntimeException;
import cn.hutool.db.ds.DSFactory;
import org.junit.Assert;
import org.junit.Test;
@@ -20,25 +21,34 @@ public class MetaUtilTest {
@Test
public void getTablesTest() {
- List tables = MetaUtil.getTables(ds);
+ final List tables = MetaUtil.getTables(ds);
Assert.assertEquals("user", tables.get(0));
}
@Test
public void getTableMetaTest() {
- Table table = MetaUtil.getTableMeta(ds, "user");
+ final Table table = MetaUtil.getTableMeta(ds, "user");
Assert.assertEquals(CollectionUtil.newHashSet("id"), table.getPkNames());
}
@Test
public void getColumnNamesTest() {
- String[] names = MetaUtil.getColumnNames(ds, "user");
+ final String[] names = MetaUtil.getColumnNames(ds, "user");
Assert.assertArrayEquals(StrUtil.splitToArray("id,name,age,birthday,gender", ','), names);
}
@Test
public void getTableIndexInfoTest() {
- Table table = MetaUtil.getTableMeta(ds, "user_1");
+ final Table table = MetaUtil.getTableMeta(ds, "user_1");
+ Assert.assertEquals(table.getIndexInfoList().size(), 2);
+ }
+
+ /**
+ * 表不存在抛出异常。
+ */
+ @Test(expected = DbRuntimeException.class)
+ public void getTableNotExistTest() {
+ final Table table = MetaUtil.getTableMeta(ds, "user_not_exist");
Assert.assertEquals(table.getIndexInfoList().size(), 2);
}
}
diff --git a/hutool-dfa/pom.xml b/hutool-dfa/pom.xml
index 0fe550242..bb5c1b43c 100755
--- a/hutool-dfa/pom.xml
+++ b/hutool-dfa/pom.xml
@@ -9,7 +9,7 @@
cn.hutool
hutool-parent
- 5.8.0.M4
+ 5.8.0
hutool-dfa
diff --git a/hutool-dfa/src/main/java/cn/hutool/dfa/FoundWord.java b/hutool-dfa/src/main/java/cn/hutool/dfa/FoundWord.java
old mode 100644
new mode 100755
diff --git a/hutool-dfa/src/main/java/cn/hutool/dfa/SensitiveProcessor.java b/hutool-dfa/src/main/java/cn/hutool/dfa/SensitiveProcessor.java
old mode 100644
new mode 100755
diff --git a/hutool-dfa/src/main/java/cn/hutool/dfa/SensitiveUtil.java b/hutool-dfa/src/main/java/cn/hutool/dfa/SensitiveUtil.java
old mode 100644
new mode 100755
index bcf81a784..ba8507cff
--- a/hutool-dfa/src/main/java/cn/hutool/dfa/SensitiveUtil.java
+++ b/hutool-dfa/src/main/java/cn/hutool/dfa/SensitiveUtil.java
@@ -194,7 +194,7 @@ public final class SensitiveUtil {
* @return 敏感词过滤处理后的bean对象
*/
public static T sensitiveFilter(T bean, boolean isGreedMatch, SensitiveProcessor sensitiveProcessor) {
- String jsonText = JSONUtil.toJsonStr(bean);
+ final String jsonText = JSONUtil.toJsonStr(bean);
@SuppressWarnings("unchecked") final Class c = (Class) bean.getClass();
return JSONUtil.toBean(sensitiveFilter(jsonText, isGreedMatch, sensitiveProcessor), c);
}
@@ -224,7 +224,7 @@ public final class SensitiveUtil {
}
//敏感词过滤场景下,不需要密集匹配
- List foundWordList = getFoundAllSensitive(text, true, isGreedMatch);
+ final List foundWordList = getFoundAllSensitive(text, true, isGreedMatch);
if (CollUtil.isEmpty(foundWordList)) {
return text;
}
@@ -233,10 +233,10 @@ public final class SensitiveUtil {
final Map foundWordMap = new HashMap<>(foundWordList.size(), 1);
foundWordList.forEach(foundWord -> foundWordMap.put(foundWord.getStartIndex(), foundWord));
- int length = text.length();
- StringBuilder textStringBuilder = new StringBuilder();
+ final int length = text.length();
+ final StringBuilder textStringBuilder = new StringBuilder();
for (int i = 0; i < length; i++) {
- FoundWord fw = foundWordMap.get(i);
+ final FoundWord fw = foundWordMap.get(i);
if (fw != null) {
textStringBuilder.append(sensitiveProcessor.process(fw));
i = fw.getEndIndex();
diff --git a/hutool-dfa/src/main/java/cn/hutool/dfa/StopChar.java b/hutool-dfa/src/main/java/cn/hutool/dfa/StopChar.java
old mode 100644
new mode 100755
diff --git a/hutool-dfa/src/main/java/cn/hutool/dfa/WordTree.java b/hutool-dfa/src/main/java/cn/hutool/dfa/WordTree.java
old mode 100644
new mode 100755
diff --git a/hutool-dfa/src/main/java/cn/hutool/dfa/package-info.java b/hutool-dfa/src/main/java/cn/hutool/dfa/package-info.java
old mode 100644
new mode 100755
diff --git a/hutool-dfa/src/test/java/cn/hutool/dfa/DfaTest.java b/hutool-dfa/src/test/java/cn/hutool/dfa/DfaTest.java
old mode 100644
new mode 100755
diff --git a/hutool-dfa/src/test/java/cn/hutool/dfa/SensitiveUtilTest.java b/hutool-dfa/src/test/java/cn/hutool/dfa/SensitiveUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/pom.xml b/hutool-extra/pom.xml
index 640233309..fe6e30d38 100755
--- a/hutool-extra/pom.xml
+++ b/hutool-extra/pom.xml
@@ -9,7 +9,7 @@
cn.hutool
hutool-parent
- 5.8.0.M4
+ 5.8.0
hutool-extra
@@ -361,20 +361,20 @@
jakarta.validation
jakarta.validation-api
- 2.0.2
+ 3.0.1
compile
true
org.hibernate.validator
hibernate-validator
- 6.1.6.Final
+ 7.0.4.Final
test
org.glassfish
- javax.el
- 3.0.0
+ jakarta.el
+ 4.0.2
test
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/compress/archiver/Archiver.java b/hutool-extra/src/main/java/cn/hutool/extra/compress/archiver/Archiver.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/compress/archiver/SevenZArchiver.java b/hutool-extra/src/main/java/cn/hutool/extra/compress/archiver/SevenZArchiver.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/compress/archiver/StreamArchiver.java b/hutool-extra/src/main/java/cn/hutool/extra/compress/archiver/StreamArchiver.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/compress/extractor/Extractor.java b/hutool-extra/src/main/java/cn/hutool/extra/compress/extractor/Extractor.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/compress/extractor/SevenZExtractor.java b/hutool-extra/src/main/java/cn/hutool/extra/compress/extractor/SevenZExtractor.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/compress/extractor/StreamExtractor.java b/hutool-extra/src/main/java/cn/hutool/extra/compress/extractor/StreamExtractor.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/qrcode/QrCodeUtil.java b/hutool-extra/src/main/java/cn/hutool/extra/qrcode/QrCodeUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/qrcode/QrConfig.java b/hutool-extra/src/main/java/cn/hutool/extra/qrcode/QrConfig.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/spring/SpringUtil.java b/hutool-extra/src/main/java/cn/hutool/extra/spring/SpringUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/ssh/JschSessionPool.java b/hutool-extra/src/main/java/cn/hutool/extra/ssh/JschSessionPool.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/template/engine/enjoy/EnjoyEngine.java b/hutool-extra/src/main/java/cn/hutool/extra/template/engine/enjoy/EnjoyEngine.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/template/engine/rythm/RythmTemplate.java b/hutool-extra/src/main/java/cn/hutool/extra/template/engine/rythm/RythmTemplate.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/template/engine/thymeleaf/ThymeleafTemplate.java b/hutool-extra/src/main/java/cn/hutool/extra/template/engine/thymeleaf/ThymeleafTemplate.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/template/engine/velocity/VelocityTemplate.java b/hutool-extra/src/main/java/cn/hutool/extra/template/engine/velocity/VelocityTemplate.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/template/engine/wit/WitEngine.java b/hutool-extra/src/main/java/cn/hutool/extra/template/engine/wit/WitEngine.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/template/engine/wit/WitTemplate.java b/hutool-extra/src/main/java/cn/hutool/extra/template/engine/wit/WitTemplate.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/TokenizerFactory.java b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/TokenizerFactory.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/validation/ValidationUtil.java b/hutool-extra/src/main/java/cn/hutool/extra/validation/ValidationUtil.java
old mode 100644
new mode 100755
index cb9a4cd1c..ca49fa7f9
--- a/hutool-extra/src/main/java/cn/hutool/extra/validation/ValidationUtil.java
+++ b/hutool-extra/src/main/java/cn/hutool/extra/validation/ValidationUtil.java
@@ -2,9 +2,11 @@ package cn.hutool.extra.validation;
import cn.hutool.extra.validation.BeanValidationResult.ErrorMessage;
-import javax.validation.ConstraintViolation;
-import javax.validation.Validation;
-import javax.validation.Validator;
+import jakarta.validation.ConstraintViolation;
+import jakarta.validation.Validation;
+import jakarta.validation.Validator;
+import jakarta.validation.ValidatorFactory;
+
import java.util.Set;
@@ -24,7 +26,9 @@ public class ValidationUtil {
private static final Validator validator;
static {
- validator = Validation.buildDefaultValidatorFactory().getValidator();
+ try(ValidatorFactory factory = Validation.buildDefaultValidatorFactory()){
+ validator = factory.getValidator();
+ }
}
/**
diff --git a/hutool-extra/src/test/java/cn/hutool/extra/expression/AviatorTest.java b/hutool-extra/src/test/java/cn/hutool/extra/expression/AviatorTest.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/test/java/cn/hutool/extra/expression/ExpressionUtilTest.java b/hutool-extra/src/test/java/cn/hutool/extra/expression/ExpressionUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/test/java/cn/hutool/extra/qrcode/QrCodeUtilTest.java b/hutool-extra/src/test/java/cn/hutool/extra/qrcode/QrCodeUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/test/java/cn/hutool/extra/spring/SpringUtilTest.java b/hutool-extra/src/test/java/cn/hutool/extra/spring/SpringUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/test/java/cn/hutool/extra/spring/SpringUtilWithAutoConfigTest.java b/hutool-extra/src/test/java/cn/hutool/extra/spring/SpringUtilWithAutoConfigTest.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/test/java/cn/hutool/extra/ssh/JschUtilTest.java b/hutool-extra/src/test/java/cn/hutool/extra/ssh/JschUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/test/java/cn/hutool/extra/template/TemplateUtilTest.java b/hutool-extra/src/test/java/cn/hutool/extra/template/TemplateUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/test/java/cn/hutool/extra/template/ThymeleafTest.java b/hutool-extra/src/test/java/cn/hutool/extra/template/ThymeleafTest.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/test/java/cn/hutool/extra/template/VelocityTest.java b/hutool-extra/src/test/java/cn/hutool/extra/template/VelocityTest.java
old mode 100644
new mode 100755
diff --git a/hutool-extra/src/test/java/cn/hutool/extra/validation/BeanValidatorUtilTest.java b/hutool-extra/src/test/java/cn/hutool/extra/validation/BeanValidatorUtilTest.java
old mode 100644
new mode 100755
index 395f3ad7d..ce2ed7217
--- a/hutool-extra/src/test/java/cn/hutool/extra/validation/BeanValidatorUtilTest.java
+++ b/hutool-extra/src/test/java/cn/hutool/extra/validation/BeanValidatorUtilTest.java
@@ -3,7 +3,7 @@ package cn.hutool.extra.validation;
import org.junit.Assert;
import org.junit.Test;
-import javax.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotBlank;
/**
* java bean 校验工具类单元测试
diff --git a/hutool-http/pom.xml b/hutool-http/pom.xml
index d09e036c8..da31f1d78 100755
--- a/hutool-http/pom.xml
+++ b/hutool-http/pom.xml
@@ -9,7 +9,7 @@
cn.hutool
hutool-parent
- 5.8.0.M4
+ 5.8.0
hutool-http
diff --git a/hutool-http/src/main/java/cn/hutool/http/HtmlUtil.java b/hutool-http/src/main/java/cn/hutool/http/HtmlUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-http/src/main/java/cn/hutool/http/HttpResponse.java b/hutool-http/src/main/java/cn/hutool/http/HttpResponse.java
old mode 100644
new mode 100755
diff --git a/hutool-http/src/main/java/cn/hutool/http/HttpUtil.java b/hutool-http/src/main/java/cn/hutool/http/HttpUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-http/src/main/java/cn/hutool/http/ssl/SSLSocketFactoryBuilder.java b/hutool-http/src/main/java/cn/hutool/http/ssl/SSLSocketFactoryBuilder.java
old mode 100644
new mode 100755
diff --git a/hutool-http/src/main/java/cn/hutool/http/useragent/Browser.java b/hutool-http/src/main/java/cn/hutool/http/useragent/Browser.java
old mode 100644
new mode 100755
diff --git a/hutool-http/src/main/java/cn/hutool/http/useragent/Engine.java b/hutool-http/src/main/java/cn/hutool/http/useragent/Engine.java
old mode 100644
new mode 100755
diff --git a/hutool-http/src/main/java/cn/hutool/http/useragent/OS.java b/hutool-http/src/main/java/cn/hutool/http/useragent/OS.java
old mode 100644
new mode 100755
diff --git a/hutool-http/src/main/java/cn/hutool/http/useragent/UserAgentInfo.java b/hutool-http/src/main/java/cn/hutool/http/useragent/UserAgentInfo.java
old mode 100644
new mode 100755
diff --git a/hutool-http/src/test/java/cn/hutool/http/HttpUtilTest.java b/hutool-http/src/test/java/cn/hutool/http/HttpUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-http/src/test/java/cn/hutool/http/server/BlankServerTest.java b/hutool-http/src/test/java/cn/hutool/http/server/BlankServerTest.java
old mode 100644
new mode 100755
diff --git a/hutool-http/src/test/java/cn/hutool/http/server/DocServerTest.java b/hutool-http/src/test/java/cn/hutool/http/server/DocServerTest.java
old mode 100644
new mode 100755
diff --git a/hutool-json/pom.xml b/hutool-json/pom.xml
index 0e9901c56..0d0d1152c 100755
--- a/hutool-json/pom.xml
+++ b/hutool-json/pom.xml
@@ -9,7 +9,7 @@
cn.hutool
hutool-parent
- 5.8.0.M4
+ 5.8.0
hutool-json
diff --git a/hutool-json/src/main/java/cn/hutool/json/JSON.java b/hutool-json/src/main/java/cn/hutool/json/JSON.java
old mode 100644
new mode 100755
diff --git a/hutool-json/src/main/java/cn/hutool/json/JSONConfig.java b/hutool-json/src/main/java/cn/hutool/json/JSONConfig.java
old mode 100644
new mode 100755
diff --git a/hutool-json/src/main/java/cn/hutool/json/xml/JSONXMLSerializer.java b/hutool-json/src/main/java/cn/hutool/json/xml/JSONXMLSerializer.java
old mode 100644
new mode 100755
diff --git a/hutool-json/src/test/java/cn/hutool/json/Issue1101Test.java b/hutool-json/src/test/java/cn/hutool/json/Issue1101Test.java
old mode 100644
new mode 100755
diff --git a/hutool-json/src/test/java/cn/hutool/json/Issue488Test.java b/hutool-json/src/test/java/cn/hutool/json/Issue488Test.java
old mode 100644
new mode 100755
diff --git a/hutool-json/src/test/java/cn/hutool/json/issueIVMD5/IssueIVMD5Test.java b/hutool-json/src/test/java/cn/hutool/json/issueIVMD5/IssueIVMD5Test.java
old mode 100644
new mode 100755
diff --git a/hutool-jwt/pom.xml b/hutool-jwt/pom.xml
index a328d47e8..5b80df24c 100755
--- a/hutool-jwt/pom.xml
+++ b/hutool-jwt/pom.xml
@@ -9,7 +9,7 @@
cn.hutool
hutool-parent
- 5.8.0.M4
+ 5.8.0
hutool-jwt
diff --git a/hutool-jwt/src/main/java/cn/hutool/jwt/Claims.java b/hutool-jwt/src/main/java/cn/hutool/jwt/Claims.java
old mode 100644
new mode 100755
diff --git a/hutool-jwt/src/main/java/cn/hutool/jwt/JWT.java b/hutool-jwt/src/main/java/cn/hutool/jwt/JWT.java
old mode 100644
new mode 100755
diff --git a/hutool-jwt/src/main/java/cn/hutool/jwt/JWTException.java b/hutool-jwt/src/main/java/cn/hutool/jwt/JWTException.java
old mode 100644
new mode 100755
diff --git a/hutool-jwt/src/main/java/cn/hutool/jwt/JWTHeader.java b/hutool-jwt/src/main/java/cn/hutool/jwt/JWTHeader.java
old mode 100644
new mode 100755
diff --git a/hutool-jwt/src/main/java/cn/hutool/jwt/JWTPayload.java b/hutool-jwt/src/main/java/cn/hutool/jwt/JWTPayload.java
old mode 100644
new mode 100755
diff --git a/hutool-jwt/src/main/java/cn/hutool/jwt/JWTUtil.java b/hutool-jwt/src/main/java/cn/hutool/jwt/JWTUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-jwt/src/main/java/cn/hutool/jwt/JWTValidator.java b/hutool-jwt/src/main/java/cn/hutool/jwt/JWTValidator.java
old mode 100644
new mode 100755
diff --git a/hutool-jwt/src/main/java/cn/hutool/jwt/RegisteredPayload.java b/hutool-jwt/src/main/java/cn/hutool/jwt/RegisteredPayload.java
old mode 100644
new mode 100755
diff --git a/hutool-jwt/src/main/java/cn/hutool/jwt/package-info.java b/hutool-jwt/src/main/java/cn/hutool/jwt/package-info.java
old mode 100644
new mode 100755
diff --git a/hutool-jwt/src/main/java/cn/hutool/jwt/signers/AlgorithmUtil.java b/hutool-jwt/src/main/java/cn/hutool/jwt/signers/AlgorithmUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-jwt/src/main/java/cn/hutool/jwt/signers/AsymmetricJWTSigner.java b/hutool-jwt/src/main/java/cn/hutool/jwt/signers/AsymmetricJWTSigner.java
old mode 100644
new mode 100755
diff --git a/hutool-jwt/src/main/java/cn/hutool/jwt/signers/HMacJWTSigner.java b/hutool-jwt/src/main/java/cn/hutool/jwt/signers/HMacJWTSigner.java
old mode 100644
new mode 100755
diff --git a/hutool-jwt/src/main/java/cn/hutool/jwt/signers/JWTSigner.java b/hutool-jwt/src/main/java/cn/hutool/jwt/signers/JWTSigner.java
old mode 100644
new mode 100755
diff --git a/hutool-jwt/src/main/java/cn/hutool/jwt/signers/JWTSignerUtil.java b/hutool-jwt/src/main/java/cn/hutool/jwt/signers/JWTSignerUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-jwt/src/main/java/cn/hutool/jwt/signers/NoneJWTSigner.java b/hutool-jwt/src/main/java/cn/hutool/jwt/signers/NoneJWTSigner.java
old mode 100644
new mode 100755
diff --git a/hutool-jwt/src/main/java/cn/hutool/jwt/signers/package-info.java b/hutool-jwt/src/main/java/cn/hutool/jwt/signers/package-info.java
old mode 100644
new mode 100755
diff --git a/hutool-jwt/src/test/java/cn/hutool/jwt/JWTSignerTest.java b/hutool-jwt/src/test/java/cn/hutool/jwt/JWTSignerTest.java
old mode 100644
new mode 100755
diff --git a/hutool-jwt/src/test/java/cn/hutool/jwt/JWTTest.java b/hutool-jwt/src/test/java/cn/hutool/jwt/JWTTest.java
old mode 100644
new mode 100755
diff --git a/hutool-jwt/src/test/java/cn/hutool/jwt/JWTUtilTest.java b/hutool-jwt/src/test/java/cn/hutool/jwt/JWTUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-jwt/src/test/java/cn/hutool/jwt/JWTValidatorTest.java b/hutool-jwt/src/test/java/cn/hutool/jwt/JWTValidatorTest.java
old mode 100644
new mode 100755
diff --git a/hutool-log/pom.xml b/hutool-log/pom.xml
index dc7ea99af..36a5fc35d 100755
--- a/hutool-log/pom.xml
+++ b/hutool-log/pom.xml
@@ -9,7 +9,7 @@
cn.hutool
hutool-parent
- 5.8.0.M4
+ 5.8.0
hutool-log
diff --git a/hutool-log/src/main/java/cn/hutool/log/Log.java b/hutool-log/src/main/java/cn/hutool/log/Log.java
old mode 100644
new mode 100755
diff --git a/hutool-log/src/main/java/cn/hutool/log/StaticLog.java b/hutool-log/src/main/java/cn/hutool/log/StaticLog.java
old mode 100644
new mode 100755
diff --git a/hutool-log/src/main/java/cn/hutool/log/dialect/jdk/JdkLogFactory.java b/hutool-log/src/main/java/cn/hutool/log/dialect/jdk/JdkLogFactory.java
old mode 100644
new mode 100755
diff --git a/hutool-poi/pom.xml b/hutool-poi/pom.xml
index b4bac8f58..43bcd8e7c 100755
--- a/hutool-poi/pom.xml
+++ b/hutool-poi/pom.xml
@@ -9,7 +9,7 @@
cn.hutool
hutool-parent
- 5.8.0.M4
+ 5.8.0
hutool-poi
diff --git a/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelUtil.java b/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/CellUtil.java b/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/CellUtil.java
index f4747bae3..8c4f4d4cf 100644
--- a/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/CellUtil.java
+++ b/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/CellUtil.java
@@ -105,7 +105,7 @@ public class CellUtil {
cellType = cell.getCellType();
}
- Object value;
+ final Object value;
switch (cellType) {
case NUMERIC:
value = new NumericCellValue(cell).getValue();
@@ -199,14 +199,14 @@ public class CellUtil {
*
* @param row Excel表的行
* @param cellIndex 列号
- * @return {@link Row}
+ * @return {@link Cell}
* @since 5.5.0
*/
public static Cell getCell(Row row, int cellIndex) {
if (null == row) {
return null;
}
- Cell cell = row.getCell(cellIndex);
+ final Cell cell = row.getCell(cellIndex);
if (null == cell) {
return new NullCell(row, cellIndex);
}
@@ -218,7 +218,7 @@ public class CellUtil {
*
* @param row Excel表的行
* @param cellIndex 列号
- * @return {@link Row}
+ * @return {@link Cell}
* @since 4.0.2
*/
public static Cell getOrCreateCell(Row row, int cellIndex) {
@@ -262,21 +262,84 @@ public class CellUtil {
* @param sheet {@link Sheet}
* @param x 列号,从0开始
* @param y 行号,从0开始
- * @return 是否是合并单元格
+ * @return 是否是合并单元格,如果提供的sheet为{@code null},返回{@code false}
*/
public static boolean isMergedRegion(Sheet sheet, int x, int y) {
- final int sheetMergeCount = sheet.getNumMergedRegions();
- CellRangeAddress ca;
- for (int i = 0; i < sheetMergeCount; i++) {
- ca = sheet.getMergedRegion(i);
- if (y >= ca.getFirstRow() && y <= ca.getLastRow()
- && x >= ca.getFirstColumn() && x <= ca.getLastColumn()) {
- return true;
+ if (sheet != null) {
+ final int sheetMergeCount = sheet.getNumMergedRegions();
+ CellRangeAddress ca;
+ for (int i = 0; i < sheetMergeCount; i++) {
+ ca = sheet.getMergedRegion(i);
+ if (y >= ca.getFirstRow() && y <= ca.getLastRow()
+ && x >= ca.getFirstColumn() && x <= ca.getLastColumn()) {
+ return true;
+ }
}
}
return false;
}
+ /**
+ * 获取合并单元格{@link CellRangeAddress},如果不是返回null
+ *
+ * @param sheet {@link Sheet}
+ * @param locationRef 单元格地址标识符,例如A11,B5
+ * @return {@link CellRangeAddress}
+ * @since 5.8.0
+ */
+ public static CellRangeAddress getCellRangeAddress(Sheet sheet, String locationRef) {
+ final CellLocation cellLocation = ExcelUtil.toLocation(locationRef);
+ return getCellRangeAddress(sheet, cellLocation.getX(), cellLocation.getY());
+ }
+
+ /**
+ * 获取合并单元格{@link CellRangeAddress},如果不是返回null
+ *
+ * @param cell {@link Cell}
+ * @return {@link CellRangeAddress}
+ * @since 5.8.0
+ */
+ public static CellRangeAddress getCellRangeAddress(Cell cell) {
+ return getCellRangeAddress(cell.getSheet(), cell.getColumnIndex(), cell.getRowIndex());
+ }
+
+ /**
+ * 获取合并单元格{@link CellRangeAddress},如果不是返回null
+ *
+ * @param sheet {@link Sheet}
+ * @param x 列号,从0开始
+ * @param y 行号,从0开始
+ * @return {@link CellRangeAddress}
+ * @since 5.8.0
+ */
+ public static CellRangeAddress getCellRangeAddress(Sheet sheet, int x, int y) {
+ if (sheet != null) {
+ final int sheetMergeCount = sheet.getNumMergedRegions();
+ CellRangeAddress ca;
+ for (int i = 0; i < sheetMergeCount; i++) {
+ ca = sheet.getMergedRegion(i);
+ if (y >= ca.getFirstRow() && y <= ca.getLastRow()
+ && x >= ca.getFirstColumn() && x <= ca.getLastColumn()) {
+ return ca;
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 设置合并单元格样式,如果不是则不设置
+ *
+ * @param cell {@link Cell}
+ * @param cellStyle {@link CellStyle}
+ */
+ public static void setMergedRegionStyle(Cell cell, CellStyle cellStyle) {
+ final CellRangeAddress cellRangeAddress = getCellRangeAddress(cell);
+ if (cellRangeAddress != null) {
+ setMergeCellStyle(cellStyle, cellRangeAddress, cell.getSheet());
+ }
+ }
+
/**
* 合并单元格,可以根据设置的值来合并行和列
*
@@ -310,16 +373,7 @@ public class CellUtil {
lastColumn // last column (0-based)
);
- if (null != cellStyle) {
- RegionUtil.setBorderTop(cellStyle.getBorderTop(), cellRangeAddress, sheet);
- RegionUtil.setBorderRight(cellStyle.getBorderRight(), cellRangeAddress, sheet);
- RegionUtil.setBorderBottom(cellStyle.getBorderBottom(), cellRangeAddress, sheet);
- RegionUtil.setBorderLeft(cellStyle.getBorderLeft(), cellRangeAddress, sheet);
- RegionUtil.setTopBorderColor(cellStyle.getTopBorderColor(),cellRangeAddress,sheet);
- RegionUtil.setRightBorderColor(cellStyle.getRightBorderColor(),cellRangeAddress,sheet);
- RegionUtil.setLeftBorderColor(cellStyle.getLeftBorderColor(),cellRangeAddress,sheet);
- RegionUtil.setBottomBorderColor(cellStyle.getBottomBorderColor(),cellRangeAddress,sheet);
- }
+ setMergeCellStyle(cellStyle, cellRangeAddress, sheet);
return sheet.addMergedRegion(cellRangeAddress);
}
@@ -406,7 +460,7 @@ public class CellUtil {
anchor.setRow1(cell.getRowIndex());
anchor.setRow2(cell.getRowIndex() + 2);
}
- Comment comment = drawing.createCellComment(anchor);
+ final Comment comment = drawing.createCellComment(anchor);
comment.setString(factory.createRichTextString(commentText));
comment.setAuthor(StrUtil.nullToEmpty(commentAuthor));
cell.setCellComment(comment);
@@ -435,5 +489,25 @@ public class CellUtil {
}
return null;
}
+
+ /**
+ * 根据{@link CellStyle}设置合并单元格边框样式
+ *
+ * @param cellStyle {@link CellStyle}
+ * @param cellRangeAddress {@link CellRangeAddress}
+ * @param sheet {@link Sheet}
+ */
+ private static void setMergeCellStyle(CellStyle cellStyle, CellRangeAddress cellRangeAddress, Sheet sheet) {
+ if (null != cellStyle) {
+ RegionUtil.setBorderTop(cellStyle.getBorderTop(), cellRangeAddress, sheet);
+ RegionUtil.setBorderRight(cellStyle.getBorderRight(), cellRangeAddress, sheet);
+ RegionUtil.setBorderBottom(cellStyle.getBorderBottom(), cellRangeAddress, sheet);
+ RegionUtil.setBorderLeft(cellStyle.getBorderLeft(), cellRangeAddress, sheet);
+ RegionUtil.setTopBorderColor(cellStyle.getTopBorderColor(), cellRangeAddress, sheet);
+ RegionUtil.setRightBorderColor(cellStyle.getRightBorderColor(), cellRangeAddress, sheet);
+ RegionUtil.setLeftBorderColor(cellStyle.getLeftBorderColor(), cellRangeAddress, sheet);
+ RegionUtil.setBottomBorderColor(cellStyle.getBottomBorderColor(), cellRangeAddress, sheet);
+ }
+ }
// -------------------------------------------------------------------------------------------------------------- Private method end
}
diff --git a/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/setters/EscapeStrCellSetter.java b/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/setters/EscapeStrCellSetter.java
old mode 100644
new mode 100755
diff --git a/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/setters/package-info.java b/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/setters/package-info.java
new file mode 100644
index 000000000..b0d905b77
--- /dev/null
+++ b/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/setters/package-info.java
@@ -0,0 +1,6 @@
+/**
+ * Excel中单元格设置相关类,一些{@link cn.hutool.poi.excel.cell.CellSetter}的实现类
+ *
+ * @author looly
+ */
+package cn.hutool.poi.excel.cell.setters;
diff --git a/hutool-poi/src/main/java/cn/hutool/poi/word/TableUtil.java b/hutool-poi/src/main/java/cn/hutool/poi/word/TableUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-poi/src/test/java/cn/hutool/poi/excel/CellUtilTest.java b/hutool-poi/src/test/java/cn/hutool/poi/excel/CellUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-poi/src/test/java/cn/hutool/poi/excel/ExcelWriteTest.java b/hutool-poi/src/test/java/cn/hutool/poi/excel/ExcelWriteTest.java
old mode 100644
new mode 100755
diff --git a/hutool-script/pom.xml b/hutool-script/pom.xml
index 01b0b101a..ada7ffeaa 100755
--- a/hutool-script/pom.xml
+++ b/hutool-script/pom.xml
@@ -9,7 +9,7 @@
cn.hutool
hutool-parent
- 5.8.0.M4
+ 5.8.0
hutool-script
diff --git a/hutool-script/src/main/java/cn/hutool/script/FullSupportScriptEngine.java b/hutool-script/src/main/java/cn/hutool/script/FullSupportScriptEngine.java
old mode 100644
new mode 100755
diff --git a/hutool-script/src/main/java/cn/hutool/script/JavaScriptEngine.java b/hutool-script/src/main/java/cn/hutool/script/JavaScriptEngine.java
old mode 100644
new mode 100755
diff --git a/hutool-script/src/main/java/cn/hutool/script/ScriptRuntimeException.java b/hutool-script/src/main/java/cn/hutool/script/ScriptRuntimeException.java
old mode 100644
new mode 100755
diff --git a/hutool-script/src/main/java/cn/hutool/script/package-info.java b/hutool-script/src/main/java/cn/hutool/script/package-info.java
old mode 100644
new mode 100755
diff --git a/hutool-script/src/test/java/cn/hutool/script/test/NashornDeepTest.java b/hutool-script/src/test/java/cn/hutool/script/test/NashornDeepTest.java
old mode 100644
new mode 100755
diff --git a/hutool-script/src/test/java/cn/hutool/script/test/ScriptUtilTest.java b/hutool-script/src/test/java/cn/hutool/script/test/ScriptUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-script/src/test/resources/filter1.js b/hutool-script/src/test/resources/filter1.js
old mode 100644
new mode 100755
diff --git a/hutool-setting/pom.xml b/hutool-setting/pom.xml
index 1ef625cb9..2a366d0b6 100755
--- a/hutool-setting/pom.xml
+++ b/hutool-setting/pom.xml
@@ -9,7 +9,7 @@
cn.hutool
hutool-parent
- 5.8.0.M4
+ 5.8.0
hutool-setting
diff --git a/hutool-setting/src/main/java/cn/hutool/setting/SettingLoader.java b/hutool-setting/src/main/java/cn/hutool/setting/SettingLoader.java
old mode 100644
new mode 100755
diff --git a/hutool-setting/src/main/java/cn/hutool/setting/profile/GlobalProfile.java b/hutool-setting/src/main/java/cn/hutool/setting/profile/GlobalProfile.java
old mode 100644
new mode 100755
diff --git a/hutool-setting/src/main/java/cn/hutool/setting/profile/Profile.java b/hutool-setting/src/main/java/cn/hutool/setting/profile/Profile.java
old mode 100644
new mode 100755
diff --git a/hutool-setting/src/main/java/cn/hutool/setting/yaml/YamlUtil.java b/hutool-setting/src/main/java/cn/hutool/setting/yaml/YamlUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-setting/src/test/java/cn/hutool/setting/yaml/YamlUtilTest.java b/hutool-setting/src/test/java/cn/hutool/setting/yaml/YamlUtilTest.java
old mode 100644
new mode 100755
diff --git a/hutool-socket/pom.xml b/hutool-socket/pom.xml
index d8044efb2..8b74e2c32 100755
--- a/hutool-socket/pom.xml
+++ b/hutool-socket/pom.xml
@@ -9,7 +9,7 @@
cn.hutool
hutool-parent
- 5.8.0.M4
+ 5.8.0
hutool-socket
diff --git a/hutool-socket/src/test/java/cn/hutool/socket/aio/AioClientTest.java b/hutool-socket/src/test/java/cn/hutool/socket/aio/AioClientTest.java
old mode 100644
new mode 100755
diff --git a/hutool-socket/src/test/java/cn/hutool/socket/aio/AioServerTest.java b/hutool-socket/src/test/java/cn/hutool/socket/aio/AioServerTest.java
old mode 100644
new mode 100755
diff --git a/hutool-socket/src/test/java/cn/hutool/socket/nio/NioClientTest.java b/hutool-socket/src/test/java/cn/hutool/socket/nio/NioClientTest.java
old mode 100644
new mode 100755
diff --git a/hutool-socket/src/test/java/cn/hutool/socket/nio/NioServerTest.java b/hutool-socket/src/test/java/cn/hutool/socket/nio/NioServerTest.java
old mode 100644
new mode 100755
diff --git a/hutool-system/pom.xml b/hutool-system/pom.xml
index 231612c22..2a8c2e164 100755
--- a/hutool-system/pom.xml
+++ b/hutool-system/pom.xml
@@ -9,7 +9,7 @@
cn.hutool
hutool-parent
- 5.8.0.M4
+ 5.8.0
hutool-system
diff --git a/hutool-system/src/main/java/cn/hutool/system/HostInfo.java b/hutool-system/src/main/java/cn/hutool/system/HostInfo.java
old mode 100644
new mode 100755
diff --git a/hutool-system/src/main/java/cn/hutool/system/JavaInfo.java b/hutool-system/src/main/java/cn/hutool/system/JavaInfo.java
old mode 100644
new mode 100755
diff --git a/hutool-system/src/main/java/cn/hutool/system/JavaRuntimeInfo.java b/hutool-system/src/main/java/cn/hutool/system/JavaRuntimeInfo.java
old mode 100644
new mode 100755
diff --git a/hutool-system/src/main/java/cn/hutool/system/JavaSpecInfo.java b/hutool-system/src/main/java/cn/hutool/system/JavaSpecInfo.java
old mode 100644
new mode 100755
diff --git a/hutool-system/src/main/java/cn/hutool/system/JvmInfo.java b/hutool-system/src/main/java/cn/hutool/system/JvmInfo.java
old mode 100644
new mode 100755
diff --git a/hutool-system/src/main/java/cn/hutool/system/JvmSpecInfo.java b/hutool-system/src/main/java/cn/hutool/system/JvmSpecInfo.java
old mode 100644
new mode 100755
diff --git a/hutool-system/src/main/java/cn/hutool/system/OsInfo.java b/hutool-system/src/main/java/cn/hutool/system/OsInfo.java
old mode 100644
new mode 100755
diff --git a/hutool-system/src/main/java/cn/hutool/system/RuntimeInfo.java b/hutool-system/src/main/java/cn/hutool/system/RuntimeInfo.java
old mode 100644
new mode 100755
diff --git a/hutool-system/src/main/java/cn/hutool/system/SystemPropsKeys.java b/hutool-system/src/main/java/cn/hutool/system/SystemPropsKeys.java
old mode 100644
new mode 100755
diff --git a/hutool-system/src/main/java/cn/hutool/system/SystemUtil.java b/hutool-system/src/main/java/cn/hutool/system/SystemUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-system/src/main/java/cn/hutool/system/UserInfo.java b/hutool-system/src/main/java/cn/hutool/system/UserInfo.java
old mode 100644
new mode 100755
diff --git a/hutool-system/src/main/java/cn/hutool/system/oshi/CpuInfo.java b/hutool-system/src/main/java/cn/hutool/system/oshi/CpuInfo.java
old mode 100644
new mode 100755
diff --git a/hutool-system/src/main/java/cn/hutool/system/oshi/CpuTicks.java b/hutool-system/src/main/java/cn/hutool/system/oshi/CpuTicks.java
old mode 100644
new mode 100755
diff --git a/hutool-system/src/main/java/cn/hutool/system/oshi/OshiUtil.java b/hutool-system/src/main/java/cn/hutool/system/oshi/OshiUtil.java
old mode 100644
new mode 100755
diff --git a/hutool-system/src/main/java/cn/hutool/system/oshi/package-info.java b/hutool-system/src/main/java/cn/hutool/system/oshi/package-info.java
old mode 100644
new mode 100755
diff --git a/hutool-system/src/main/java/cn/hutool/system/package-info.java b/hutool-system/src/main/java/cn/hutool/system/package-info.java
old mode 100644
new mode 100755
diff --git a/hutool-system/src/test/java/cn/hutool/system/OshiPrintTest.java b/hutool-system/src/test/java/cn/hutool/system/OshiPrintTest.java
old mode 100644
new mode 100755
diff --git a/hutool-system/src/test/java/cn/hutool/system/OshiTest.java b/hutool-system/src/test/java/cn/hutool/system/OshiTest.java
old mode 100644
new mode 100755
diff --git a/hutool-system/src/test/java/cn/hutool/system/SystemUtilTest.java b/hutool-system/src/test/java/cn/hutool/system/SystemUtilTest.java
old mode 100644
new mode 100755
diff --git a/pom.xml b/pom.xml
index c7126ef60..d874dbd2e 100755
--- a/pom.xml
+++ b/pom.xml
@@ -8,7 +8,7 @@
cn.hutool
hutool-parent
- 5.8.0.M4
+ 5.8.0
hutool
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
https://github.com/dromara/hutool