diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d77228fa..101e9ebe1 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,24 @@ ------------------------------------------------------------------------------------------------------------- +# 5.8.0 (2022-05-06) + +### ❌不兼容特性 +* 【extra 】 升级jakarta.validation-api到3.x,包名变更导致不能向下兼容 +* 【core 】 BeanUtil删除了beanToMap(Object)方法,因为有可变参数的方法,这个删除可能导致直接升级找不到方法,重新编译项目即可。 + +### 🐣新特性 +* 【core 】 Singleton增加部分方法(pr#609@Gitee) +* 【core 】 BeanUtil增加beanToMap重载(pr#2292@Github) +* 【core 】 Assert增加对应的equals及notEquals方法(pr#612@Gitee) +* 【core 】 Assert增加对应的equals及notEquals方法(pr#612@Gitee) +* 【core 】 DigestUtil增加sha512方法(issue#2298@Github) + +### 🐞Bug修复 +* 【db 】 修复RedisDS无法设置maxWaitMillis问题(issue#I54TZ9@Gitee) + +------------------------------------------------------------------------------------------------------------- + # 5.8.0.M4 (2022-04-27) ### ❌不兼容特性 diff --git a/README-EN.md b/README-EN.md index 939bac4f8..a9fb50154 100755 --- a/README-EN.md +++ b/README-EN.md @@ -144,18 +144,18 @@ We provide the T-Shirt and Sweater with Hutool Logo, please visit the shop: cn.hutool hutool-all - 5.8.0.M4 + 5.8.0 ``` ### 🍐Gradle ``` -implementation 'cn.hutool:hutool-all:5.8.0.M4' +implementation 'cn.hutool:hutool-all:5.8.0' ``` ## 📥Download -- [Maven Repo](https://repo1.maven.org/maven2/cn/hutool/hutool-all/5.8.0.M4/) +- [Maven Repo](https://repo1.maven.org/maven2/cn/hutool/hutool-all/5.8.0/) > 🔔️note: > Hutool 5.x supports JDK8+ and is not tested on Android platforms, and cannot guarantee that all tool classes or tool methods are available. diff --git a/README.md b/README.md index 91c9311af..f709e87d1 100755 --- a/README.md +++ b/README.md @@ -144,20 +144,20 @@ Hutool的存在就是为了减少代码搜索成本,避免网络上参差不 cn.hutool hutool-all - 5.8.0.M4 + 5.8.0 ``` ### 🍐Gradle ``` -implementation 'cn.hutool:hutool-all:5.8.0.M4' +implementation 'cn.hutool:hutool-all:5.8.0' ``` ### 📥下载jar 点击以下链接,下载`hutool-all-X.X.X.jar`即可: -- [Maven中央库](https://repo1.maven.org/maven2/cn/hutool/hutool-all/5.8.0.M4/) +- [Maven中央库](https://repo1.maven.org/maven2/cn/hutool/hutool-all/5.8.0/) > 🔔️注意 > Hutool 5.x支持JDK8+,对Android平台没有测试,不能保证所有工具类或工具方法可用。 diff --git a/bin/version.txt b/bin/version.txt index b4fb92abd..11d9efa3d 100755 --- a/bin/version.txt +++ b/bin/version.txt @@ -1 +1 @@ -5.8.0.M4 +5.8.0 diff --git a/docs/js/version.js b/docs/js/version.js index 2ca0f38dd..d7dea1709 100755 --- a/docs/js/version.js +++ b/docs/js/version.js @@ -1 +1 @@ -var version = '5.8.0.M4' \ No newline at end of file +var version = '5.8.0' \ No newline at end of file diff --git a/hutool-all/pom.xml b/hutool-all/pom.xml index 1650512a3..764f45852 100755 --- a/hutool-all/pom.xml +++ b/hutool-all/pom.xml @@ -9,7 +9,7 @@ cn.hutool hutool-parent - 5.8.0.M4 + 5.8.0 hutool-all diff --git a/hutool-aop/pom.xml b/hutool-aop/pom.xml index 7b022cc28..e8241a598 100755 --- a/hutool-aop/pom.xml +++ b/hutool-aop/pom.xml @@ -9,7 +9,7 @@ cn.hutool hutool-parent - 5.8.0.M4 + 5.8.0 hutool-aop diff --git a/hutool-aop/src/main/java/cn/hutool/aop/ProxyUtil.java b/hutool-aop/src/main/java/cn/hutool/aop/ProxyUtil.java old mode 100644 new mode 100755 diff --git a/hutool-aop/src/main/java/cn/hutool/aop/aspects/Aspect.java b/hutool-aop/src/main/java/cn/hutool/aop/aspects/Aspect.java old mode 100644 new mode 100755 diff --git a/hutool-aop/src/main/java/cn/hutool/aop/aspects/SimpleAspect.java b/hutool-aop/src/main/java/cn/hutool/aop/aspects/SimpleAspect.java old mode 100644 new mode 100755 diff --git a/hutool-aop/src/main/java/cn/hutool/aop/aspects/TimeIntervalAspect.java b/hutool-aop/src/main/java/cn/hutool/aop/aspects/TimeIntervalAspect.java old mode 100644 new mode 100755 diff --git a/hutool-aop/src/main/java/cn/hutool/aop/aspects/package-info.java b/hutool-aop/src/main/java/cn/hutool/aop/aspects/package-info.java old mode 100644 new mode 100755 diff --git a/hutool-aop/src/main/java/cn/hutool/aop/interceptor/CglibInterceptor.java b/hutool-aop/src/main/java/cn/hutool/aop/interceptor/CglibInterceptor.java old mode 100644 new mode 100755 diff --git a/hutool-aop/src/main/java/cn/hutool/aop/interceptor/JdkInterceptor.java b/hutool-aop/src/main/java/cn/hutool/aop/interceptor/JdkInterceptor.java old mode 100644 new mode 100755 diff --git a/hutool-aop/src/main/java/cn/hutool/aop/interceptor/SpringCglibInterceptor.java b/hutool-aop/src/main/java/cn/hutool/aop/interceptor/SpringCglibInterceptor.java old mode 100644 new mode 100755 diff --git a/hutool-aop/src/main/java/cn/hutool/aop/interceptor/package-info.java b/hutool-aop/src/main/java/cn/hutool/aop/interceptor/package-info.java old mode 100644 new mode 100755 diff --git a/hutool-aop/src/main/java/cn/hutool/aop/package-info.java b/hutool-aop/src/main/java/cn/hutool/aop/package-info.java old mode 100644 new mode 100755 diff --git a/hutool-aop/src/main/java/cn/hutool/aop/proxy/CglibProxyFactory.java b/hutool-aop/src/main/java/cn/hutool/aop/proxy/CglibProxyFactory.java old mode 100644 new mode 100755 diff --git a/hutool-aop/src/main/java/cn/hutool/aop/proxy/JdkProxyFactory.java b/hutool-aop/src/main/java/cn/hutool/aop/proxy/JdkProxyFactory.java old mode 100644 new mode 100755 diff --git a/hutool-aop/src/main/java/cn/hutool/aop/proxy/ProxyFactory.java b/hutool-aop/src/main/java/cn/hutool/aop/proxy/ProxyFactory.java old mode 100644 new mode 100755 diff --git a/hutool-aop/src/main/java/cn/hutool/aop/proxy/SpringCglibProxyFactory.java b/hutool-aop/src/main/java/cn/hutool/aop/proxy/SpringCglibProxyFactory.java old mode 100644 new mode 100755 diff --git a/hutool-aop/src/main/java/cn/hutool/aop/proxy/package-info.java b/hutool-aop/src/main/java/cn/hutool/aop/proxy/package-info.java old mode 100644 new mode 100755 diff --git a/hutool-aop/src/main/resources/META-INF/services/cn.hutool.aop.proxy.ProxyFactory b/hutool-aop/src/main/resources/META-INF/services/cn.hutool.aop.proxy.ProxyFactory old mode 100644 new mode 100755 diff --git a/hutool-aop/src/test/java/cn/hutool/aop/test/AopTest.java b/hutool-aop/src/test/java/cn/hutool/aop/test/AopTest.java old mode 100644 new mode 100755 diff --git a/hutool-bloomFilter/pom.xml b/hutool-bloomFilter/pom.xml index 74d8596e1..9d097a630 100755 --- a/hutool-bloomFilter/pom.xml +++ b/hutool-bloomFilter/pom.xml @@ -9,7 +9,7 @@ cn.hutool hutool-parent - 5.8.0.M4 + 5.8.0 hutool-bloomFilter diff --git a/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/BitMapBloomFilter.java b/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/BitMapBloomFilter.java old mode 100644 new mode 100755 diff --git a/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/BitSetBloomFilter.java b/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/BitSetBloomFilter.java old mode 100644 new mode 100755 diff --git a/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/BloomFilter.java b/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/BloomFilter.java old mode 100644 new mode 100755 diff --git a/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/BloomFilterUtil.java b/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/BloomFilterUtil.java old mode 100644 new mode 100755 diff --git a/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/bitMap/BitMap.java b/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/bitMap/BitMap.java old mode 100644 new mode 100755 diff --git a/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/bitMap/IntMap.java b/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/bitMap/IntMap.java old mode 100644 new mode 100755 diff --git a/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/bitMap/LongMap.java b/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/bitMap/LongMap.java old mode 100644 new mode 100755 diff --git a/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/bitMap/package-info.java b/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/bitMap/package-info.java old mode 100644 new mode 100755 diff --git a/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/AbstractFilter.java b/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/AbstractFilter.java old mode 100644 new mode 100755 diff --git a/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/DefaultFilter.java b/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/DefaultFilter.java old mode 100644 new mode 100755 diff --git a/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/ELFFilter.java b/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/ELFFilter.java old mode 100644 new mode 100755 diff --git a/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/FNVFilter.java b/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/FNVFilter.java old mode 100644 new mode 100755 diff --git a/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/FuncFilter.java b/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/FuncFilter.java old mode 100644 new mode 100755 diff --git a/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/HfFilter.java b/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/HfFilter.java old mode 100644 new mode 100755 diff --git a/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/HfIpFilter.java b/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/HfIpFilter.java old mode 100644 new mode 100755 diff --git a/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/JSFilter.java b/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/JSFilter.java old mode 100644 new mode 100755 diff --git a/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/PJWFilter.java b/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/PJWFilter.java old mode 100644 new mode 100755 diff --git a/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/RSFilter.java b/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/RSFilter.java old mode 100644 new mode 100755 diff --git a/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/SDBMFilter.java b/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/SDBMFilter.java old mode 100644 new mode 100755 diff --git a/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/TianlFilter.java b/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/TianlFilter.java old mode 100644 new mode 100755 diff --git a/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/package-info.java b/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/filter/package-info.java old mode 100644 new mode 100755 diff --git a/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/package-info.java b/hutool-bloomFilter/src/main/java/cn/hutool/bloomfilter/package-info.java old mode 100644 new mode 100755 diff --git a/hutool-bloomFilter/src/test/java/cn/hutool/bloomfilter/BitMapBloomFilterTest.java b/hutool-bloomFilter/src/test/java/cn/hutool/bloomfilter/BitMapBloomFilterTest.java old mode 100644 new mode 100755 diff --git a/hutool-bom/pom.xml b/hutool-bom/pom.xml index 9a400e8a6..2f52f535c 100755 --- a/hutool-bom/pom.xml +++ b/hutool-bom/pom.xml @@ -9,7 +9,7 @@ cn.hutool hutool-parent - 5.8.0.M4 + 5.8.0 hutool-bom diff --git a/hutool-cache/pom.xml b/hutool-cache/pom.xml index 0bd5e426c..676db09e3 100755 --- a/hutool-cache/pom.xml +++ b/hutool-cache/pom.xml @@ -9,7 +9,7 @@ cn.hutool hutool-parent - 5.8.0.M4 + 5.8.0 hutool-cache diff --git a/hutool-cache/src/main/java/cn/hutool/cache/Cache.java b/hutool-cache/src/main/java/cn/hutool/cache/Cache.java old mode 100644 new mode 100755 diff --git a/hutool-cache/src/main/java/cn/hutool/cache/CacheListener.java b/hutool-cache/src/main/java/cn/hutool/cache/CacheListener.java old mode 100644 new mode 100755 diff --git a/hutool-cache/src/main/java/cn/hutool/cache/CacheUtil.java b/hutool-cache/src/main/java/cn/hutool/cache/CacheUtil.java old mode 100644 new mode 100755 diff --git a/hutool-cache/src/main/java/cn/hutool/cache/GlobalPruneTimer.java b/hutool-cache/src/main/java/cn/hutool/cache/GlobalPruneTimer.java old mode 100644 new mode 100755 diff --git a/hutool-cache/src/main/java/cn/hutool/cache/file/AbstractFileCache.java b/hutool-cache/src/main/java/cn/hutool/cache/file/AbstractFileCache.java old mode 100644 new mode 100755 diff --git a/hutool-cache/src/main/java/cn/hutool/cache/file/LFUFileCache.java b/hutool-cache/src/main/java/cn/hutool/cache/file/LFUFileCache.java old mode 100644 new mode 100755 diff --git a/hutool-cache/src/main/java/cn/hutool/cache/file/LRUFileCache.java b/hutool-cache/src/main/java/cn/hutool/cache/file/LRUFileCache.java old mode 100644 new mode 100755 diff --git a/hutool-cache/src/main/java/cn/hutool/cache/file/package-info.java b/hutool-cache/src/main/java/cn/hutool/cache/file/package-info.java old mode 100644 new mode 100755 diff --git a/hutool-cache/src/main/java/cn/hutool/cache/impl/AbstractCache.java b/hutool-cache/src/main/java/cn/hutool/cache/impl/AbstractCache.java old mode 100644 new mode 100755 diff --git a/hutool-cache/src/main/java/cn/hutool/cache/impl/CacheObj.java b/hutool-cache/src/main/java/cn/hutool/cache/impl/CacheObj.java old mode 100644 new mode 100755 diff --git a/hutool-cache/src/main/java/cn/hutool/cache/impl/CacheObjIterator.java b/hutool-cache/src/main/java/cn/hutool/cache/impl/CacheObjIterator.java old mode 100644 new mode 100755 diff --git a/hutool-cache/src/main/java/cn/hutool/cache/impl/CacheValuesIterator.java b/hutool-cache/src/main/java/cn/hutool/cache/impl/CacheValuesIterator.java old mode 100644 new mode 100755 diff --git a/hutool-cache/src/main/java/cn/hutool/cache/impl/FIFOCache.java b/hutool-cache/src/main/java/cn/hutool/cache/impl/FIFOCache.java old mode 100644 new mode 100755 diff --git a/hutool-cache/src/main/java/cn/hutool/cache/impl/LFUCache.java b/hutool-cache/src/main/java/cn/hutool/cache/impl/LFUCache.java old mode 100644 new mode 100755 diff --git a/hutool-cache/src/main/java/cn/hutool/cache/impl/LRUCache.java b/hutool-cache/src/main/java/cn/hutool/cache/impl/LRUCache.java old mode 100644 new mode 100755 diff --git a/hutool-cache/src/main/java/cn/hutool/cache/impl/NoCache.java b/hutool-cache/src/main/java/cn/hutool/cache/impl/NoCache.java old mode 100644 new mode 100755 diff --git a/hutool-cache/src/main/java/cn/hutool/cache/impl/ReentrantCache.java b/hutool-cache/src/main/java/cn/hutool/cache/impl/ReentrantCache.java old mode 100644 new mode 100755 diff --git a/hutool-cache/src/main/java/cn/hutool/cache/impl/StampedCache.java b/hutool-cache/src/main/java/cn/hutool/cache/impl/StampedCache.java old mode 100644 new mode 100755 diff --git a/hutool-cache/src/main/java/cn/hutool/cache/impl/TimedCache.java b/hutool-cache/src/main/java/cn/hutool/cache/impl/TimedCache.java old mode 100644 new mode 100755 diff --git a/hutool-cache/src/main/java/cn/hutool/cache/impl/package-info.java b/hutool-cache/src/main/java/cn/hutool/cache/impl/package-info.java old mode 100644 new mode 100755 diff --git a/hutool-cache/src/main/java/cn/hutool/cache/package-info.java b/hutool-cache/src/main/java/cn/hutool/cache/package-info.java old mode 100644 new mode 100755 diff --git a/hutool-cache/src/test/java/cn/hutool/cache/CacheConcurrentTest.java b/hutool-cache/src/test/java/cn/hutool/cache/CacheConcurrentTest.java old mode 100644 new mode 100755 diff --git a/hutool-cache/src/test/java/cn/hutool/cache/CacheTest.java b/hutool-cache/src/test/java/cn/hutool/cache/CacheTest.java old mode 100644 new mode 100755 diff --git a/hutool-cache/src/test/java/cn/hutool/cache/FileCacheTest.java b/hutool-cache/src/test/java/cn/hutool/cache/FileCacheTest.java old mode 100644 new mode 100755 diff --git a/hutool-cache/src/test/java/cn/hutool/cache/LRUCacheTest.java b/hutool-cache/src/test/java/cn/hutool/cache/LRUCacheTest.java old mode 100644 new mode 100755 diff --git a/hutool-captcha/pom.xml b/hutool-captcha/pom.xml index c556d45fe..4bb1c27b4 100755 --- a/hutool-captcha/pom.xml +++ b/hutool-captcha/pom.xml @@ -9,7 +9,7 @@ cn.hutool hutool-parent - 5.8.0.M4 + 5.8.0 hutool-captcha diff --git a/hutool-captcha/src/main/java/cn/hutool/captcha/AbstractCaptcha.java b/hutool-captcha/src/main/java/cn/hutool/captcha/AbstractCaptcha.java old mode 100644 new mode 100755 diff --git a/hutool-captcha/src/main/java/cn/hutool/captcha/CaptchaUtil.java b/hutool-captcha/src/main/java/cn/hutool/captcha/CaptchaUtil.java old mode 100644 new mode 100755 diff --git a/hutool-captcha/src/main/java/cn/hutool/captcha/CircleCaptcha.java b/hutool-captcha/src/main/java/cn/hutool/captcha/CircleCaptcha.java old mode 100644 new mode 100755 diff --git a/hutool-captcha/src/main/java/cn/hutool/captcha/GifCaptcha.java b/hutool-captcha/src/main/java/cn/hutool/captcha/GifCaptcha.java old mode 100644 new mode 100755 diff --git a/hutool-captcha/src/main/java/cn/hutool/captcha/ICaptcha.java b/hutool-captcha/src/main/java/cn/hutool/captcha/ICaptcha.java old mode 100644 new mode 100755 diff --git a/hutool-captcha/src/main/java/cn/hutool/captcha/LineCaptcha.java b/hutool-captcha/src/main/java/cn/hutool/captcha/LineCaptcha.java old mode 100644 new mode 100755 diff --git a/hutool-captcha/src/main/java/cn/hutool/captcha/ShearCaptcha.java b/hutool-captcha/src/main/java/cn/hutool/captcha/ShearCaptcha.java old mode 100644 new mode 100755 diff --git a/hutool-captcha/src/main/java/cn/hutool/captcha/generator/AbstractGenerator.java b/hutool-captcha/src/main/java/cn/hutool/captcha/generator/AbstractGenerator.java old mode 100644 new mode 100755 diff --git a/hutool-captcha/src/main/java/cn/hutool/captcha/generator/CodeGenerator.java b/hutool-captcha/src/main/java/cn/hutool/captcha/generator/CodeGenerator.java old mode 100644 new mode 100755 diff --git a/hutool-captcha/src/main/java/cn/hutool/captcha/generator/MathGenerator.java b/hutool-captcha/src/main/java/cn/hutool/captcha/generator/MathGenerator.java old mode 100644 new mode 100755 diff --git a/hutool-captcha/src/main/java/cn/hutool/captcha/generator/RandomGenerator.java b/hutool-captcha/src/main/java/cn/hutool/captcha/generator/RandomGenerator.java old mode 100644 new mode 100755 diff --git a/hutool-captcha/src/main/java/cn/hutool/captcha/generator/package-info.java b/hutool-captcha/src/main/java/cn/hutool/captcha/generator/package-info.java old mode 100644 new mode 100755 diff --git a/hutool-captcha/src/main/java/cn/hutool/captcha/package-info.java b/hutool-captcha/src/main/java/cn/hutool/captcha/package-info.java old mode 100644 new mode 100755 diff --git a/hutool-captcha/src/test/java/cn/hutool/captcha/CaptchaTest.java b/hutool-captcha/src/test/java/cn/hutool/captcha/CaptchaTest.java old mode 100644 new mode 100755 diff --git a/hutool-captcha/src/test/java/cn/hutool/captcha/CaptchaUtilTest.java b/hutool-captcha/src/test/java/cn/hutool/captcha/CaptchaUtilTest.java old mode 100644 new mode 100755 diff --git a/hutool-captcha/src/test/java/cn/hutool/captcha/GeneratorTest.java b/hutool-captcha/src/test/java/cn/hutool/captcha/GeneratorTest.java old mode 100644 new mode 100755 diff --git a/hutool-core/pom.xml b/hutool-core/pom.xml index 22d50a2c0..7a23f3e9f 100755 --- a/hutool-core/pom.xml +++ b/hutool-core/pom.xml @@ -9,7 +9,7 @@ cn.hutool hutool-parent - 5.8.0.M4 + 5.8.0 hutool-core diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java b/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java index eabce8de0..5b8e517c3 100755 --- a/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java @@ -29,6 +29,7 @@ import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.function.Consumer; import java.util.function.Supplier; import java.util.stream.Collectors; @@ -605,15 +606,24 @@ public class BeanUtil { } // --------------------------------------------------------------------------------------------- beanToMap - /** - * 对象转Map,不进行驼峰转下划线,不忽略值为空的字段 + * 将bean的部分属性转换成map
+ * 可选拷贝哪些属性值,默认是不忽略值为{@code null}的值的。 * - * @param bean bean对象 + * @param bean bean + * @param properties 需要拷贝的属性值,{@code null}或空表示拷贝所有值 * @return Map + * @since 5.8.0 */ - public static Map beanToMap(Object bean) { - return beanToMap(bean, false, false); + public static Map beanToMap(Object bean, String... properties) { + Editor keyEditor = null; + if(ArrayUtil.isNotEmpty(properties)){ + final Set 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