Commit 45cda665 authored by ma yanling's avatar ma yanling
Browse files

project commit

parent ad2fb30a
Pipeline #2354 failed with stages
in 0 seconds
# http://editorconfig.org
# 配置修改自:https://gitee.com/596392912/mica/blob/master/.editorconfig
root = true
[*]
indent_style = tab
charset = utf-8
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
[*.{json,yml}]
indent_style = space
indent_size = 2
[*.md]
insert_final_newline = false
trim_trailing_whitespace = false
### 版本情况
JDK版本: openjdk_8_201
hutool版本: 5.X.X(请确保最新尝试是否还有问题)
### 问题描述(包括截图)
1. 复现代码
```java
Console.log("报错了");
```
2. 堆栈信息
3. 测试涉及到的文件(注意脱密)
比如报错的Excel文件,有问题的图片等。
\ No newline at end of file
#### 说明
1. 请确认你提交的PR是到'v5-dev'分支,否则我会手动修改代码并关闭PR。
2. 请确认没有更改代码风格(如tab缩进)
3. 新特性添加请确认注释完备,如有必要,请在src/test/java下添加Junit测试用例
### 修改描述(包括说明bug修复或者添加新特性)
1. [bug修复] balabala……
2. [新特性] balabala……
### 提交前自测
> 请在提交前自测确保代码没有问题,提交新代码应包含:测试用例、通过(mvn javadoc:javadoc)检验详细注释。
1. 本地如有多个JDK版本,可以设置临时JDk版本,如:`export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_331.jdk/Contents/Home`,具体替换为本地jdk目录
2. 确保本地测试使用JDK8最新版本,`echo $JAVA_HOME``mvn -v``java -version`均正确。
3. 执行打包生成文档,使用`mvn clean package -Dmaven.test.skip=true -U`,并确认通过,会自动执行打包、生成文档
4. 如需要单独执行文档生成,执行:`mvn javadoc:javadoc `,并确认通过
5. 如需要单独执行测试用例,执行:`mvn clean test`,并确认通过
# Eclipse
.project
.classpath
.settings/
# Maven
target/
dependency-reduced-pom.xml
pom.xml.versionsBackup
.factorypath
# Gradle
.gradle/
build/
#IDEA
# idea ignore
.idea/
*.ipr
*.iml
*.iws
# temp ignore
*.log
*.cache
*.diff
*.patch
*.tmp
.jython_cache/
# system ignore
.DS_Store
Thumbs.db
language: java
sudo: false # faster builds
install: true
jdk:
- openjdk8
notifications:
email: false
cache:
directories:
- '$HOME/.m2'
script:
- export TZ=Asia/Shanghai
- mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V
- mvn cobertura:cobertura -Dcobertura.report.format=xml -Dmaven.javadoc.skip.true
after_success:
- bash <(curl -s https://codecov.io/bash)
# 🚀Changelog
-------------------------------------------------------------------------------------------------------------
# 5.8.19(2023-05-27)
### 🐣新特性
* 【db 】 优化HttpRequest.toString()内容打印(issue#3072@Github)
* 【poi 】 优化Sax方式读取时空白行返回0,修改为返回-1(issue#I6WYF6@Gitee)
* 【db 】 优化count查询兼容informix(issue#I713XQ@Gitee)
* 【core 】 去除Opt头部的GPL协议头(pr#995@Gitee)
* 【core 】 邮箱校验添加对中文的支持(pr#997@Gitee)
* 【core 】 FileUtil.getMimeType增加webp识别(pr#997@Gitee)
* 【core 】 SyncFinisher增加setExceptionHandler方法(issue#I716SX@Gitee)
* 【core 】 FileTypeUtil.getType增加文件判断(pr#3112@Github)
* 【core 】 增加CsvWriteConfig.setEndingLineBreak配置项(issue#I75K5G@Gitee)
* 【core 】 增加Tailer追踪文件时文件被删除的处理情况(pr#3115@Github)
* 【core 】 DelegatedExecutorService构造方法设置成public(issue#I77LUE@Gitee)
* 【core 】 切面代理工具中的cglib支持多参数构造生成(issue#I74EX7@Gitee)
* 【poi 】 添加writeCellValue的重载,以支持isHeader(pr#1002@Gitee)
### 🐞Bug修复
* 【core 】 修复URLUtil.decode无法解码UTF-16问题(issue#3063@Github)
* 【db 】 修复insertOrUpdate更新中条件字段没有移除问题(issue#I6W91Z@Gitee)
* 【core 】 修复VIN(车架号)正则问题(pr#3078@Github)
* 【core 】 修复HtmlUtil的removeHtmlAttr方法匹配问题(issue#I6YNTF@Gitee)
* 【core 】 修复JSONUtil.toBean目标存在Map字段无序问题(issue#I6YN2A@Gitee)
* 【http 】 修复HttpDownloader.downloadFile 方法缺少static问题(issue#I6Z8VU@Gitee)
* 【core 】 修复NumberUtil mul 传入null的string入参报错问题(issue#I70JB3@Gitee)
* 【core 】 修复ZipReader.get调用reset异常问题(issue#3099@Github)
* 【core 】 修复FileUtil.createTempFile可能导致的漏洞(issue#3103@Github)
* 【cron 】 修复SystemTimer无法结束进程问题(issue#3090@Github)
* 【core 】 修复BeanUtil.copyToList复制Long等类型错误问题(issue#3091@Github)
* 【poi 】 修复MapRowHandler结果Map无序问题(issue#I71SE8@Github)
* 【db 】 修复SqlExecutor.execute执行ORACLE insert into select报ORA-00933问题(issue#I778U7@Gitee)
* 【db 】 修复AbstractDb#page分页查询异常问题(issue#I73770@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.8.18 (2023-04-27)
### 🐣新特性
* 【extra 】 JschUtil新增一个重载方法以支持私钥以byte数组形式载入(pr#3057@Github)
* 【crypto】 优化MD5性能(issue#I6ZIQH@Gitee)
### 🐞Bug修复
* 【core 】 修复CollUtil.reverseNew针对非可变列表异常(issue#3056@Github)
* 【all 】 修复junit被关联引入的bug(issue#3062@Github)
-------------------------------------------------------------------------------------------------------------
# 5.8.17 (2023-04-12)
### 🐣新特性
* 【core 】 SerializeUtil.deserialize增加白名单类,避免RCE vulnerability(issue#3021@Github)
* 【poi 】 ExcelWriter在关闭后不清空currentRow,以便复用(issue#3025@Github)
* 【core 】 完善HttpStatus,参考相关规范,补全缺失的状态码(pr#968@Gitee)
* 【core 】 NumberUtil增加(pr#968@Gitee)
* 【core 】 Number128增加hash和equals方法(pr#968@Gitee)
* 【core 】 NamingCase.toCamelCase新增重载,可选是否转换其他字符为小写(issue#3031@ithub)
* 【core 】 新增JdkUtil
* 【core 】 DateUtil.getZodiac增加越界检查(issue#3036@Github)
* 【core 】 CsvReader修改策略,添加可选是否关闭Reader重载,默认不关闭Reader(issue#I6UAX1@Gitee)
* 【core 】 isNotEmpty修改规则,避开IDEA错误提示(pr#974@Gitee)
### 🐞Bug修复
* 【core 】 CollUtil.split优化切割列表参数判断,避免OOM(pr#3026@Github)
* 【core 】 修复FileUtil.move传入相同目录或子目录丢失源目录的问题(pr#3032@Github)
* 【core 】 修复SafeConcurrentHashMap.computeIfAbsent可能存在的结果为null的情况(issue#I6RVMY@Gitee)
* 【json 】 修复Pair反序列化报错问题(issue#I6SZYB@Gitee)
* 【core 】 修复使用AnnotationUtil.getAnnotationAlias获取注解时可能会出现空指针的问题(pr#975@Gitee)
* 【json 】 修复没有属性的对象转json字符串抛异常问题(issue#3051@Github)
-------------------------------------------------------------------------------------------------------------
# 5.8.16 (2023-03-26)
### 🐣新特性
* 【core 】 改进Calculator.conversion,兼容乘法符号省略写法(issue#2964@Github)
* 【core 】 改进XmlUtil.xmlToBean,支持xml转bean时父节点忽略大小写
* 【core 】 优化ArrayUtil的空判断(pr#2969@Github)
* 【extra 】 优化SpringUtil在非Spring环境下的异常(issue#2835@Github)
* 【core 】 StrUtil增加commonPrefix和commonSuffix方法(pr#3007@Github)
* 【core 】 NumberUtil增加重载parseXXX方法, 解析失败返回默认值(pr#3007@Github)
* 【core 】 FileUtil增加readLines重载,支持filter(pr#3006@Github)
* 【json 】 当用户选择ignoreError时,错误对象转JSON也忽略
### 🐞Bug修复
* 【crypto】 修复NoSuchMethodError未捕获问题(issue#2966@Github)
* 【poi 】 修复SXSSFWorkbook调用setComment时错位的问题(issue#I6MBS5@Gitee)
* 【core 】 修复BeanUtil.hasGetter没有跳过getClass方法的问题(issue#I6MBS5@Gitee)
* 【core 】 修复FileMagicNumber长度判断问题导致的越界异常(issue#I6MACI@Gitee)
* 【core 】 修复DateUtil针对ISO8601时间格式部分场景下的解析存在问题(issue#2981@Github)
* 【core 】 修复JSONUtil.toBean可能的空指针问题(issue#2987@Github)
* 【core 】 修复CalendarUtil.isSameMonth没有判断公元前导致不一致的问题(issue#3011@Github)
* 【core 】 修复WatchUtil createModify maxDepth传递后没有使用问题(issue#3005@Github)
* 【core 】 修复NullComparator反转无效问题(pr#964@Gitee)
* 【setting】 修复props.toBean 数组字段未赋值问题(issue#3008@Github)
-------------------------------------------------------------------------------------------------------------
# 5.8.15 (2023-03-09)
### 🐣新特性
* 【http 】 新增followRedirectsCookie配置,支持开启自动重定向携带cookie(pr#2961@Github)
### 🐞Bug修复
* 【all 】 修复Automatic-Module-Name错误问题(issue#2952@Github)
* 【core 】 修复NumberWithFormat导致转换Long异常问题(issue#I6L2LO@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.8.14 (2023-03-05)
### 🐣新特性
* 【core 】 增加PathMover(issue#I666HB@Github)
### 🐞Bug修复
* 【core 】 修复FileUtil.moveContent会删除源目录的问题(issue#I666HB@Github)
* 【http 】 修复HttpBase.body导致的空指针问题
-------------------------------------------------------------------------------------------------------------
# 5.8.13 (2023-03-03)
### 🐣新特性
* 【core 】 PhoneUtil.isTel400800支持400-XXX-XXXX格式(issue#2929@Github)
* 【core 】 build(pom): 添加 Automatic-Module-Name属性(pr#2926@Github)
* 【core 】 根据JDK-8080225修改了部分新建文件输入流和文件输出流的创建方式(pr#2930@Github)
* 【http 】 HttpRequest#body增加支持Resource重载(issue#2901@Github)
* 【core 】 JavaSourceCompiler#compile增加自定义options重载(issue#I6IVZK@Gitee)
### 🐞Bug修复
* 【db 】 修复识别JDBC驱动时重复问题(pr#940@Gitee)
* 【core 】 修复法定年龄计算的BUG(pr#935@Gitee)
* 【core 】 修复FileUtil.rename报NoSuchFileException问题(pr#2894@Github)
* 【core 】 修复StrUtil.split切分长度为0时的bug(pr#944@Gitee)
* 【core 】 修复ReUtil.delAll方法当 content 仅为空格时的问题(issue#I6GIMT@Gitee)
* 【core 】 修复ReUtil.delAll方法当 content 仅为空格时的问题(issue#I6GIMT@Gitee)
* 【core 】 修复文件内容跟随在调用stop后,文件依旧被占用问题(issue#I6GFD2@Gitee)
* 【core 】 修复ReflectUtil.invokeRaw方法中参数类型转换动作未生效的问题(pr#2912@Github)
* 【core 】 修复isXXX转换时的匹配问题(issue#I6H0XF@Gitee)
* 【core 】 修复MutableObj.equals空指针问题
* 【core 】 修复JavaSourceFileObject在编译错误时抛出IOException异常而非CompilerException问题(pr#2942@Github)
* 【jwt 】 修复JWT自定义时间格式后的时间戳转换问题(issue#I6IS5B@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.8.12 (2023-02-09)
### 🐣新特性
* 【http 】 HttpGlobalConfig.allowPatch()调用时忽略错误(issue#2832@Github)
* 【core 】 重构根据file magic number判断文件类型(pr#2834@Github)
* 【core 】 增加WGS84 坐标与墨卡托投影互转(pr#2811@Github)
* 【extra 】 ServletUtil遵循rfc 3986优化(issue#I6ALAO@Gitee)
* 【http 】 HttpUtil.decodeParams增加isFormUrlEncoded重载(pr#918@Gitee)
* 【db 】 AbstractDb添加返回类型为PageResult的page重载方法(pr#916@Gitee)
* 【core 】 DesensitizedUtil增加对IPv4和IPv6支持(issue#I6ABCS@Gitee)
* 【core 】 针对CollUtil.subtract coll1 为只读集合的补偿(pr#2865@Github)
* 【core 】 DateUtil.date方法统一修改规则,传入null返回null(pr#2877@Github)
* 【core 】 DateUtil.parseUTC统一规范,舍弃3位毫秒数后的数字(pr#2889@Github)
### 🐞Bug修复
* 【core 】 修复HexUtil.isHexNumber()对"-"的判断问题(issue#2857@Github)
* 【core 】 修复FileTypeUtil判断wav后缀的录音文件类型不能匹配问题(pr#2834@Github)
* 【core 】 修复FileUtil的rename在newName与原文件夹名称一样时,文件夹会被删除问题(issue#2845@Github)
* 【core 】 修复IoUtil.readBytes使用SocketInputStream读取不完整问题(issue#I6AT49@Gitee)
* 【core 】 修复ClassScanner自定义classload无效问题(issue#I68TV2@Gitee)
* 【core 】 【重要】删除XmlUtil.readObjectFromXml方法,避免漏洞(issue#2855@Github)
* 【core 】 修复Ipv4Util.list()方法的bug(pr#929@Gitee)
* 【poi 】 修复“sax方式读取excel2003版本,会调用两次doAfterAllAnalysed方法”问题。(pr#919@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.8.11 (2022-12-27)
### 🐣新特性
* 【core 】 CharUtil.isBlankChar增加\u180e(pr#2738@Github)
* 【core 】 SyncFinisher线程同步结束器添加立即结束方法(pr#879@Gitee)
* 【core 】 HtmlUtil中escape方法,增加不断开空格(nbsp)转译,防止xss攻击(pr#2755@Github)
* 【extra 】 修正sftp.cd方法 方法注释和实际效果不符(issue#2758@Github)
* 【core 】 修改PhoneUtil容易歧义的注释(issue#I63GWK@Gitee)
* 【crypto】 KeyUtil中的读取KeyStore文件的方法增加全局Provider(issue#I6796G@Gitee)
* 【extra 】 CompressUtil 新增 stripComponents 参数(pr#904@Gitee)
* 【extra 】 ServletUtil和JakartaServletUtil新增获取所有响应头的方法(pr#2828@Github)
* 【core 】 BooleanUtil增加toString重载(pr#2816@Github)
### 🐞Bug修复
* 【json 】 修复普通byte数组转JSONArray时的异常(pr#875@Gitee)
* 【core 】 修复ArrayUtil.insert()不支持原始类型数组的问题(pr#874@Gitee)
* 【core 】 修复HexUtil.isHexNumber()判断逻辑超出long的精度问题(issue#I62H7K@Gitee)
* 【core 】 修复BiMap中未重写computeIfAbsent和putIfAbsent导致双向查找出问题(issue#I62X8O@Gitee)
* 【json 】 修复JSON解析栈溢出部分问题(issue#2746@Github)
* 【json 】 修复getMultistageReverseProxyIp未去除空格问题(issue#I64P9J@Gitee)
* 【db 】 修复NamedSql中in没有判断大小写问题(issue#2792@Github)
* 【core 】 修复ZIP bomb漏洞(issue#2797@Github)
* 【core 】 修复JSONXMLSerializer将Json转为XML时,遇到嵌套需要递归情况时会丢失contentKeys问题(pr#903@Gitee)
* 【db 】 修复使用mariadb通过jdbcurl创建SimpleDataSource报NullPointException(pr#900@Gitee)
* 【core 】 修复UrlBuilder中参数中包括"://"判断错误问题(pr#898@Gitee)
* 【core 】 修复IndexedComparator导致的数据错乱问题(ExcelWriter使用部分别名导致字段丢失)(issue#I66Z6B@Gitee)
* 【crypto】 修复sm2构造方法NullPointerException(pr#2820@Github)
* 【core 】 修复ConverterRegistry中无效加载导致的问题(issue#2812@Github)
* 【core 】 修复CoordinateUtil坐标转换参数错误(pr#895@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.8.10 (2022-11-17)
### 🐣新特性
* 【http 】 HttpResponse增加getFileNameFromDisposition方法(pr#2676@Github)
* 【core 】 FileUtil.copy,当来源为文件时,返回文件而非目录(issue#I5YCVL@Gitee)
* 【db 】 DialectFactory增加identifyDriver重载(issue#I5YWI6@Gitee)
* 【core 】 去除ClassloaderUtil的Cache(issue#I5YWI6@Gitee)
* 【core 】 ClassScanner 增加忽略加载错误类的扫描方法(pr#855@Gitee)
* 【core 】 DateUtil和LocalDateTimeUtil添加区间退化为点,点与区间,点与点之间关系判断。(pr#2725@Github)
* 【http 】 UserAgentUtil增加对钉钉PC端的支持(issue#I60UOP@Gitee)
* 【extra 】 兼容ZipArchiveInputStream多参数情况(issue#2736@Github)
### 🐞Bug修复
* 【db 】 修复分页时order by截断问题(issue#I5X6FM@Gitee)
* 【core 】 修复Partition计算size除数为0报错问题(pr#2677@Github)
* 【core 】 由于对于ASCII的编码解码有缺陷,且这种BCD实现并不规范,因此BCD标记为弃用(issue#I5XEC6@Gitee)
* 【core 】 修复IoUtil.copyByNIO方法写出时没有flush的问题
* 【core 】 修复TreeBuilder中使用HashMap导致默认乱序问题(issue#I5Z8C5@Gitee)
* 【core 】 修复StrUtil.subWithLength负数问题(issue#I5YN49@Gitee)
* 【core 】 修复DefaultTrustManager空指针问题(issue#2716@Github)
* 【core 】 修复时间轮添加任务线程安全问题(pr#2712@Github)
* 【core 】 修复 BeanUtil#copyProperties 源对象与目标对象都是 Map 时设置忽略属性无效问题(pr#2698@Github)
* 【core 】 修复ChineseDate传入农历日期非闰月时获取公历错误问题(issue#I5YB1A@Gitee)
* 【core 】 修复key为弱引用 value为强引用 会导致key无法被回收 弱引用失效问题(pr#2723@Github)
* 【core 】 修复BeanUtil.copyProperties 包含EnumSet ,类型转换异常问题(pr#2684@Github)
* 【extra 】 修复Ftp.uploadFileOrDirectory上传目录错误调用错误问题(issue#I5R2DE@Gitee)
* 【extra 】 修复字节数组转float 返回类型却是double的bug(pr#867@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.8.9 (2022-10-22)
### 🐣新特性
* 【core 】 DateUtil增加isLastDayOfMonth、getLastDayOfMonth方法(pr#824@Gitee)
* 【core 】 AnnotationUtil类支持Lambda获取某注解属性值(pr#827@Gitee)
* 【core 】 CharUtil.isBlank添加Hangul Filler字符(issue#I5UGSQ@Gitee)
* 【poi 】 优化合并单元格读取(issue#I5UJZ1@Gitee)
* 【extra 】 增加QLExpress支持(issue#2653@Github)
* 【core 】 UrlBuilder增加getPortWithDefault方法(pr#835@Gitee)
* 【core 】 FuncKeyMap的子类,传入可被序列化的keyFunc(pr#838@Gitee)
* 【extra 】 SpringUtil支持SpringBoot3自动配置(pr#839@Gitee)
* 【core 】 CollectorUtil添加支持对值集合进行映射的分组方法(pr#844@Gitee)
* 【core 】 FileTypeUtil增加ppt识别(issue#2663@Github)
### 🐞Bug修复
* 【poi 】 修复ExcelReader读取只有标题行报错问题(issue#I5U1JA@Gitee)
* 【http 】 修复Http重定向时相对路径导致的问题(issue#I5TPSY@Gitee)
* 【http 】 修复Http重定全局设置无效问题(pr#2639@Github)
* 【core 】 修复ReUtil.replaceAll替换变量错误问题(pr#2639@Github)
* 【core 】 修复FileNameUtil.mainName二级扩展名获取错误问题(issue#2642@Github)
* 【cache 】 修复LRUCache移除事件监听失效问题(issue#2647@Github)
* 【core 】 修复MapToMap中ignoreNullValue无效问题(issue#2647@Github)
* 【core 】 修复ReflectUtil.invokeRaw方法转换失败抛出异常问题(pr#837@Gitee)
* 【core 】 修复TableMap没有default方法导致的问题(issue#I5WMST@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.8.8 (2022-09-26)
### 🐣新特性
* 【core 】 StreamUtil.of方法新增对 Iterator 支持;StreamUtil.of(Iterable) 方法优化(pr#807@Gitee)
* 【core 】 增加.wgt格式的MimeType(pr#2617@Github)
* 【core 】 EnumUtil.getBy增加带默认值重载(issue#I5RZU6@Gitee)
* 【core 】 ModifierUtil和ReflectUtil增加removeFinalModify(pr#810@Gitee)
* 【core 】 AbsCollValueMap添加removeValue和removeValues方法,用于list value值移除(pr#813@Gitee)
* 【extra 】 hutool-extra ftp 支持上传文件或目录(pr#821@Gitee)
* 【core 】 CharsetDetector增加默认识别的长度(issue#2547@Github)
### 🐞Bug修复
* 【core 】 修复FileNameUtil.cleanInvalid无法去除换行符问题(issue#I5RMZV@Gitee)
* 【core 】 修复murmur3_32实现错误(pr#2616@Github)
* 【core 】 修复PunyCode处理域名的问题(pr#2620@Github)
* 【core 】 修复ObjectUtil.defaultIfNull去掉误加的deprecated(issue#I5SIZT@Gitee)
* 【core 】 修复ReflectUtil 反射方法中桥接判断问题(issue#2625@Github)
* 【poi 】 修复ExcelWriter导出List<Map>引起的个数混乱问题(issue#2627@Github)
* 【poi 】 修复ExcelReader读取时间变成12小时形式问题(issue#I5Q1TW@Gitee)
* 【db 】 修复DB工具分页查询的时候oracle数据库会把ROWNUM_也带出来问题(issue#2618@Github)
* 【crypto 】 修复部分环境下使用 Bouncy Castle可能的JCE cannot authenticate the provider BC问题(issue#2631@Github)
-------------------------------------------------------------------------------------------------------------
# 5.8.7 (2022-09-15)
### 🐣新特性
* 【core 】 BooleanUtil的andOfWrap和orOfWrap()忽略null(issue#2599@Github)
* 【jwt 】 优化JWT自动识别header中的算法,并可自定义header中key的顺序(issue#I5QRUO@Gitee)
* 【core 】 IdcardUtil增加convert18To15方法(issue#I5QYCP@Gitee)
* 【core 】 新增AnsiColors(改自Spring Boot)、AnsiColorWrapper,优化QrCodeUtil(pr#778@Gitee)
* 【core 】 TemplateUtil的实现类增加getRawEngine方法(issues#2530@Github)
* 【core 】 ImgUtil中颜色相关方法剥离到ColorUtil中
* 【core 】 增加SafeConcurrentHashMap
### 🐞Bug修复
* 【core 】 修复ObjectUtil.defaultIfXXX中NPE问题(pr#2603@Github)
* 【db 】 修复Hive2驱动无法识别问题(issue#2606@Github)
* 【core 】 修复computeIfAbsent问题(issue#I5PTN3@Gitee)
* 【extra 】 修复Ftp中路径问题(issue#I5R2DE@Gitee)
* 【core 】 修复ConcurrentHashMap.computeIfAbsent缺陷导致的问题
* 【core 】 修复DateUtil.parseUTC时对-的处理问题(issue#2612@Github)
* 【core 】 修复Convert.chineseMoneyToNumber角分丢失问题(issue#2611@Github)
-------------------------------------------------------------------------------------------------------------
# 5.8.6 (2022-09-05)
### ❌不兼容特性
* 【json 】 由于设计缺陷,导致JSONObject#write方法中Filter中key的泛型不得已变动为Object,以解决无法递归的bug(issue#I5OMSC@Gitee)
### 🐣新特性
* 【core 】 CollUtil新增addIfAbsent方法(pr#750@Gitee)
* 【core 】 DateUtil.parseUTC支持只有时分的格式(issue#I5M6DP@Gitee)
* 【core 】 NumberUtil.parseInt忽略科学计数法(issue#I5M55F@Gitee)
* 【core 】 IterUtil.getFirst优化(pr#753@Gitee)
* 【core 】 增加Tree add 类型校验(pr#2542@Github)
* 【core 】 增加PunyCode处理完整域名(pr#2543@Github)
* 【core 】 增加替换字符串中第一个指定字符串和最后一个指定字符串方法(pr#2533@Github)
* 【jwt 】 JWT补充部分算法(pr#2546@Github)
* 【core 】 NumberUtil.roundStr() 修改为使用toPlainString(pr#775@Gitee)
* 【extra 】 QrCodeUtil新增SVG格式、Ascii Art字符画格式(pr#763@Gitee)
* 【jwt 】 JWTUtil的parseToken增加空值异常抛出(issue#I5OCQB@Gitee)
* 【extra 】 resource.loader等过期参数替换(issue#2571@Github)
* 【core 】 添加ObjectUtil的别名工具类ObjUtil
* 【core 】 扩展LocalDateTimeUtil.isIn方法使用场景(pr#2589@Github)
* 【core 】 MapUtil增加根据entry分组(pr#2591@Github)
* 【core 】 优化 getProcessorCount 潜在的获取不到的问题(pr#792@Gitee)
* 【core 】 ImgUtil增加sliceByRowsAndCols重载方法支持自定义图片格式(pr#793@Gitee)
*
### 🐞Bug修复
* 【http 】 修复https下可能的Patch、Get请求失效问题(issue#I3Z3DH@Gitee)
* 【core 】 修复RandomUtil#randomString 入参length为负数时报错问题(issue#2515@Github)
* 【core 】 修复SecureUtil传入null的key抛出异常问题(pr#2521@Github)
* 【core 】 修复UrlBuilder的toURI方法将url重复编码(issue#2503@Github)
* 【core 】 修复CollUtil.lastIndexOf序号错误问题
* 【core 】 修复zip被识别成jar和apk被识别成jar或zip的问题(pr#2548@Github)
* 【core 】 修复UrlBuilder.addPath 方法传入非有效路径字符串时,会出现空指针异常的问题(issue#I5O4ML@Gitee)
* 【core 】 修复FilterIter当参数filter为空时存在问题(issue#I5OG7U@Gitee)
* 【poi 】 修复Excel读取提示信息错误(issue#I5OSFC@Gitee)
* 【json 】 解决JSONObject#write无法递归的bug(issue#I5OMSC@Gitee)
* 【json 】 修复DayOfWeek转json异常问题(issue#2572@Github)
* 【extra 】 Ftp方法isDir和exist修复及改进(pr#2574@Github)
* 【json 】 修复JSON反序列化时,引用字段类型的自定义JsonDeserializer无效(issue#2555@Github)
-------------------------------------------------------------------------------------------------------------
# 5.8.5 (2022-07-29)
### ❌不兼容特性
* 【core 】 合成注解相关功能重构,增加@Link及其子注解(pr#702@Gitee)
### 🐣新特性
* 【core 】 NumberUtil新增isIn方法(pr#669@Gitee)
* 【core 】 修复注解工具类getAnnotations的NPE问题,注解扫描器添新功能(pr#671@Gitee)
* 【core 】 合成注解SyntheticAnnotation提取为接口,并为实现类添加注解选择器和属性处理器(pr#678@Gitee)
* 【core 】 增加BeanValueProvider(issue#I5FBHV@Gitee)
* 【core 】 Convert工具类中,新增中文大写数字金额转换为数字工具方法(pr#674@Gitee)
* 【core 】 新增CollectorUtil.reduceListMap()(pr#676@Gitee)
* 【core 】 CollStreamUtil为空返回空的集合变为可编辑(pr#681@Gitee)
* 【core 】 增加StrUtil.containsAll(pr#2437@Github)
* 【core 】 ForestMap添加getNodeValue方法(pr#699@Gitee)
* 【http 】 优化HttpUtil.isHttp判断,避免NPE(pr#698@Gitee)
* 【core 】 修复Dict#containsKey方法没区分大小写问题(pr#697@Gitee)
* 【core 】 增加比较两个LocalDateTime是否为同一天(pr#693@Gitee)
* 【core 】 增加TemporalAccessorUtil.isIn、LocalDateTimeUtil.isIn(issue#I5HBL0@Gitee)
* 【core 】 ReUtil增加getAllGroups重载(pr#2455@Github)
* 【core 】 PageUtil#totalPage增加totalCount为long类型的重载方法(pr#2442@Github)
* 【crypto 】 PemUtil.readPemPrivateKey支持pkcs#1格式,增加OpensslKeyUtil(pr#2456@Github)
* 【core 】 添加了通用的注解扫描器 `GenericAnnotationScanner`,并在 `AnnotationScanner` 接口中统一提供了提前配置好的扫描器静态实例(pr#715@Github)
* 【json 】 JSONConfig增加允许重复key配置,解决不规整json序列化的问题(pr#720@Github)
* 【core 】 完善了codec包下一些方法的入参空校验(pr#719@Gitee)
* 【extra 】 完善QrCodeUtil对于DATA_MATRIX生成的形状随机不可指定的功能(pr#722@Gitee)
* 【core 】 修改NetUtil.ipv6ToBigInteger,原方法标记为过期(pr#2485@Github)
* 【core 】 ZipUtil新增zip文件解压大小限制,防止zip炸弹(pr#726@Gitee)
* 【core 】 CompressUtil增加压缩和解压tgz(.tar.gz)文件(issue#I5J33E@Gitee)
*
### 🐞Bug修复
* 【core 】 修复CollUtil里面关于可变参数传null造成的crash问题(pr#2428@Github)
* 【socket 】 修复异常socket没有关闭问题(pr#690@Gitee)
* 【core 】 修复当时间戳为Integer时时间转换问题(pr#2449@Github)
* 【core 】 修复bmp文件判断问题(issue#I5H93G@Gitee)
* 【core 】 修复CombinationAnnotationElement造成递归循环(issue#I5FQGW@Gitee)
* 【core 】 修复Dict缺少putIfAbsent、computeIfAbsent问题(issue#I5FQGW@Gitee)
* 【core 】 修复Console.log应该把异常信息输出位置错误问题(pr#716@Gitee)
* 【core 】 修复UrlBuilder无法配置末尾追加“/”问题(issue#2459@Github)
* 【core 】 修复SystemPropsUtil.getBoolean方法应该只有值为true时才返回true,其他情况都应该返回false(pr#717@Gitee)
* 【core 】 修复isBase64判断不准确的问题(pr#727@Gitee)
* 【core 】 修复Convert#toMap默认转成HashMap的问题(pr#729@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.8.4 (2022-06-27)
### 🐣新特性
* 【extra 】 Sftp增加构造重载,支持超时(pr#653@Gitee)
* 【core 】 BeanUtil增加isCommonFieldsEqual(pr#653@Gitee)
* 【json 】 修改byte[]统一转换为数组形式(issue#2377@Github)
* 【http 】 HttpResponse增加body方法,支持自定义返回内容(pr#655@Gitee)
* 【core 】 修改ObjectUtil.isNull逻辑(issue#I5COJF@Gitee)
* 【core 】 BlockPolicy增加线程池关闭后的逻辑(pr#660@Gitee)
* 【core 】 Ipv4Util增加ipv4ToLong重载(pr#661@Gitee)
* 【core 】 LocalDateTimeUtil.parse改为blank检查(issue#I5CZJ9@Gitee)
* 【core 】 BeanPath在空元素时默认加入map,修改根据下标类型赋值List or map(issue#2362@Github)
* 【core 】 localAddressList 添加重构方法(pr#665@Gitee)
* 【cron 】 从配置文件加载任务时,自定义ID避免重复从配置文件加载(issue#I5E7BM@Gitee)
* 【core 】 新增注解扫描器和合成注解(pr#654@Gitee)
*
### 🐞Bug修复
* 【extra 】 修复createExtractor中抛出异常后流未关闭问题(pr#2384@Github)
* 【core 】 修复CsvData.getHeader没有判空导致空指针问题(issue#I5CK7Q@Gitee)
* 【core 】 修复单字母转换为数字的问题(issue#I5C4K1@Gitee)
* 【core 】 修复IterUtil.filter无效问题
* 【core 】 修复NumberUtil传入null,返回了true(issue#I5DTSL@Gitee)
* 【core 】 修复NumberUtil.isDouble问题(pr#2400@Github)
* 【core 】 修复ZipUtil使用append替换文件时,父目录存在报错问题(issue#I5DRU0@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.8.3 (2022-06-10)
### 🐣新特性
* 【extra 】 mail增加writeTimeout参数支持(issue#2355@Github)
* 【core 】 FileTypeUtil增加pptx扩展名支持(issue#I5A0GO@Gitee)
* 【core 】 IterUtil.get增加判空(issue#I5B12A@Gitee)
* 【core 】 FileTypeUtil增加webp类型判断(issue#I5BGTF@Gitee)
### 🐞Bug修复
* 【core 】 修复NumberUtil.isXXX空判断错误(issue#2356@Github)
* 【core 】 修复Convert.toSBC空指针问题(issue#I5APKK@Gitee)
* 【json 】 修复Bean中存在bytes,无法转换问题(issue#2365@Github)
* 【core 】 ArrayUtil.setOrAppend()传入空数组时,抛出异常(issue#I5APJE@Gitee)
* 【extra 】 JschSessionPool修复空指针检查问题(issue#I5BK4D@Gitee)
* 【core 】 修复使用ValueProvider中setFieldMapping无效问题(issue#I5B4R7@Gitee)
* 【json 】 修复byte[]作为JSONArray构造问题(issue#2369@Github)
-------------------------------------------------------------------------------------------------------------
# 5.8.2 (2022-05-27)
### 🐣新特性
* 【core 】 BeanUtil拷贝对象增加空检查(issue#I58CJ3@Gitee)
* 【db 】 Column#size改为long
* 【core 】 ClassUtil增加isInterface等方法(pr#623@Gitee)
* 【socket 】 增加ChannelUtil
### 🐞Bug修复
* 【extra 】 修复SshjSftp初始化未能代入端口配置问题(issue#2333@Github)
* 【core 】 修复Convert.numberToSimple转换问题(issue#2334@Github)
* 【core 】 修复TemporalAccessorConverter导致的转换问题(issue#2341@Github)
* 【core 】 修复NumberUtil除法空指针问题(issue#I58XKE@Gitee)
* 【core 】 修复CAR_VIN正则(pr#624@Gitee)
* 【db 】 修复count查询别名问题(issue#I590YB@Gitee)
* 【json 】 修复json中byte[]无法转换问题(issue#I59LW4@Gitee)
* 【core 】 修复NumberUtil.isXXX未判空问题(issue#2350@Github)
* 【core 】 修复Singleton中ConcurrentHashMap在JDK8下的bug引起的可能的死循环问题(issue#2349@Github)
-------------------------------------------------------------------------------------------------------------
# 5.8.1 (2022-05-16)
### 🐣新特性
* 【core 】 BooleanUtil增加toBooleanObject方法(issue#I56AG3@Gitee)
* 【core 】 CharSequenceUtil增加startWithAnyIgnoreCase方法(issue#2312@Github)
* 【system 】 JavaInfo增加版本(issue#2310@Github)
* 【core 】 新增CastUtil(pr#2313@Github)
* 【core 】 ByteUtil新增bytesToShort重载(issue#I57FA7@Gitee)
* 【core 】 ReflectUtil.invoke方法抛出运行时异常增加InvocationTargetRuntimeException(issue#I57GI2@Gitee)
* 【core 】 NumberUtil.parseNumber支持16进制(issue#2328@Github)
### 🐞Bug修复
* 【core 】 MapUtil.map对null友好,且修复了测试用例中分组问题(pr#614@Gitee)
* 【core 】 修复BeanUtil.beanToMap中properties为null的空指针问题(issue#2303@Github)
* 【db 】 DialectName中修正为POSTGRESQL(issue#2308@Github)
* 【core 】 修复BeanPath无法识别引号内的内容问题(issue#I56DE0@Gitee)
* 【core 】 修复Map.entry方法返回可变不可变相反问题
* 【jwt 】 修复jwt的过期容忍时间问题(issue#2329@Gitee)
-------------------------------------------------------------------------------------------------------------
# 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)
### ❌不兼容特性
* 【json 】 【可能兼容问题】JSONArray删除部分构造
* 【json 】 【可能兼容问题】JSONTokener使用InputStream作为源时,由系统编码变更为UTF-8
### 🐣新特性
* 【core 】 BeanUtil增加toBean重载(pr#598@Gitee)
* 【json 】 新增JSONParser
* 【json 】 JSON新增在解析时的过滤方法(issue#I52O85@Gitee)
* 【core 】 添加ArrayUtil.distinct、CollUtil.distinct重载(issue#2256@Github)
* 【core 】 添加TransMap、FuncMap、ReferenceConcurrentMap、WeakConcurrentMap
* 【json 】 添加ObjectMapper
* 【core 】 CHINESE_NAME正则条件放宽(pr#599@Gitee)
* 【extra 】 增加JakartaServletUtil(issue#2271@Github)
* 【poi 】 ExcelWriter支持重复别名的数据写出(issue#I53APY@Gitee)
* 【core 】 增加Hashids(issue#I53APY@Gitee)
* 【core 】 ReflectUtil.newInstanceIfPossible添加枚举、数组等类型的默认实现
* 【core 】 CombinationAnnotationElement增加过滤(pr#605@Gitee)
* 【all 】 精简CHANGELOG
* 【core 】 新增AnsiEncoder
* 【log 】 新增彩色日式输出风格ConsoleColorLog(pr#607@Gitee)
### 🐞Bug修复
* 【core 】 修复StrUtil.firstNonX非static问题(issue#2257@Github)
* 【core 】 修复SimpleCache线程安全问题
* 【core 】 修复ClassLoaderUtil中可能的关联ClassLoader错位问题
* 【extra 】 修复Sftp错误内容解析大小写问题(issue#I53GPI@Gitee)
* 【core 】 修复当文件内容为空时,会报异常问题(pr#602@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.8.0.M3 (2022-04-14)
### ❌不兼容特性
* 【core 】 StreamProgress#progress方法参数变更为2个(pr#594@Gitee)
* 【core 】 SimpleCache的raw key使用Mutable
* 【core 】 ArrayUtil.join删除已经弃用的无用原始类型重载
* 【core 】 删除Holder类,ReUtil.extractMultiAndDelPre方法参数改为Mutable
### 🐣新特性
* 【core 】 CopyOptions支持以Lambda方式设置忽略属性列表(pr#590@Gitee)
* 【core 】 增加中文姓名正则及其校验(pr#592@Gitee)
* 【core 】 Snowflake支持sequence使用随机数(issue#I51EJY@Gitee)
* 【core 】 JarClassLoader增加构造(pr#593@Gitee)
* 【core 】 增加Pid,以便获取单例pid
* 【core 】 Img增加全覆盖水印pressTextFull(pr#595@Gitee)
* 【core 】 ByteUtil.numberToBytes增加Byte判断(issue#2252@Github)
* 【core 】 CopyOptions添加converter,可以自定义非全局类型转换
* 【core 】 添加了设置从绝对路径加载数据库配置文件的功能(pr#2253@Github)
### 🐞Bug修复
* 【core 】 修复UserAgentUtil识别Linux出错(issue#I50YGY@Gitee)
* 【poi 】 修复ExcelWriter.getDisposition方法生成错误(issue#2239@Github)
* 【core 】 修复UrlBuilder重复编码的问题(issue#2243@Github)
* 【http 】 修复HttpRequest中urlQuery,处理get请求参数的时候会导致空指针异常(pr#2248@Github)
* 【core 】 修复SimpleCache在get时未使用读锁可能导致的问题
* 【aop 】 修复JdkInterceptor before 方法拦截 return false 仍然执行了 after 的拦截问题(issue#I5237G@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.8.0.M2 (2022-04-02)
### ❌不兼容特性
* 【extra 】 【可能兼容问题】BeanCopierCache的key结构变更
* 【http 】 【可能兼容问题】HttpInterceptor增加泛型标识,HttpRequest中配置汇总于HttpConfig
* 【core 】 【可能兼容问题】UrlQuery.addQuery参数2从String变更为Object
* 【core 】 【可能兼容问题】WorkbookUtil.createBook实现改为WorkbookFactory.create
### 🐣新特性
* 【core 】 MapUtil增加entry、ofEntries方法
* 【core 】 ZipWriter增加add方法重载
* 【core 】 IterUtil增加filtered,增加FilterIter(issue#2228)
* 【core 】 增加NodeListIter、ResettableIter
* 【crypto 】 HmacAlgorithm增加SM4CMAC(issue#2206@Github)
* 【http 】 增加HttpConfig,响应支持拦截(issue#2217@Github)
* 【core 】 增加BlockPolicy,ThreadUtil增加newFixedExecutor方法(pr#2231@Github)
* 【crypto 】 BCMacEngine、Mac、CBCBlockCipherMacEngine、SM4MacEngine(issue#2206@Github)
### 🐞Bug修复
* 【core 】 IdcardUtil#getCityCodeByIdCard位数问题(issue#2224@Github)
* 【core 】 修复urlWithParamIfGet函数逻辑问题(issue#I50IUD@Gitee)
* 【core 】 修复IoUtil.readBytes限制长度读取问题(issue#2230@Github)
* 【http 】 修复HttpRequest中编码对URL无效的问题(issue#I50NHQ@Gitee)
* 【poi 】 修复读取excel抛NPE错误(pr#2234@Github)
-------------------------------------------------------------------------------------------------------------
# 5.8.0.M1 (2022-03-28)
### ❌不兼容特性
* 【db 】 【不向下兼容 】增加MongoDB4.x支持返回MongoClient变更(pr#568@Gitee)
* 【json 】 【可能兼容问题】修改JSONObject结构,继承自MapWrapper
* 【core 】 【可能兼容问题】BeanCopier重构,新建XXXCopier,删除XXXValueProvider
* 【core 】 【可能兼容问题】URLEncoder废弃,URLEncoderUtil使用RFC3986
* 【core 】 【可能兼容问题】Base32分离编码和解码,以便减少数据加载,支持Hex模式
* 【core 】 【可能兼容问题】Base58分离编码和解码
* 【core 】 【可能兼容问题】Base62分离编码和解码,增加inverted模式支持
* 【core 】 【兼容问题 】PunyCode参数由String改为Charsequence
* 【cron 】 【可能兼容问题】SimpleValueParser改名为AbsValueParser,改为abstract
* 【poi 】 【可能兼容问题】ExcelUtil.getBigWriter返回值改为BigExcelWriter
* 【core 】 【可能兼容问题】Opt.ofEmptyAble参数由List改为Collection子类(pr#580@Gitee)
* 【json 】 【可能兼容问题】JSON转Bean时,使用JSON本身的相关设置,而非默认(issue#2212@Github)
* 【json 】 【可能兼容问题】JSONConfig中isOrder废弃,默认全部有序
### 🐣新特性
* 【http 】 HttpRequest.form采用TableMap方式(issue#I4W427@Gitee)
* 【core 】 AnnotationUtil增加getAnnotationAlias方法(pr#554@Gitee)
* 【core 】 FileUtil.extName增加对tar.gz特殊处理(issue#I4W5FS@Gitee)
* 【crypto 】 增加XXTEA实现(issue#I4WH2X@Gitee)
* 【core 】 增加Table实现(issue#2179@Github)
* 【core 】 增加UniqueKeySet(issue#I4WUWR@Gitee)
* 【core 】 阿拉伯数字转换成中文对发票票面金额转换的扩展(pr#570@Gitee)
* 【core 】 ArrayUtil增加replace方法(pr#570@Gitee)
* 【core 】 CsvReadConfig增加自定义标题行行号(issue#2180@Github)
* 【core 】 FileAppender优化初始List大小(pr#2197@Github)
* 【core 】 Base32增加pad支持(pr#2195@Github)
* 【core 】 Dict增加setFields方法(pr#578@Gitee)
* 【db 】 新加db.meta的索引相关接口(pr#563@Gitee)
* 【db 】 Oracle中Column#typeName后的长度去掉(pr#563@Gitee)
* 【poi 】 优化ExcelReader,采用只读模式(pr#2204@Gitee)
* 【poi 】 优化ExcelBase,将alias放入
* 【poi 】 优化ExcelBase,将alias放入
* 【core 】 改进StrUtil#startWith、endWith性能
* 【cron 】 增加CronPatternParser、MatcherTable
* 【http 】 GlobalHeaders增加系统属性allowUnsafeServerCertChange、allowUnsafeRenegotiation
* 【http 】 UserAgentUtil 解析,增加MiUI/XiaoMi浏览器判断逻辑(pr#581@Gitee)
* 【core 】 FileAppender添加锁构造(pr#2211@Github)
* 【poi 】 ExcelReader增加构造(pr#2213@Github)
* 【core 】 MapUtil提供change函数,EnumUtil提供getBy函数,通过lambda进行枚举字段映射(pr#583@Gitee)
* 【core 】 CompareUtil增加comparingIndexed(pr#585@Gitee)
* 【db 】 DruidDataSource构建时支持自定义参数(issue#I4ZKCW@Gitee)
* 【poi 】 ExcelWriter增加addImg重载(issue#2218@Github)
* 【bloomFilter】 增加FuncFilter
* 【http 】 增加GlobalInterceptor(issue#2217)
### 🐞Bug修复
* 【core 】 修复ObjectUtil.hasNull传入null返回true的问题(pr#555@Gitee)
* 【core 】 修复NumberConverter对数字转换的问题(issue#I4WPF4@Gitee)
* 【core 】 修复ReflectUtil.getMethods获取接口方法问题(issue#I4WUWR@Gitee)
* 【core 】 修复NamingCase中大写转换问题(pr#572@Gitee)
* 【http 】 修复GET重定向时,携带参数问题(issue#2189@Github)
* 【core 】 修复FileUtil、FileCopier相对路径获取父路径错误问题(pr#2188@Github)
* 【core 】 修复CopyOptions中fieldNameEditor无效问题(issue#2202@Github)
* 【json 】 修复JSON对Map.Entry的解析问题
* 【core 】 修复MapConverter中map与map转换兼容问题
* 【poi 】 解决sax读取时,POI-5.2.x兼容性问题
* 【core 】 修复判断两段时间区间交集问题(pr#2210@Github)
* 【http 】 修复标签误删问题(issue#I4Z7BV@Gitee)
* 【core 】 修复Win下文件名带*问题(pr#584@Gitee)
* 【core 】 FileUtil.getMimeType增加rar、7z支持(issue#I4ZBN0@Gitee)
* 【json 】 JSON修复transient设置无效问题(issue#2212@Github)
* 【core 】 修复IterUtil.getElementType获取结果为null的问题(issue#2222@Github)
* 【core 】 修复农历转公历在闰月时错误(issue#I4ZSGJ@Gitee)
# 5.7.x 或更早版本
* [https://gitee.com/dromara/hutool/blob/v5-master/CHANGELOG_5.0-5.7.md](https://gitee.com/dromara/hutool/blob/v5-master/CHANGELOG_5.0-5.7.md)
\ No newline at end of file
# 🚀Changelog
# 5.7.22 (2022-03-01)
### 🐣新特性
* 【poi 】 ExcelUtil.readBySax增加对POI-5.2.0的兼容性(issue#I4TJF4@Gitee)
* 【extra 】 Ftp增加构造(issue#I4TKXP@Gitee)
* 【core 】 GenericBuilder支持Map构建(pr#540@Github)
* 【json 】 新增TemporalAccessorSerializer
* 【core 】 使多个xxxBuilder实现Builder接口,扩展CheckedUtil(pr#545@Gitee)
* 【core 】 CheckedUtil删除第二个参数为RuntimeException的方法
* 【core 】 FileUtil增加getTotalLines方法
* 【db 】 MetaUtil增加getTableMeta重载(issue#2157@Github)
* 【http 】 增加HttpGlobalConfig.setDecodeUrl(issue#I4U8YQ@Gitee)
* 【core 】 增加Base58(pr#2162@Github)
* 【core 】 增加AntPathMatcher(issue#I4T7K5@Gitee)
* 【core 】 StrJoiner修改toString策略,调用不再修改Appendable
* 【core 】 StrJoiner增加length和merge方法
* 【core 】 CRC16增加getHexValue方法(issue#I4VO3U@Gitee)
### 🐞Bug修复
* 【cache 】 修复ReentrantCache.toString方法线程不安全问题(issue#2140@Github)
* 【core 】 修复SystemPropsUtil.getInt返回long问题(pr#546@Gitee)
* 【crypto 】 修复SM2.getD前导0问题(pr#2149@Github)
* 【core 】 修复ChineseDate在1970年之前农历差一天问题(issue#I4UTPK@Gitee)
* 【core 】 修复CoordinateUtil精准问题及转换bug(pr#551@Gitee)
* 【json 】 修复JSONObject解析XML后没有返回的bug(issue#2160@Github)
* 【extra 】 修复GanymedUtil错误信息读取位置问题(issue#I4VDZ2@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.7.21 (2022-02-14)
### 🐣新特性
* 【extra 】 增加jetbrick模板支持
* 【extra 】 EmojiUtil增加方法(pr#519@Gitee)
* 【core 】 DateUtil 添加两个日期是否同一周方法(pr#516@Gitee)
* 【db 】 新增条件组,用于处理复杂的where条件(pr#514@Gitee)
* 【core 】 新增LocalDateTimeUtil.weekOfYear(issue#I4RWXC@Gitee)
* 【core 】 Month增加toJdkMonth、getValueBaseOne
* 【core 】 CsvWriter修改规则,去除末尾多余换行符(issue#I4RSQY@Gitee)
* 【core 】 DateUtil增加rangeFunc和rangeConsume(issue#I4RSQY@Gitee)
* 【core 】 DateTime增加setUseJdkToStringStyle方法
* 【core 】 CharSequenceUtil增加replace重载(issue#2122@Github)
* 【core 】 IntMap和LongMap使用位运算快速求解取余运算(pr#2123@Github)
* 【core 】 新增通用builder类:GenericBuilder(pr#526@Gitee)
* 【core 】 新增copySafely方法与mkdirsSafely方法(pr#527@Gitee)
* 【core 】 新增MetroHash(pr#532@Gitee)
* 【core 】 SpringUtil增加publishEvent重载(pr#2139@Github)
* 【core 】 DateUtil增加rangeContains、rangeNotContains(pr#537@Gitee)
* 【core 】 Resource增加isModified默认方法
* 【core 】 增加VfsResource
* 【json 】 JSONConfig增加setKeyComparator、setNatureKeyComparator方法,支持自定义排序(issue#I4RBZ4@Gitee)
### 🐞Bug修复
* 【core 】 修复ChineseDate农历获取正月出现数组越界BUG(issue#2112@Github)
* 【extra 】 修复EmojiUtil.toHtmlHex()方法(pr#519@Gitee)
* 【system 】 修复CpuInfo.getUsed()方法(issue#2116@Github)
* 【dfa 】 修复密集匹配和贪婪匹配冲突问题(issue#2126@Github)
* 【db 】 修复c3p0丢失信息问题(issue#I4T7XZ@Gitee)
* 【http 】 修复Action中HttpExchange没有关闭问题
* 【http 】 修复Action中HttpExchange没有关闭问题
-------------------------------------------------------------------------------------------------------------
# 5.7.20 (2022-01-20)
### 🐣新特性
* 【core 】 增加对null值友好的groupingBy操作的Collector实现,可指定map类型(pr#498@Gitee)
* 【core 】 增加KetamaHash(issue#2084@Github)
* 【crypto 】 增加SignUtil
* 【json 】 JSONGetter增加getBeanList方法
* 【core 】 ObjectUtil 添加三个defaultIfXxxx方法,用于节省CPU及内存损耗(pr#2094@Github)
* 【db 】 增加单条数据原生upsert语义支持(pr#501@Gitee)
* 【core 】 在CollectorUtil提交Collectors.toMap的对null友好实现,避免NPE(pr#502@Gitee)
* 【http 】 增加HttpGlobalConfig.setIgnoreEOFError(issue#2092@Github)
* 【core 】 RandomUtil.randomStringWithoutStr排除字符串兼容大写字母(pr#503@Gitee)
* 【core 】 LocalDateTime增加isOverlap方法(pr#512@Gitee)
* 【core 】 Ipv4Util.getBeginIpLong、getEndIpLong改为public(pr#508@Gitee)
*
### 🐞Bug修复
* 【core 】 修复setter重载导致匹配错误(issue#2082@Github)
* 【core 】 修复RegexPool汉字匹配范围小问题(pr#2081@Github)
* 【core 】 修复OS中的拼写错误(pr#500@Gitee)
* 【core 】 修复CustomKeyMap的merge失效问题(issue#2086@Github)
* 【core 】 修复FileUtil.appendLines换行问题(issue#I4QCEZ@Gitee)
* 【core 】 修复java.time.Month解析问题(issue#2090@Github)
* 【core 】 修复PathUtil.moveContent移动覆盖导致的问题(issue#I4QV0L@Gitee)
* 【core 】 修复Opt.ofTry中并发环境下线程安全问题(pr#504@Gitee)
* 【core 】 修复PatternFinder中end边界判断问题(issue#2099@Github)
* 【core 】 修复格式化为中文日期时,0被处理为空串(pr#507@Gitee)
* 【core 】 修复UrlPath转义冒号问题(issue#I4RA42@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.7.19 (2022-01-07)
### 🐣新特性
* 【db 】 优化Condition参数拆分(pr#2046@Github)
* 【core 】 优化ArrayUtil.isAllEmpty性能(pr#2045@Github)
* 【core 】 CharSequenceUtil.replace方法支持增补字符(pr#2041@Github)
* 【extra 】 增加SshjSftp(pr#493@Gitee)
* 【core 】 增加CheckedUtil(pr#491@Gitee)
* 【extra 】 增加Sftp.isDir中的抛异常判断条件(issues#I4P9ED@Gitee)
### 🐞Bug修复
* 【http 】 HttpUtil重定向次数失效问题(issue#I4O28Q@Gitee)
* 【core 】 修复UrlPath空白path多/问题(issue#I49KAL@Gitee)
* 【core 】 修复ServletUtil写出文件时未添加双引号导致逗号等特殊符号引起的问题(issue#I4P1BF@Gitee)
* 【core 】 NumberUtil增加equals重载解决long传入判断问题(pr#2064@Github)
* 【core 】 修复CsvParser行号有误问题(pr#2065@Github)
* 【http 】 修复HttpRequest.of无法自动添加http前缀问题(issue#I4PEYL@Gitee)
* 【core 】 修复 `CharSequenceUtil.brief(str, maxLength)` 方法字符串越界问题,以及 `maxLength` 部分值时结果与预期不符的问题(pr#2068@Github)
* 【core 】 修复NamingCase中转换下划线字母+数字转换问题(issue#2070@Github)
* 【core 】 修复split空判断不一致问题(pr#496@Gitee)
* 【crypto 】 修复SM2.getDHex()前导0丢失,然后导致获取密钥错误(pr#2073@Github)
* 【core 】 修复关于Calculator.conversion()方法EmptyStackException的bug(pr#2076@Github)
* 【core 】 修复StrUtil.subBetweenAll循环bug(issue#I4PT3M@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.7.18 (2021-12-25)
### 🐣新特性
* 【core 】 新增CollStreamUtil.groupKeyValue(pr#479@Gitee)
* 【core 】 新增DatePattern.createFormatter(pr#483@Gitee)
* 【core 】 增加IdUtil.getSnowflakeNextId(pr#485@Gitee)
* 【log 】 log4j2的编译依赖改为api,core为test依赖(pr#2019@Github)
* 【core 】 Img.scale缩小默认使用平滑模式,增加scale方法重载可选模式(issue#I4MY6X@Gitee)
* 【core 】 excel添加写入图片的方法(pr#486@Gitee)
* 【core 】 增加CollStreamUtil.groupBy(pr#484@Gitee)
* 【core 】 增加CollUtil.setValueByMap(pr#482@Gitee)
* 【core 】 LocalDateTimeUtil增加endOfDay重载(issue#2025@Github)
* 【core 】 IoCopier增加setFlushEveryBuffer方法(issue#2022@Github)
*
### 🐞Bug修复
* 【core 】 LineReadWatcher#onModify文件清空判断问题(issue#2013@Github)
* 【core 】 修复4位bytes转换float问题(issue#I4M0E4@Gitee)
* 【core 】 修复CharSequenceUtil.replace问题(issue#I4M16G@Gitee)
* 【json 】 修复JSONObject 初始化大小值未被使用问题(issue#2016@Github)
* 【core 】 修复StrUtil.startWith都为null返回错误问题(issue#I4MV7Q@Gitee)
* 【core 】 修复PasswdStrength检测问题(issue#I4N48X@Gitee)
* 【core 】 修复UserAgentUtil解析EdgA无法识别问题(issue#I4MCBP@Gitee)
* 【extra 】 修复Archiver路径前带/问题(issue#I4NS0F@Gitee)
* 【extra 】 修复getMainColor方法中参数rgbFilters无效问题(pr#2034@Github)
* 【core 】 修复ChineseDate无法区分闰月问题(issue#I4NQQW@Gitee)
* 【core 】 修复BeanDesc大小写误判问题(issue#2009@Github)
-------------------------------------------------------------------------------------------------------------
# 5.7.17 (2021-12-09)
### 🐣新特性
* 【core 】 增加AsyncUtil(pr#457@Gitee)
* 【http 】 增加HttpResource(issue#1943@Github)
* 【http 】 增加BytesBody、FormUrlEncodedBody
* 【cron 】 TaskTable.remove增加返回值(issue#I4HX3B@Gitee)
* 【core 】 Tree增加filter、filterNew、cloneTree、hasChild方法(issue#I4HFC6@Gitee)
* 【poi 】 增加ColumnSheetReader及ExcelReader.readColumn,支持读取某一列
* 【core 】 IdCardUtil.isValidCard不再自动trim(issue#I4I04O@Gitee)
* 【core 】 改进TextFinder,支持限制结束位置及反向查找模式
* 【core 】 Opt增加部分方法(pr#459@Gitee)
* 【core 】 增加DefaultCloneable(pr#459@Gitee)
* 【core 】 CollStreamUtil增加是否并行的重载(pr#467@Gitee)
* 【core 】 ResourceClassLoader增加缓存(pr#1959@Github)
* 【crypto 】 增加CipherWrapper,增加setRandom(issue#1958@Github)
* 【core 】 Opt增加ofTry方法(pr#1956@Github)
* 【core 】 DateUtil.toIntSecond标记为弃用(issue#I4JHPR@Gitee)
* 【db 】 Db.executeBatch标记一个重载为弃用(issue#I4JIPH@Gitee)
* 【core 】 增加CharSequenceUtil.subPreGbk重载(issue#I4JO2E@Gitee)
* 【core 】 ReflectUtil.getMethod排除桥接方法(pr#1965@Github)
* 【http 】 completeFileNameFromHeader在使用path为路径时,自动解码(issue#I4K0FS@Gitee)
* 【core 】 CopyOptions增加override配置(issue#I4JQ1N@Gitee)
* 【poi 】 SheetRidReader可以获取所有sheet名(issue#I4JA3M@Gitee)
* 【core 】 AsyncUtil.waitAny增加返回值(pr#473@Gitee)
* 【core 】 Calculator.compare改为private(issue#1982@Github)
* 【core 】 NumberUtil增加isOdd、isEven方法(pr#474@Gitee)
* 【http 】 增加HttpGlobalConfig.setBoundary,删除MultipartBody.BOUNDARY和getContentType(issue#I4KSLY@Gitee)
* 【core 】 DateTime增加setMinimalDaysInFirstWeek(issue#1988@Github)
* 【db 】 Db增加query重载,可支持自定义PreparedStatement,从而支持游标(issue#I4JXWN@Gitee)
* 【cache 】 CacheObj增加getExpiredTime等方法(issue#I4LE80@Gitee)
* 【extra 】 Ftp增加backToPwd方法(issue#2004@Github)
* 【core 】 CollStreamUtil修改集合中null处理问题(pr#478@Gitee)
*
### 🐞Bug修复
* 【core 】 修复FileResource构造fileName参数无效问题(issue#1942@Github)
* 【cache 】 修复WeakCache键值强关联导致的无法回收问题(issue#1953@Github)
* 【core 】 修复ZipUtil相对路径父路径获取null问题(issue#1961@Github)
* 【http 】 修复HttpUtil.normalizeParams未判空导致的问题(issue#1975@Github)
* 【poi 】 修复读取日期类型的自定义样式单元格时间结果为1899年问题(pr#1977@Github)
* 【poi 】 修复SoapClient参数未使用问题
* 【core 】 修复HashUtil.cityHash128参数未使用问题
* 【core 】 修复DateUtil.formatChineseDate显示问题(issue#I4KK5F@Gitee)
* 【poi 】 修复CellUtil.setCellValueStyle空导致值无法写入问题(issue#1995@Github)
* 【poi 】 修复CellUtil.setComment参数设置错误问题
* 【core 】 修复QueryBuilder解析路径导致的错误(issue#1989@Github)
* 【core 】 修复DateTime.between中DateUnit无效问题
* 【poi 】 修复StyleUtil.getFormat非static问题(issue#I4LGNP@Gitee)
* 【crypto 】 修复SM2.getD返回bytes包含符号位的问题(issue#2001@Github)
-------------------------------------------------------------------------------------------------------------
# 5.7.16 (2021-11-07)
### 🐣新特性
* 【core 】 增加DateTime.toLocalDateTime
* 【core 】 CharSequenceUtil增加normalize方法(pr#444@Gitee)
* 【core 】 MailAccount增加setEncodefilename()方法,可选是否编码附件的文件名(issue#I4F160@Gitee)
* 【core 】 MailAccount中charset增加null时的默认规则
* 【core 】 NumberUtil.compare修正注释说明(issue#I4FAJ1@Gitee)
* 【core 】 增加RFC3986类
* 【extra 】 Sftp增加put和upload重载(issue#I4FGDH@Gitee)
* 【core 】 TemporalUtil增加toChronoUnit、toTimeUnit方法(issue#I4FGDH@Gitee)
* 【core 】 StopWatch增加prettyPrint重载(issue#1910@Github)
* 【core 】 修改RegexPool中Ipv4正则
* 【json 】 Filter改为MutablePair,以便编辑键值对(issue#1921@Github)
* 【core 】 Opt增加peeks方法(pr#445@Gitee)
* 【extra 】 MailAccount中user默认值改为邮箱全称(issue#I4FYVY@Gitee)
* 【core 】 增加CoordinateUtil(pr#446@Gitee)
* 【core 】 DateUtil增加rangeToList重载(pr#1925@Github)
* 【core 】 CollUtil增加safeContains方法(pr#1926@Github)
* 【core 】 ActualTypeMapperPool增加getStrKeyMap方法(pr#447@Gitee)
* 【core 】 TreeUtil增加walk方法(pr#1932@Gitee)
* 【crypto 】 SmUtil增加sm3WithSalt(pr#454@Gitee)
* 【http 】 增加HttpInterceptor(issue#I4H1ZV@Gitee)
* 【core 】 Opt增加flattedMap(issue#I4H1ZV@Gitee)
### 🐞Bug修复
* 【core 】 修复UrlBuilder.addPath歧义问题(issue#1912@Github)
* 【core 】 修复StrBuilder中总长度计算问题(issue#I4F9L7@Gitee)
* 【core 】 修复CharSequenceUtil.wrapIfMissing预定义长度计算问题(issue#I4FDZ2@Gitee)
* 【poi 】 修复合并单元格为日期时,导出单元格数据为数字问题(issue#1911@Github)
* 【core 】 修复CompilerUtil.getFileManager参数没有使用的问题(issue#I4FIO6@Gitee)
* 【core 】 修复NetUtil.isInRange的cidr判断问题(pr#1917@Github)
* 【core 】 修复RegexPool中对URL正则匹配问题(issue#I4GRKD@Gitee)
* 【core 】 修复UrlQuery对于application/x-www-form-urlencoded问题(issue#1931@Github)
-------------------------------------------------------------------------------------------------------------
# 5.7.15 (2021-10-21)
### 🐣新特性
* 【db 】 Db.quietSetAutoCommit增加判空(issue#I4D75B@Gitee)
* 【core 】 增加RingIndexUtil(pr#438@Gitee)
* 【core 】 Assert增加checkBetween重载(pr#436@Gitee)
* 【core 】 ReUtil增加命名分组重载(pr#439@Gitee)
* 【json 】 toString和writer增加Filter(issue#I4DQNQ@Gitee)
* 【core 】 ContentType增加build重载(pr#1898@Github)
* 【bom 】 支持scope=import方式引入(issue#1561@Github)
* 【core 】 新增Hash接口,HashXXX继承此接口
* 【core 】 ZipUtil增加append方法(pr#441@Gitee)
* 【core 】 CollUtil增加重载(issue#I4E9FS@Gitee)
* 【core 】 CopyOptions新增setFieldValueEditor(issue#I4E08T@Gitee)
* 【core 】 增加SystemPropsUtil(issue#1918@Gitee)
* 【core 】 增加`hutool.date.lenient`系统属性(issue#1918@Gitee)
### 🐞Bug修复
* 【core 】 修复CollUtil.isEqualList两个null返回错误问题(issue#1885@Github)
* 【poi 】 修复ExcelWriter多余调试信息导致的问题(issue#1884@Github)
* 【poi 】 修复TemporalAccessorUtil.toInstant使用DateTimeFormatter导致问题(issue#1891@Github)
* 【poi 】 修复sheet.getRow(y)为null导致的问题(issue#1893@Github)
* 【cache 】 修复LRUCache线程安全问题(issue#1895@Github)
* 【crypto 】 修复KeyUtil异常信息参数丢失问题(issue#1902@Github)
* 【core 】 修复StrUtil.split和splittoArray不一致问题(issue#I4ELU5@Github)
* 【core 】 修复SymmetricCrypto未关闭CipherOutputStream导致的问题(issue#I4EMST@Gitee)
* 【core 】 修复QueryBuilder对/转义问题(issue#1904@Github)
-------------------------------------------------------------------------------------------------------------
# 5.7.14 (2021-10-09)
### 🐣新特性
* 【extra 】 修复HttpCookie设置cookies的方法,不符合RFC6265规范问题(issue#I4B70D@Gitee)
* 【http 】 优化Browser版本正则判断
* 【setting】 增加YamlUtil
* 【extra 】 SenvenZExtractor改名为SevenZExtractor,增加getFirst、get方法
* 【core 】 DateConverter修改返回java.util.Date而非DateTime(issue#I4BOAP@Gitee)
* 【core 】 增加IterableIter、ComputeIter
* 【core 】 CsvConfig增加disableComment方法(issue#1842@Github)
* 【core 】 DateTime构造和DateUtil.parse可选是否宽松模式(issue#1849@Github)
* 【core 】 TreeBuilder增加部分根节点set方法(issue#1848@Github)
* 【core 】 优化Base64.isBase64方法:减少一次多余的判断(pr#1860@Github)
* 【cache 】 优化FIFOCache未设置过期策略时,无需遍历判断过期对象(pr#425@Gitee)
* 【core 】 增加Opt类(pr#426@Gitee)
* 【core 】 Week增加of重载,支持DayOfWek(pr#1872@Github)
* 【poi 】 优化read,避免多次创建CopyOptions(issue#1875@Github)
* 【core 】 优化CsvReader,实现可控遍历(pr#1873@Github)
* 【core 】 优化Base64.isBase64判断(pr#1879@Github)
* 【core 】 新增StrFormatter.formatWith(pr#430@Gitee)
### 🐞Bug修复
* 【http 】 修复HttpCookie设置cookies的方法,不符合RFC6265规范问题(pr#418@Gitee)
* 【http 】 修复Extractor中filter无效问题
* 【json 】 修复JSONGetter.getJSONArray判断null的问题(issue#I4C15H@Gitee)
* 【db 】 修复Condition没占位符的情况下sql没引号问题(issue#1846@Github)
* 【cache 】 修复FIFOCache中remove回调无效问题(pr#1856@Github)
* 【json 】 修复JSONArray.set中,index为0报错问题(issue#1858@Github)
* 【core 】 修复FileUtil.checkSlip中getCanonicalPath异常引起的问题(issue#1858@Github)
-------------------------------------------------------------------------------------------------------------
# 5.7.13 (2021-09-17)
### 🐣新特性
* 【core 】 CsvReadConfig增加trimField选项(issue#I49M0C@Gitee)
* 【http 】 HttpBase增加clearHeaders方法(issue#I49P23@Gitee)
* 【core 】 CsvWriter的write和writeBeans参数改为Iterable(issue#I49O4S@Gitee)
* 【core 】 BitStatusUtil添加来源声明(issue#1824@Github)
* 【core 】 UrlQuery.build增加重载,支持可选是否转义(issue#I4AIX1@Gitee)
* 【core 】 ListUtil增加swapTo和swapElement方法(pr#416@Gitee)
* 【poi 】 ExcelWriter支持Hyperlink(issue#I49QAL@Gitee)
*
### 🐞Bug修复
* 【core 】 修复FuncKey函数无效问题
* 【core 】 修复ImgUtil.copyImage读取网络URL后宽高报错问题(issue#1821@Github)
* 【core 】 修复StrJoiner.append配置丢失问题(issue#I49K1L@Gitee)
* 【core 】 修复EscapeUtil特殊字符的hex长度不足导致的问题(issue#I49JU8@Gitee)
* 【core 】 修复UrlBuilder对Fragment部分编码问题(issue#I49KAL@Gitee)
* 【core 】 修复Enum转换的bug(issue#I49VZB@Gitee)
* 【json 】 修复JSONUtil.parse对于MapWrapper识别问题
* 【core 】 修复IdcardUtil.isValidCard判断问题(issue#I4AJ8S@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.7.12 (2021-09-09)
### 🐣新特性
* 【system 】 OshiUtil增加getCurrentProcess方法
* 【extra 】 SpringUtil增加getApplicationName、publishEvent方法(issue#I485NZ@Gitee)
* 【core 】 BeanUtil.getProperty增加判空(issue#I488HA@Gitee)
* 【core 】 OptionalBean弃用(pr#1182@Github)
* 【setting】 Setting、Props持有URL改为持有Resource(pr#1182@Github)
* 【json 】 JSONUtil.toJsonStr增加重载,支持JSONConfig(issue#I48H5L@Gitee)
* 【crypto 】 SymmetricCrypto增加setMode方法,update采用累加模式(pr#1642@Github)
* 【core 】 ZipReader支持Filter
* 【all 】 Sftp、Ftp、HttpDownloader增加download重载,支持避免传输文件损坏(pr#407@Gitee)
* 【crypto 】 AES修改构造的IvParameterSpec为AlgorithmParameterSpec(issue#1814@Gitee)
* 【crypto 】 增加FPE、ZUC(issue#1814@Gitee)
### 🐞Bug修复
* 【core 】 修复ListUtil.split方法越界问题(issue#I48Q0P@Gitee)
* 【core 】 修复QrCode的isTryHarder、isPureBarcode设置无效问题(issue#1815@Github)
* 【core 】 修复DatePattern.CHINESE_DATE_FORMATTER错误问题(issue#I48ZE3@Gitee)
* 【core 】 修复ListUtil.split错误问题
* 【core 】 修复NumberUtil.parseNumber长数字越界问题(issue#1818@Github)
-------------------------------------------------------------------------------------------------------------
# 5.7.11 (2021-08-31)
### 🐣新特性
* 【crypto 】 修改SymmetricCrypto初始化逻辑
* 【core 】 FileTypeUtil增加对wps编辑的docx的识别(issue#I47JGH@Gitee)
* 【core 】 Money修改构造,0表示读取所有分(issue#1796@Github)
* 【json 】 增加JSONXMLParser和JSONXMLSerializer
* 【json 】 XML支持自定义内容标签(issue#I47TV8@Gitee)
### 🐞Bug修复
* 【cron 】 **重要**修复Scheduler启动默认线程池为null的bug(issue#I47PZW@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.7.10 (2021-08-26)
### 🐣新特性
* 【core 】 增加NamingCase类
* 【core 】 ListUtil增加page方法重载(pr#1761@Github)
* 【crypto 】 增加ASN1Util
* 【core 】 CsvConfig改为泛型形式
* 【core 】 增加Partition
* 【http 】 SoapClient.sendForResponse改为public(issue#I466NN@Gitee)
* 【core 】 XmlUtil增加append重载(issue#I466Q0@Gitee)
* 【poi 】 增加EscapeStrCellSetter(issue#I466ZZ@Gitee)
* 【poi 】 ExcelBase增加renameSheet、cloneSheet(issue#I466ZZ@Gitee)
* 【core 】 ListUtil增加splitAvg方法(pr#397@Gitee)
* 【poi 】 Excel07SaxReader支持数字类型sheet名称、支持sheetName:名称前缀(issue#I46OMA@Gitee)
* 【extra 】 Mail增加build方法(issue#I46LGE@Gitee)
* 【core 】 XmlUtil增加beanToXml重载,支持忽略null
* 【core 】 添加NullComparator、FuncComparator(issue#I471X7@Gitee)
* 【core 】 LambdaUtil添加getFieldName(issue#I4750U@Gitee)
* 【cron 】 Scheduler增加setThreadExecutor(issue#I47A6N@Gitee)
* 【core 】 CharsetDetector增加detect重载,支持自定义缓存大小(issue#I478E5@Gitee)
* 【core 】 增加PartitionIter(pr#402@Gitee)
* 【all 】 增加异常爬栈开关(pr#403@Gitee)
* 【core 】 优化Combination中C(n,n)的逻辑(pr#1792@Github)
* 【core 】 Csv读写支持别名(issue#1791@Github)
### 🐞Bug修复
* 【core 】 修复MapUtil.sort比较器不一致返回原map的问题(issue#I46AQJ@Gitee)
* 【core 】 修复JSONSupport默认循环引用导致的问题(issue#1779@Github)
* 【poi 】 修复ExcelUtil.readBySax资源没有释放问题(issue#1789@Github)
-------------------------------------------------------------------------------------------------------------
# 5.7.9 (2021-08-16)
### 🐣新特性
* 【extra 】 FileUtil增加moveContent方法(issue#I45H30@Gitee)
* 【extra 】 JschPool.getSession获取时检查是否连接状态(issue#I45N5I@Gitee)
*
### 🐞Bug修复
* 【extra 】 修复TinyPinyinEngine空构造造成可能的误判问题
* 【http 】 修复在gzip模式下Content-Length服务端设置异常导致的问题(issue#1766@Github)
* 【db 】 修复PooledDataSource关闭逻辑错误问题
-------------------------------------------------------------------------------------------------------------
# 5.7.8 (2021-08-11)
### 🐣新特性
* 【core 】 MapProxy支持return this的setter方法(pr#392@Gitee)
* 【core 】 BeeDSFactory移除sqlite事务修复代码,新版本BeeCP已修复
* 【core 】 增加compress包,扩充Zip操作灵活性
* 【json 】 增加JSONBeanParser
* 【poi 】 增加CellSetter,可以自定义单元格值写出
* 【poi 】 CsvReader增加readFromStr(pr#1755@Github)
* 【socket 】 SocketUtil增加connection方法
* 【extra 】 JschUtil增加bindPort重载方法(issue#I44UTH@Github)
* 【core 】 DefaultTrustManager改为继承X509ExtendedTrustManager
* 【core 】 增加IoCopier
### 🐞Bug修复
* 【core 】 改进NumberChineseFormatter算法,补充完整单元测试,解决零问题
* 【core 】 修复Img变换操作图片格式问题(issue#I44JRB@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.7.7 (2021-08-02)
### 🐣新特性
* 【core 】 增加LookupFactory和MethodHandleUtil(issue#I42TVY@Gitee)
* 【core 】 改进RegexPool.TEL支持无-号码(pr#387@Gitee)
* 【core 】 PhoneUtil中新增获取固话号码中区号,以及固话号码中号码的方法(pr#387@Gitee)
* 【json 】 JSONGetter增加getLocalDateTime方法(pr#387@Gitee)
* 【core 】 增加JNDIUtil(issue#1727@Github)
* 【core 】 NetUtil增加getDnsInfo方法(issue#1727@Github)
* 【core 】 SpringUtil增加unregisterBean方法(pr#388@Gitee)
* 【core 】 优化TextSimilarity公共子串算法(issue#I42A6V@Gitee)
* 【core 】 优化DateUtil.parse对UTC附带时区字符串解析(issue#I437AP@Gitee)
### 🐞Bug修复
* 【jwt 】 修复JWTUtil中几个方法非static的问题(issue#1735@Github)
* 【core 】 修复SpringUtil无法处理autowired问题(pr#388@Gitee)
* 【core 】 修复AbsCollValueMap中常量拼写错误(pr#1736@Github)
* 【core 】 修复FileUtil.del在文件只读情况下无法删除的问题(pr#389@Gitee)
* 【core 】 修复FileUtil.move在不同分区下失败的问题(pr#390@Gitee)
* 【core 】 修复FileUtil.copy强制覆盖参数无效问题
* 【core 】 修复NumberChineseFormatter转换金额多零问题(issue#1739@Github)
-------------------------------------------------------------------------------------------------------------
# 5.7.6 (2021-07-28)
### 🐣新特性
* 【core 】 增加FieldsComparator(pr#374@Gitee)
* 【core 】 FileUtil.del采用Files.delete实现
* 【core 】 改进Base64.isBase64方法增加等号判断(issue#1710@Github)
* 【core 】 Sftp增加syncUpload方法(pr#375@Gitee)
* 【core 】 改进NetUtil.getLocalHost逻辑(issue#1717@Github)
* 【core 】 UseragentUtil增加QQ、alipay、taobao、uc等浏览器识别支持(issue#1719@Github)
* 【http 】 HttpRequest.form方法判断集合增强(pr#381@Gitee)
* 【core 】 NumberUtil增加calculate方法
* 【core 】 优化TextSimilarity.longestCommonSubstring性能(issue#I42A6V@Gitee)
* 【core 】 MultipartRequestInputStream改为使用long以支持大文件(issue#I428AN@Gitee)
* 【core 】 RobotUtil增加getDelay、getRobot方法(pr#1725@Github)
* 【json 】 JSON输出支持ignoreNull(issue#1728@Github)
* 【core 】 DateUtil和LocalDateTimeUtil增加isWeekend方法(issue#I42N5A@Gitee)
### 🐞Bug修复
* 【core 】 修复RobotUtil双击右键问题(pr#1721@Github)
* 【core 】 修复FileTypeUtil判断wps修改过的xlsx误判为jar的问题(pr#380@Gitee)
* 【core 】 修复Sftp.isDir异常bug(pr#378@Gitee)
* 【core 】 修复BeanUtil.copyProperties集合元素复制成功,读取失败的问题(issue#I41WKP@Gitee)
* 【core 】 修复NumberChineseFormatter.chineseToNumber十位数错误(issue#1726@github)
* 【poi 】 修复BeanSheetReader.read中字段对象为空导致的报错(issue#1729@Github)
* 【core 】 修复DateConverter转换java.sql.Date问题(issue#1729@Github)
* 【extra 】 修复CompressUtil中部分方法非static的问题(pr#385@Gitee)
* 【core 】 修复ByteUtil转换端序错误问题(pr#384@Gitee)
* 【core 】 修复UserAgentUtil判断浏览器顺序问题(issue#I42LYW@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.7.5 (2021-07-19)
### 🐣新特性
* 【core 】 DateUtil增加ceiling重载,可选是否归零毫秒
* 【core 】 IterUtil增加firstMatch方法
* 【core 】 增加NanoId
* 【core 】 MapBuilder增加put方法(pr#367@Gitee)
* 【core 】 StrUtil.insert支持负数index
* 【core 】 Calculator类支持取模运算(issue#I40DUW@Gitee)
* 【core 】 增加Base64.isBase64方法(issue#1710@Github)
* 【core 】 ManifestUtil新增方法getManifest(Class<?> cls)(pr#370@Gitee)
* 【extra 】 AbstractFtp增加isDir方法(issue#1716@Github)
* 【core 】 修改FileUtil异常信息内容(pr#1713@Github)
### 🐞Bug修复
* 【core 】 修复FileUtil.normalize处理上级路径的问题(issue#I3YPEH@Gitee)
* 【core 】 修复ClassScanner扫描空包遗漏问题
* 【core 】 修复FastDatePrinter歧义问题(pr#366@Gitee)
* 【core 】 修复DateUtil.format格式化Instant报错问题(issue#I40CY2@Gitee)
* 【core 】 修复StrUtil.toUnderlineCase大写问题(issue#I40CGS@Gitee)
* 【jwt 】 修复JWT.validate报错问题(issue#I40MR2@Gitee)
* 【core 】 修复StrUtil.brief越界问题
-------------------------------------------------------------------------------------------------------------
# 5.7.4 (2021-07-10)
### 🐣新特性
* 【crypto 】 SmUtil.sm4统一返回类型(issue#I3YKD4@Gitee)
* 【core 】 修改MapUtil.get传入null返回默认值而非null(issue#I3YKBC@Gitee)
* 【core 】 HexUtil增加hexToLong、hexToInt(issue#I3YQEV@Gitee)
* 【core 】 CsvWriter增加writer.write(csvData)的方法重载(pr#353@Gitee)
* 【core 】 新增AbsCollValueMap(issue#I3YXF0@Gitee)
* 【crypto 】 HOTP缓存改为8位,新增方法(pr#356@Gitee)
* 【setting】 Props增加toProperties方法(issue#1701@Github)
* 【http 】 UserAgent增加getOsVersion方法(issue#I3YZUQ@Gitee)
* 【jwt 】 JWT增加validate方法(issue#I3YDM4@Gitee)
* 【core 】 CscReader支持指定读取开始行号和结束行号(issue#I3ZMZL@Gitee)
### 🐞Bug修复
* 【core 】 修复RadixUtil.decode非static问题(issue#I3YPEH@Gitee)
* 【core 】 修复EqualsBuilder数组判断问题(pr#1694@Github)
* 【setting】 修复Props中Charset对象无法序列化的问题(pr#1694@Github)
* 【db 】 修复PageResult首页判断逻辑问题(issue#1699@Github)
* 【core 】 修复IdcardUtil可能数组越界问题(pr#1702@Github)
* 【core 】 修复FastByteArrayOutputStream索引越界问题(issue#I402ZP@Github)
-------------------------------------------------------------------------------------------------------------
# 5.7.3 (2021-06-29)
### 🐣新特性
* 【core 】 增加Convert.toSet方法(issue#I3XFG2@Gitee)
* 【core 】 CsvWriter增加writeBeans方法(pr#345@Gitee)
* 【core 】 新增JAXBUtil(pr#346@Gitee)
* 【poi 】 ExcelWriter新增setColumnStyleIfHasData和setRowStyleIfHasData(pr#347@Gitee)
* 【json 】 用户自定义日期时间格式时,解析也读取此格式
* 【core 】 增加可自定义日期格式GlobalCustomFormat
* 【jwt 】 JWT修改默认有序,并规定payload日期格式为秒数
* 【json 】 增加JSONWriter
* 【core 】 IdUtil增加getWorkerId和getDataCenterId(issueI3Y5NI@Gitee)
* 【core 】 JWTValidator增加leeway重载
* 【core 】 增加RegexPool(issue#I3W9ZF@Gitee)
### 🐞Bug修复
* 【json 】 修复XML转义字符的问题(issue#I3XH09@Gitee)
* 【core 】 修复FormatCache中循环引用异常(pr#1673@Github)
* 【core 】 修复IdcardUtil.getIdcardInfo.getProvinceCode获取为汉字的问题(issue#I3XP4Q@Gitee)
* 【core 】 修复CollUtil.subtract使用非标准Set等空指针问题(issue#I3XN1Z@Gitee)
* 【core 】 修复SqlFormatter部分SQL空指针问题(issue#I3XS44@Gitee)
* 【core 】 修复DateRange计算问题(issue#I3Y1US@Gitee)
* 【core 】 修复BeanCopier中setFieldNameEditor失效问题(pr#349@Gitee)
* 【core 】 修复ArrayUtil.indexOfSub查找bug(issue#1683@Github)
* 【core 】 修复Node的权重比较空指针问题(issue#1681@Github)
* 【core 】 修复UrlQuery传入无参数路径解析问题(issue#1688@Github)
-------------------------------------------------------------------------------------------------------------
# 5.7.2 (2021-06-20)
### 🐣新特性
* 【core 】 增加UserPassAuthenticator
* 【db 】 获取分组数据源时,移除公共属性项
* 【core 】 增加StrJoiner
* 【core 】 增加TreeBuilder
* 【core 】 IterUtil增加getFirstNonNull方法
* 【core 】 NumberUtil判空改为isBlank(issue#1664@Github)
* 【jwt 】 增加JWTValidator、RegisteredPayload
* 【db 】 增加Phoenix方言(issue#1656@Github)
### 🐞Bug修复
* 【db 】 修复Oracle下别名错误造成的SQL语法啊错误(issue#I3VTQW@Gitee)
* 【core 】 修复ConcurrencyTester重复使用时开始测试未清空之前任务的问题(issue#I3VSDO@Gitee)
* 【poi 】 修复使用BigWriter写出,ExcelWriter修改单元格值失败的问题(issue#I3VSDO@Gitee)
* 【jwt 】 修复Hmac算法下生成签名是hex的问题(issue#I3W6IP@Gitee)
* 【core 】 修复TreeUtil.build中deep失效问题(issue#1661@Github)
* 【json 】 修复XmlUtil.xmlToBean判断问题(issue#1663@Github)
-------------------------------------------------------------------------------------------------------------
# 5.7.1 (2021-06-16)
### 🐣新特性
* 【db 】 NamedSql支持in操作(issue#1652@Github)
* 【all 】 JWT模块加入到all和bom包中(issue#1654@Github)
* 【core 】 CollUtil删除所有Map相关操作
* 【all 】 **重要!** 删除过期方法
* 【core 】 增加IterChian类
### 🐞Bug修复
-------------------------------------------------------------------------------------------------------------
# 5.7.0 (2021-06-15)
### 🐣新特性
* 【jwt 】 添加JWT模块,实现了JWT的创建、解析和验证
* 【crypto 】 SymmetricCrypto增加update方法(pr#1642@Github)
* 【crypto 】 MacEngine增加接口update,doFinal,reset等接口
* 【core 】 StrSpliter更名为StrSplitter
* 【core 】 NumberUtil的decimalFormat增加数字检查
* 【http 】 HttpBase的httpVersion方法设置为无效(issue#1644@Github)
* 【extra 】 Sftp增加download重载(issue#I3VBSL@Gitee)
* 【cache 】 修改FIFOCache初始大小(issue#1647@Github)
### 🐞Bug修复
* 【db 】 修复count方法丢失参数问题(issue#I3VBSL@Gitee)
* 【db 】 修复SpringUtil工具在`@PostConstruct` 注解标注的方法下失效问题(pr#341@Gitee)
* 【json 】 修复JSONUtil.parse方法未判断有序问题(issue#I3VHVY@Gitee)
* 【json 】 修复JSONArray.put越界无法加入问题(issue#I3VMLU@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.6.7 (2021-06-08)
### 🐣新特性
* 【core 】 CharSequenceUtil增加join重载(issue#I3TFJ5@Gitee)
* 【http 】 HttpRequest增加form方法重载(pr#337@Gitee)
* 【http 】 ImgUtil增加getMainColor方法(pr#338@Gitee)
* 【core 】 改进TreeUtil.buid算法性能(pr#1594@Github)
* 【core 】 CsvConfig的setXXX返回this(issue#I3UIQF@Gitee)
* 【all 】 增加jmh基准测试
* 【core 】 增加StreamUtil和CollectorUtil
* 【poi 】 增加content-type(pr#1639@Github)
### 🐞Bug修复
* 【core 】 修复FileUtil.normalize去掉末尾空格问题(issue#1603@Github)
* 【core 】 修复CharsetDetector流关闭问题(issue#1603@Github)
* 【core 】 修复RuntimeUtil.exec引号内空格被切分的问题(issue#I3UAYB@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.6.6 (2021-05-26)
### 🐣新特性
* 【cron 】 增加时间轮简单实现
* 【core 】 BeanUtil.copyToList增加重载(pr#321@Gitee)
* 【core 】 SyncFinisher增加stop方法(issue#1578@Github)
* 【cache 】 CacheObj默认方法改为protected(issue#I3RIEI@Gitee)
* 【core 】 FileUtil.isEmpty不存在时返回true(issue#1582@Github)
* 【core 】 PhoneUtil增加中国澳门和中国台湾手机号校检方法(pr#331@Gitee)
* 【db 】 分页查询,自定义sql查询,添加参数(pr#332@Gitee)
* 【core 】 IdCardUtil.isValidCard增加非空判断
* 【json 】 JSONObject构造增加SortedMap判断(pr#333@Gitee)
* 【core 】 Tuple增加部分方法(pr#333@Gitee)
* 【log 】 增加LogTube支持
* 【core 】 增加BitStatusUtil(pr#1600@Github)
### 🐞Bug修复
* 【core 】 修复XmlUtil中omitXmlDeclaration参数无效问题(issue#1581@Github)
* 【core 】 修复NumberUtil.decimalFormat参数传错的问题(issue#I3SDS3@Gitee)
* 【json 】 修复JSONArray.put方法不能覆盖值的问题
* 【poi 】 修复sax方式读取xls无法根据sheet名称获取数据(issue#I3S4NH@Gitee)
* 【core 】 修复路径中多个~都被替换的问题(pr#1599@Github)
* 【core 】 修复CRC16构造非public问题(issue#1601@Github)
-------------------------------------------------------------------------------------------------------------
# 5.6.5 (2021-05-08)
### 🐣新特性
* 【http 】 HttpUtil增加closeCookie方法
* 【core 】 NumberUtil增加方法decimalFormat重载(issue#I3OSA2@Gitee)
* 【extra 】 Ftp的remoteVerificationEnabled改为false(issue#I3OSA2@Gitee)
* 【core 】 MaskBit增加掩码反向转换的方法getMaskBit()(pr#1563@Github)
* 【core 】 ReUtil等增加indexOf、delLast等方法(pr#1555@Github)
* 【poi 】 ExcelWriter增加writeSecHeadRow,增加合并单元格边框颜色样式(pr#318@Gitee)
### 🐞Bug修复
* 【core 】 修复createScheduledExecutor单位不是毫秒的问题(issue#I3OYIW@Gitee)
* 【core 】 修复Tailer无stop问题(issue#I3PQLQ@Gitee)
* 【core 】 修复空白excel读取报错问题(issue#1552@Github)
* 【extra 】 修复Sftp.mkDirs报错问题(issue#1536@Github)
* 【core 】 修复Bcrypt不支持$2y$盐前缀问题(pr#1560@Github)
* 【system 】 修复isWindows8拼写问题(pr#1557@Github)
* 【db 】 修复MongoDS默认分组参数失效问题(issue#1548@Github)
* 【core 】 修复UrlPath编码的字符问题导致的URL编码异常(issue#1537@Github)
-------------------------------------------------------------------------------------------------------------
# 5.6.4 (2021-04-25)
### 🐣新特性
* 【core 】 DatePattern补充DateTimeFormatter(pr#308@Gitee)
* 【core 】 DateUtil.compare增加支持给定格式比较(pr#310@Gitee)
* 【core 】 BeanUtil增加edit方法(issue#I3J6BG@Gitee)
* 【db 】 Column中加入columnDef字段默认值(issue#I3J6BG@Gitee)
* 【core 】 BeanUtil增加copyToList方法(issue#1526@Github)
* 【extra 】 MailAccount增加customProperty可以用户自定义属性(pr#317@Gitee)
* 【system 】 SystemUtil.getUserInfo()中所有平台路径统一末尾加/(issue#I3NM39@Gitee)
* 【http 】 新增HttpDownloader,默认开启自动跳转(issue#I3NM39@Gitee)
### 🐞Bug修复
* 【db 】 修复SQL分页时未使用别名导致的错误,同时count时取消order by子句(issue#I3IJ8X@Gitee)
* 【extra 】 修复Sftp.reconnectIfTimeout方法判断错误(issue#1524@Github)
* 【core 】 修复NumberChineseFormatter转数字问题(issue#I3IS3S@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.6.3 (2021-04-10)
### 🐣新特性
* 【core 】 修改数字转换的实现,增加按照指定端序转换(pr#1492@Github)
* 【core 】 修改拆分byte数组时最后一组长度的规则(pr#1494@Github)
* 【core 】 新增根据日期获取节气(pr#1496@Github)
* 【core 】 mapToBean()添加对布尔值is前缀的识别(pr#294@Gitee)
* 【core 】 农历十月十一月改为寒月和冬月(pr#301@Gitee)
* 【core 】 增加港澳台电话正则(pr#301@Gitee)
* 【core 】 增加银行卡号脱敏(pr#301@Gitee)
* 【cache 】 使用LongAddr代替AtomicLong(pr#301@Gitee)
* 【cache 】 EnumUtil使用LinkedHashMap(pr#304@Gitee)
* 【crypto 】 SymmetricCrypto支持大量数据加密解密(pr#1497@Gitee)
* 【http 】 SoapClient增加针对不同协议的头信息(pr#305@Gitee)
* 【http 】 HttpRequest支持307、308状态码识别(issue#1504@Github)
* 【core 】 CharUtil.isBlankChar增加\u0000判断(pr#1505@Github)
* 【extra 】 添加Houbb Pinyin支持(pr#1506@Github)
* 【core 】 添加LambdaUtil(pr#295@Gitee)
* 【core 】 添加StrPool和CharPool
* 【extra 】 CglibUtil增加toBean和fillBean方法
* 【db 】 增加DriverNamePool
### 🐞Bug修复
* 【core 】 修复Validator.isUrl()传空返回true(issue#I3ETTY@Gitee)
* 【db 】 修复数据库driver根据url的判断识别错误问题(issue#I3EWBI@Gitee)
* 【json 】 修复JSONStrFormatter换行多余空行问题(issue#I3FA8B@Gitee)
* 【core 】 修复UrlPath中的+被转义为空格%20的问题(issue#1501@Github)
* 【core 】 修复DateUtil.parse方法对UTC时间毫秒少于3位不识别问题(issue#1503@Github)
-------------------------------------------------------------------------------------------------------------
# 5.6.2 (2021-03-28)
### 🐣新特性
* 【core 】 Validator增加车架号(车辆识别码)验证、驾驶证(驾驶证档案编号)的正则校验(pr#280@Gitee)
* 【core 】 CopyOptions增加propertiesFilter(pr#281@Gitee)
* 【extra 】 增加Wit模板引擎支持
* 【core 】 增加DesensitizedUtil(pr#282@Gitee)
* 【core 】 增加DateTime字符串构造(issue#I3CQZG@Gitee)
* 【core 】 修改ArrayUtil代码风格(pr#287@Gitee)
* 【json 】 JSONConfig增加setStripTrailingZeros配置(issue#I3DJI8@Gitee)
* 【db 】 升级兼容BeeCP3.x
### 🐞Bug修复
* 【core 】 修复FileTypeUtil中OFD格式判断问题(pr#1489@Github)
* 【core 】 修复CamelCaseLinkedMap和CaseInsensitiveLinkedMap的Linked失效问题(pr#1490@Github)
* 【core 】 修复UrlPath中=被转义的问题
-------------------------------------------------------------------------------------------------------------
# 5.6.1 (2021-03-18)
### 🐣新特性
* 【crypto 】 SecureUtil去除final修饰符(issue#1474@Github)
* 【core 】 IoUtil增加lineIter方法
* 【core 】 新增函数式懒加载加载器(pr#275@Gitee)
* 【http 】 UserAgentUtil增加miniProgram判断(issue#1475@Github)
* 【db 】 增加Ignite数据库驱动识别
* 【core 】 DateUtil.parse支持带毫秒的UTC时间
* 【core 】 IdcardUtil.Idcard增加toString(pr#1487@Github)
* 【core 】 ChineseDate增加getGregorianXXX方法(issue#1481@Github)
### 🐞Bug修复
* 【core 】 修复IoUtil.readBytes的FileInputStream中isClose参数失效问题(issue#I3B7UD@Gitee)
* 【core 】 修复DataUnit中KB不大写的问题
* 【json 】 修复JSONUtil.getByPath类型错误问题(issue#I3BSDF@Gitee)
* 【core 】 修复BeanUtil.toBean提供null未返回null的问题(issue#I3BQPV@Gitee)
* 【core 】 修复ModifierUtil#modifiersToInt中逻辑判断问题(issue#1486@Github)
-------------------------------------------------------------------------------------------------------------
# 5.6.0 (2021-03-12)
### 🐣新特性
* 【poi 】 重要:不再兼容POI-3.x,增加兼容POI-5.x(issue#I35J6B@Gitee)
* 【core 】 FileTypeUtil使用长匹配优先(pr#1457@Github)
* 【core 】 IterUtil和CollUtil增加isEqualList方法(issue#I3A3PY@Gitee)
* 【crypto 】 增加PBKDF2(issue#1416@Github)
* 【core 】 增加FuncKeyMap(issue#1402@Github)
* 【core 】 增加StrMatcher(issue#1379@Github)
* 【core 】 NumberUtil增加factorial针对BigInterger方法(issue#1379@Github)
* 【core 】 TreeNode增加equals方法(issue#1467@Github)
* 【core 】 增加汉字转阿拉伯数字Convert.chineseToNumber(pr#1469@Github)
* 【json 】 JSONUtil增加getByPath方法支持默认值(issue#1470@Github)
* 【crypto 】 SecureUtil增加hmacSha256方法(pr#1473@Github)
* 【core 】 FileTypeUtil判断流增加文件名辅助判断(pr#1471@Github)
### 🐞Bug修复
* 【socket 】 修复Client创建失败资源未释放问题。
* 【core 】 修复DataSizeUtil中EB单位错误问题(issue#I39O7I@Gitee)
* 【core 】 修复BeanDesc.isMatchSetter的ignoreCase未使用问题(issue#I3AXIJ@Gitee)
* 【core 】 修复CRC16Checksum中(issue#I3AXIJ@Gitee)
* 【core 】 修复UrlQuery中对空key解析丢失问题(issue#I3B3J6@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.5.9 (2021-02-26)
### 🐣新特性
* 【crypto 】 PemUtil.readPemKey支持EC(pr#1366@Github)
* 【extra 】 Ftp等cd方法增加同步(issue#1397@Github)
* 【core 】 StrUtil增加endWithAnyIgnoreCase(issue#I37I0B@Gitee)
* 【crypto 】 Sm2增加getD和getQ方法(issue#I37Z4C@Gitee)
* 【cache 】 AbstractCache增加keySet方法(issue#I37Z4C@Gitee)
* 【core 】 NumberWordFormatter增加formatSimple方法(pr#1436@Github)
* 【crypto 】 增加读取openSSL生成的sm2私钥
* 【crypto 】 增加众多方法,SM2兼容各类密钥格式(issue#I37Z75@Gitee)
### 🐞Bug修复
* 【json 】 JSONUtil.isJson方法改变trim策略,解决特殊空白符导致判断失败问题
* 【json 】 修复SQLEXception导致的栈溢出(issue#1399@Github)
* 【extra 】 修复Ftp中异常参数没有传入问题(issue#1397@Github)
* 【crypto 】 修复Sm2使用D构造空指针问题(issue#I37Z4C@Gitee)
* 【poi 】 修复ExcelPicUtil中图表报错问题(issue#I38857@Gitee)
* 【core 】 修复ListUtil.page方法返回空列表无法编辑问题(issue#1415@Github)
* 【core 】 修复ListUtil.sub中step不通结果不一致问题(issue#1409@Github)
* 【db 】 修复Condition转换参数值时未转换数字异常(issue#I38LTM@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.5.8 (2021-01-30)
### 🐣新特性
* 【extra 】 增加自动装配SpringUtil类(pr#1366@Github)
* 【extra 】 ArrayUtil增加map方法重载
* 【crypto 】 AsymmetricAlgorithm增加RSA_ECB("RSA/ECB/NoPadding")(issue#1368@Github)
* 【core 】 补充StrUtil.padXXX注释(issue#I2E1S7@Gitee)
* 【core 】 修改上传文件检查逻辑
* 【core 】 修正LocalDateTimeUtil.offset方法注释问题(issue#I2EEXC@Gitee)
* 【extra 】 VelocityEngine的getRowEngine改为getRawEngine(issue#I2EGRG@Gitee)
* 【cache 】 缓存降低锁的粒度,提高并发能力(pr#1385@Github)
* 【core 】 SimpleCache缓存降低锁的粒度,提高并发能力(pr#1385@Github)
* 【core 】 增加RadixUtil(pr#260@Gitee)
* 【core 】 BeanUtil.getFieldValue支持获取字段集合(pr#254@Gitee)
* 【core 】 DateConvert转换失败默认抛出异常(issue#I2M5GN@Gitee)
* 【http 】 HttpServerRequest增加getParam方法
* 【http 】 RootAction增加可选name参数,返回指定文件名称
* 【db 】 支持人大金仓8的驱动识别
* 【db 】 ThreadUtil增加createScheduledExecutor和schedule方法(issue#I2NUTC@Gitee)
* 【core 】 ImgUtil增加getImage方法(issue#I2DU1Z@Gitee)
* 【core 】 DateUtil.beginOfHour(pr#269@Gitee)
* 【core 】 MapUtil增加sortByValue(pr#259@Gitee)
* 【core 】 TypeUtil修正hasTypeVeriable为hasTypeVariable
* 【core 】 RandomUtil.getRandom改为new SecureRandom,避免阻塞
### 🐞Bug修复
* 【core 】 修复FileUtil.move以及PathUtil.copy等无法自动创建父目录的问题(issue#I2CKTI@Gitee)
* 【core 】 修复Console.input读取不全问题(pr#263@Gitee)
* 【core 】 修复URLUtil.encodeAll未检查空指针问题(issue#I2CNPS@Gitee)
* 【core 】 修复UrlBuilder.of的query中含有?丢失问题(issue#I2CNPS@Gitee)
* 【crypto 】 修复BCrypt.checkpw报错问题(issue#1377@Github)
* 【extra 】 修复Fftp中cd失败导致的问题(issue#1371@Github)
* 【poi 】 修复ExcelWriter.merge注释问题(issue#I2DNPG@Gitee)
* 【core 】 修复CsvReader读取注释行错误问题(issue#I2D87I@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.5.7 (2021-01-07)
### 🐣新特性
* 【core 】 DynaBean.create增加重载方法(pr#245@Gitee)
* 【core 】 IdcardUtil增加重载是否忽略大小写(issue#1348@Github)
* 【poi 】 SheetRidReader增加getRidByIndex方法(issue#1342@Github)
* 【extra 】 MailAccount增加sslProtocols配置项(issue#IZN95@Gitee)
* 【extra 】 MailUtil增加getSession方法
* 【setting】 新增setByGroup和putByGroup,set和put标记为过期(issue#I2C42H@Gitee)
* 【crypto 】 修改SymmetricAlgorithm注释(issue#1360@Github)
* 【all 】 pom中将META-INF/maven下全部exclude(pr#1355@Github)
* 【http 】 SimpleServer中增加addFilter等方法,并使用全局线程池
* 【core 】 CollUtil.forEach 增加null 判断(pr#250@Gitee)
* 【extra 】 FtpConfig增加serverLanguageCode和systemKey配置,Ftp.download增加重载(pr#248@Gitee)
### 🐞Bug修复
* 【core 】 修复CsvReader读取双引号未转义问题(issue#I2BMP1@Gitee)
* 【json 】 JSONUtil.parse修复config无效问题(issue#1363@Github)
* 【http 】 修复SimpleServer返回响应内容Content-Length不正确的问题(issue#1358@Github)
* 【http 】 修复Https请求部分环境下报证书验证异常问题(issue#I2C1BZ@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.5.6 (2020-12-29)
### 🐣新特性
* 【core 】 手机号工具类 座机正则表达式统一管理(pr#243@Gitee)
* 【extra 】 Mail增加setDebugOutput方法(issue#1335@Gitee)
### 🐞Bug修复
* 【core 】 修复ZipUtil.unzip从流解压关闭问题(issue#I2B0S1@Gitee)
* 【poi 】 修复Excel07Writer写出表格错乱问题(issue#I2B57B@Gitee)
* 【poi 】 修复SheetRidReader读取字段错误问题(issue#1342@Github)
* 【core 】 修复FileUtil.getMimeType不支持css和js(issue#1341@Github)
-------------------------------------------------------------------------------------------------------------
# 5.5.5 (2020-12-27)
### 🐣新特性
* 【core 】 URLUtil.normalize新增重载(pr#233@Gitee)
* 【core 】 PathUtil增加isSub和toAbsNormal方法
* 【db 】 RedisDS实现序列化接口(pr#1323@Github)
* 【poi 】 StyleUtil增加getFormat方法(pr#235@Gitee)
* 【poi 】 增加ExcelDateUtil更多日期格式支持(issue#1316@Github)
* 【core 】 NumberUtil.toBigDecimal支持各类数字格式,如1,234.56等(issue#1334@Github)
* 【core 】 NumberUtil增加parseXXX方法(issue#1334@Github)
* 【poi 】 Excel07SaxReader支持通过sheetName读取(issue#I2AOSE@Gitee)
### 🐞Bug修复
* 【core 】 FileUtil.isSub相对路径判断问题(pr#1315@Github)
* 【core 】 TreeUtil增加空判定(issue#I2ACCW@Gitee)
* 【db 】 解决Hive获取表名失败问题(issue#I2AGLU@Gitee)
* 【core 】 修复DateUtil.parse未使用严格模式导致结果不正常的问题(issue#1332@Github)
* 【core 】 修复RuntimeUtil.getUsableMemory非static问题(issue#I2AQ2M@Gitee)
* 【core 】 修复ArrayUtil.equals方法严格判断问题(issue#I2AO8B@Gitee)
* 【poi 】 修复SheetRidReader在获取rid时读取错误问题(issue#I2AOQW@Gitee)
* 【core 】 修复强依赖了POI的问题(issue#1336@Github)
-------------------------------------------------------------------------------------------------------------
# 5.5.4 (2020-12-16)
### 🐣新特性
### 🐞Bug修复
* 【core 】 修复IoUtil.readBytes的问题
-------------------------------------------------------------------------------------------------------------
# 5.5.3 (2020-12-11)
### 🐣新特性
* 【core 】 IdcardUtil增加行政区划83(issue#1277@Github)
* 【core 】 multipart中int改为long,解决大文件上传越界问题(issue#I27WZ3@Gitee)
* 【core 】 ListUtil.page增加检查(pr#224@Gitee)
* 【db 】 Db增加使用sql的page方法(issue#247@Gitee)
* 【cache 】 CacheObj的isExpired()逻辑修改(issue#1295@Github)
* 【json 】 JSONStrFormater改为JSONStrFormatter
* 【dfa 】 增加FoundWord(pr#1290@Github)
* 【core 】 增加Segment(pr#1290@Github)
* 【core 】 增加CharSequenceUtil
* 【poi 】 Excel07SaxReader拆分出SheetDataSaxHandler
* 【core 】 CollUtil.addAll增加判空(pr#228@Gitee)
* 【core 】 修正DateUtil.betweenXXX注释错误(issue#I28XGW@Gitee)
* 【core 】 增加NioUtil
* 【core 】 增加GanymedUtil
* 【poi 】 增加OFD支持,OfdWriter
* 【poi 】 修复NumberUtil属性拼写错误(pr#1311@Github)
* 【core 】 MapUtil增加getQuietly方法(issue#I29IWO@Gitee)
### 🐞Bug修复
* 【cache 】 修复Cache中get重复misCount计数问题(issue#1281@Github)
* 【poi 】 修复sax读取自定义格式单元格无法识别日期类型的问题(issue#1283@Github)
* 【core 】 修复CollUtil.get越界问题(issue#1292@Github)
* 【core 】 修复TemporalAccessorUtil无法格式化LocalDate带时间问题(issue#1289@Github)
* 【json 】 修复自定义日期格式的LocalDateTime没有包装引号问题(issue#1289@Github)
* 【cache 】 get中unlock改为unlockRead(issue#1294@Github)
* 【db 】 修复表名包含点导致的问题(issue#1300@Github)
* 【poi 】 修复xdr:row标签导致的问题(issue#1297@Github)
* 【core 】 修复FileUtil.loopFiles使用FileFilter无效问题(issue#I28V48@Gitee)
* 【extra 】 修复JschUtil.execByShell返回空的问题(issue#1067@Github)
* 【poi 】 修复特殊的excel使用sax读取时未读到值的问题(issue#1303@Github)
* 【http 】 修复HttpUtil类条件判断错误(pr#232@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.5.2 (2020-12-01)
### 🐣新特性
* 【crypto 】 KeyUtil增加重载,AES构造增加重载(issue#I25NNZ@Gitee)
* 【json 】 JSONUtil增加toList重载(issue#1228@Github)
* 【core 】 新增CollStreamUtil(issue#1228@Github)
* 【extra 】 新增Rhino表达式执行引擎(pr#1229@Github)
* 【crypto 】 增加判空(issue#1230@Github)
* 【core 】 xml.setXmlStandalone(true)格式优化(pr#1234@Github)
* 【core 】 AnnotationUtil增加setValue方法(pr#1250@Github)
* 【core 】 ZipUtil增加get方法(issue#I27CUF@Gitee)
* 【cache 】 对CacheObj等变量使用volatile关键字
* 【core 】 Base64增加encodeWithoutPadding方法(issue#I26J16@Gitee)
* 【core 】 ExceptionUtil增加message消息包装为运行时异常的方法(pr#1253@Gitee)
* 【core 】 DatePattern增加年月格式化常量(pr#220@Gitee)
* 【core 】 ArrayUtil增加shuffle方法(pr#1255@Github)
* 【core 】 ArrayUtil部分方法分离至PrimitiveArrayUtil
* 【crypto 】 opt改为otp包(issue#1257@Github)
* 【cache 】 增加CacheListener(issue#1257@Github)
* 【core 】 TimeInterval支持分组(issue#1238@Github)
* 【core 】 增加compile包(pr#1243@Github)
* 【core 】 增加ResourceClassLoader、CharSequenceResource、FileObjectResource
* 【core 】 修改IoUtil.read(Reader)逻辑默认关闭Reader
* 【core 】 ZipUtil增加Zip方法(pr#222@Gitee)
* 【all 】 增加Hutool.getAllUtils和printAllUtils方法
* 【core 】 增加PunyCode(issue#1268@Gitee)
* 【core 】 ArrayUtil增加isSorted方法(pr#1271@Github)
* 【captcha】 增加GifCaptcha(pr#1273@Github)
* 【core 】 增加SSLUtil、SSLContextBuilder
### 🐞Bug修复
* 【cron 】 修复CronTimer可能死循环的问题(issue#1224@Github)
* 【core 】 修复Calculator.conversion单个数字越界问题(issue#1222@Github)
* 【poi 】 修复ExcelUtil.getSaxReader使用非MarkSupport流报错问题(issue#1225@Github)
* 【core 】 修复HexUtil.format问题(issue#I268XT@Gitee)
* 【core 】 修复ZipUtil判断压缩文件是否位于压缩目录内的逻辑有误的问题(issue#1251@Github)
* 【json 】 修复JSONObject.accumulate问题
* 【poi 】 修复部分xlsx文件sax方式解析空指针问题(issue#1265@Github)
* 【core 】 修复PatternPool中邮编的正则(issue#1274@Github)
-------------------------------------------------------------------------------------------------------------
# 5.5.1 (2020-11-16)
### 🐣新特性
* 【core 】 增加CopyVisitor和DelVisitor
### 🐞Bug修复
* 【core 】 修复在Linux下FileUtil.move失败问题(issue#I254Y3@Gitee)
* 【http 】 修复UrlUtil和UrlBuilder中多个/被替换问题(issue#I25MZL@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.5.0 (2020-11-14)
### 大版本特性
* 【extra 】 增加jakarta.validation-api封装:ValidationUtil(pr#207@Gitee)
* 【extra 】 增加表达式引擎封装:ExpressionUtil(pr#1203@Github)
* 【extra 】 新增基于Apache-FtpServer封装:SimpleFtpServer
* 【extra 】 新增基于Commons-Compress封装:CompressUtil
### 🐣新特性
* 【core 】 NumberUtil.parseInt等支持123,2.00这类数字(issue#I23ORQ@Gitee)
* 【core 】 增加ArrayUtil.isSub、indexOfSub、lastIndexOfSub方法(issue#I23O1K@Gitee)
* 【core 】 反射调用支持传递参数的值为null(pr#1205@Github)
* 【core 】 HexUtil增加format方法(issue#I245NF@Gitee)
* 【poi 】 ExcelWriter增加setCurrentRowToEnd方法(issue#I24A2R@Gitee)
* 【core 】 ExcelWriter增加setCurrentRowToEnd方法(issue#I24A2R@Gitee)
* 【core 】 增加enum转数字支持(issue#I24QZY@Gitee)
* 【core 】 NumberUtil.toBigDecimal空白符转换为0(issue#I24MRP@Gitee)
* 【core 】 CollUtil和IterUtil增加size方法(pr#208@Gitee)
* 【poi 】 ExcelReader的read方法读取空单元格增加CellEditor处理(issue#1213@Github)
### 🐞Bug修复
* 【core 】 修复DateUtil.current使用System.nanoTime的问题(issue#1198@Github)
* 【core 】 修复Excel03SaxReader判断日期出错问题(issue#I23M9H@Gitee)
* 【core 】 修复ClassUtil.getTypeArgument方法在判断泛型时导致的问题(issue#1207@Github)
* 【core 】 修复Ipv4Util分隔符问题(issue#I24A9I@Gitee)
* 【core 】 修复Ipv4Util.longToIp的问题
* 【poi 】 修复Excel07SaxReader读取公式的错误的问题(issue#I23VFL@Gitee)
* 【http 】 修复HttpUtil.isHttp判断问题(pr#1208@Github)
* 【http 】 修复Snowflake时间回拨导致ID重复的bug(issue#1206@Github)
* 【core 】 修复StrUtil.lastIndexOf查找位于首位的字符串找不到的bug(issue#I24RSV@Gitee)
* 【poi 】 修复BigExcelWriter的autoSizeColumnAll问题(pr#1221@Github)
* 【core 】 修复StrUtil.subBetweenAll不支持相同字符的问题(pr#1217@Github)
-------------------------------------------------------------------------------------------------------------
# 5.4.7 (2020-10-31)
### 🐣新特性
* 【core 】 增加OptionalBean(pr#1182@Github)
* 【core 】 Ganzhi增加方法(issue#1186@Github)
* 【core 】 CollUtil增加forEach重载(issue#I22NA4@Gitee)
* 【core 】 CollUtil.map忽略空值改规则为原数组中的元素和处理后的元素都会忽略空值(issue#I22N08@Gitee)
* 【http 】 增加SoapClient增加addSOAPHeader重载
* 【http 】 ArrayUtil增加containsAll方法
* 【core 】 增加CharsetDetector
* 【cron 】 增加CronTask,监听支持获取id(issue#I23315@Gitee)
### 🐞Bug修复
* 【core 】 修复BeanUtil.beanToMap方法中editor返回null没有去掉的问题
* 【core 】 修复ImgUtil.toBufferedImage颜色模式的问题(issue#1194@Github)
* 【cron 】 修复TimeZone设置无效的问题(issue#I23315@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.4.6 (2020-10-23)
### 🐣新特性
* 【http 】 HttpRequest增加basicProxyAuth方法(issue#I1YQGM@Gitee)
* 【core 】 NumberUtil.toStr修改逻辑,去掉BigDecimal的科学计数表示(pr#196@Gitee)
* 【core 】 ListUtil.page第一页页码使用PageUtil(pr#198@Gitee)
* 【http 】 增加微信、企业微信ua识别(pr#1179@Github)
* 【core 】 ObjectUtil增加defaultIfXXX(pr#199@Gitee)
* 【json 】 JSONObject构建时不支持的对象类型抛出异常
### 🐞Bug修复
* 【core 】 修复ChineseDate没有忽略时分秒导致计算错误问题(issue#I1YW12@Gitee)
* 【core 】 修复FileUtil中,copyFile方法断言判断参数传递错误(issue#I1Z2NY@Gitee)
* 【core 】 修复BeanDesc读取父类属性覆盖子类属性导致的问题(pr#1175@Github)
* 【aop 】 修复SimpleAspect一个重载导致的问题,去掉重载的after方法(issue#I1YUG9@Gitee)
* 【poi 】 修复03 sax读取日期问题(issue#I1Z83N@Gitee)
* 【core 】 修复FileUtil.size软链导致的问题(pr#200@Gitee)
* 【core 】 修复JSONObject构造时传入JSONArray结果出错问题(issue#I22FDS@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.4.5 (2020-10-18)
### 🐣新特性
* 【core 】 ConsoleTable代码优化(pr#190@Gitee)
* 【http 】 HttpRequest增加setProxy重载(pr#190@Gitee)
* 【core 】 XmlUtil.cleanComment(pr#191@Gitee)
* 【core 】 ArrayUtil.unWrap增加默认值(pr#1149@Github)
* 【core 】 ArrayUtil.indexOf修改double的equals判断(pr#1147@Github)
* 【core 】 优化StrUtil中部分参数校验以及逻辑处理(pr#1144@Github)
* 【core 】 简化CreditCode逻辑去除无用Character.toUpperCase(pr#1145@Github)
* 【core 】 NumberUtil增加generateRandomNumber重载,可自定义seed(issue#I1XTUT@Gitee)
* 【core 】 DataSizeUtil支持小数(pr#1158@Github)
* 【core 】 完善注释(pr#193@Gitee)
* 【core 】 优化Combination.countAll(pr#1159@Github)
* 【core 】 优化针对list的split方法(pr#194@Gitee)
* 【poi 】 ExcelWriter增加setRowStyle方法
* 【core 】 Assert增加函数接口(pr#1166@Github)
* 【core 】 新增AtomicIntegerArray、AtomicLongArray转换
* 【extra 】 PinyinUtil新增Bopomofo4j支持
* 【core 】 新增TemporalUtil工具类,新增时间相关方法
### 🐞Bug修复
* 【core 】 解决农历判断节日未判断大小月导致的问题(issue#I1XHSF@Gitee)
* 【core 】 解决ListUtil计算总量可能的int溢出问题(pr#1150@Github)
* 【json 】 解决JSON中转换为double小数精度丢失问题(pr#192@Gitee)
* 【core 】 修复CaseInsensitiveMap的remove等方法并没有忽略大小写的问题(pr#1163@Gitee)
* 【poi 】 修复合并单元格值读取错误的问题
* 【poi 】 修复NamedSql解析形如col::numeric出错问题(issue#I1YHBX@Gitee)
* 【core 】 修复计算相差天数导致的问题
-------------------------------------------------------------------------------------------------------------
# 5.4.4 (2020-09-28)
### 🐣新特性
* 【core 】 ServiceLoaderUtil改为使用contextClassLoader(pr#183@Gitee)
* 【core 】 NetUtil增加getLocalHostName(pr#1103@Github)
* 【extra 】 FTP增加stat方法(issue#I1W346@Gitee)
* 【core 】 Convert.toNumber支持类似12.2F这种形式字符串转换(issue#I1VYLJ@Gitee)
* 【core 】 使用静态变量替换999等(issue#I1W8IB@Gitee)
* 【core 】 URLUtil自动trim(issue#I1W803@Gitee)
* 【crypto 】 RC4增加ecrypt(pr#1108@Github)
* 【core 】 CharUtil and StrUtil增加@(pr#1106@Github)
* 【extra 】 优化EMOJ查询逻辑(pr#1112@Github)
* 【extra 】 优化CollUtil交并集结果集合设置初始化大小,避免扩容成本(pr#1110@Github)
* 【core 】 优化PageUtil彩虹算法(issue#1110@Github)
* 【core 】 IoUtil增加readUtf8方法
* 【core 】 优化全局邮箱账户初始化逻辑(pr#1114@Github)
* 【http 】 SoapClient增加addSOAPHeader方法
* 【http 】 完善StrUtil的注释(pr#186@Gitee)
* 【aop 】 去除调试日志(issue#1116@Github)
* 【core 】 增加&apos;反转义(pr#1121@Github)
* 【poi 】 增加SheetReader和XXXRowHandler(issue#I1WHJP@Gitee)
* 【dfa 】 增加过滤符号(pr#1122@Github)
* 【dfa 】 SensitiveUtil增加setCharFilter方法(pr#1123@Github)
* 【all 】 优化常量大小写规范(pr#188@Gitee)
* 【core 】 优化NumberUtil中针对BigDecimal的一些处理逻辑(pr#1127@Github)
* 【core 】 NumberUtil.factorial注释明确(pr#1126@Github)
* 【core 】 NumberUtil增加isPowerOfTwo方法(pr#1132@Github)
* 【core 】 优化BooleanUtil的校验逻辑(pr#1137@Github)
* 【poi 】 改进sax方式读取逻辑,支持sheetId(issue#1141@Github)
* 【core 】 XmlUtil增加readBySax方法
### 🐞Bug修复
* 【crypto 】 修复SM2验签后无法解密问题(issue#I1W0VP@Gitee)
* 【core 】 修复新建默认TreeSet没有默认比较器导致的问题(issue#1101@Github)
* 【core 】 修复Linux下使用Windows路径分隔符导致的解压错误(issue#I1MW0E@Gitee)
* 【core 】 修复Word07Writer写出map问题(issue#I1W49R@Gitee)
* 【script 】 修复函数库脚本执行问题
* 【core 】 修复RGB随机颜色的上限值不对且API重复(pr#1136@Gihub)
-------------------------------------------------------------------------------------------------------------
# 5.4.3 (2020-09-16)
### 🐣新特性
* 【core 】 使用静态的of方法来new对象(pr#177@Gitee)
* 【setting】 Setting增加store无参方法(issue#1072@Github)
* 【setting】 StatementUtil增加null缓存(pr#1076@Github)
* 【core 】 扩充Console功能,支持可变参数(issue#1077@Github)
* 【crypto 】 增加ECKeyUtil(issue#I1UOF5@Gitee)
* 【core 】 增加TransXXX(issue#I1TU1Y@Gitee)
* 【core 】 增加Generator
* 【db 】 Column增加是否主键、保留位数等字段
* 【cache 】 Cache接口增加get重载(issue#1080@Github)
* 【core 】 增加Interner和InternUtil(issue#I1TU1Y@Gitee)
* 【core 】 增加Calculator(issue#1090@Github)
* 【core 】 IdcardUtil增加getIdcardInfo方法(issue#1092@Github)
* 【core 】 改进ObjectUtil.equal,支持BigDecimal判断
* 【core 】 ArrayConverter增加可选是否忽略错误(issue#I1VNYQ@Gitee)
* 【db 】 增加ConditionBuilder
* 【setting】 Setting和Props增加create方法
* 【log 】 增加TinyLog2支持(issue#1094@Github)
### 🐞Bug修复
* 【core 】 修复Dict.of错误(issue#I1UUO5@Gitee)
* 【core 】 修复UrlBuilder地址参数问题(issue#I1UWCA@Gitee)
* 【core 】 修复StrUtil.toSymbolCase转换问题(issue#1075@Github)
* 【log 】 修复打印null对象显示{msg}异常问题(issue#1084@Github)
* 【extra 】 修复ServletUtil.getReader中未关闭的问题
* 【extra 】 修复QrCodeUtil在新版本zxing报错问题(issue#1088@Github)
* 【core 】 修复LocalDateTimeUtil.parse无法解析yyyyMMddHHmmssSSS的bug(issue#1082@Github)
* 【core 】 修复VersionComparator.equals递归调用问题(issue#1093@Github)
-------------------------------------------------------------------------------------------------------------
# 5.4.2 (2020-09-09)
### 🐣新特性
* 【core 】 lock放在try外边(pr#1050@Github)
* 【core 】 MailUtil增加错误信息(issue#I1TAKJ@Gitee)
* 【core 】 JschUtil添加远程转发功能(pr#171@Gitee)
* 【db 】 AbstractDb增加executeBatch重载(issue#1053@Github)
* 【extra 】 新增方便引入SpringUtil的注解@EnableSpringUtil(pr#172@Gitee)
* 【poi 】 RowUtil增加插入和删除行(pr#1060@Github)
* 【extra 】 SpringUtil增加注册bean(pr#174@Gitee)
* 【core 】 修改NetUtil.getMacAddress避免空指针(issue#1057@Github)
* 【core 】 增加EnumItem接口,枚举扩展转换,增加SPI自定义转换(pr#173@Github)
* 【core 】 TypeUtil增加getActualType,增加ActualTypeMapperPool类(issue#I1TBWH@Gitee)
* 【extra 】 QRConfig中添加qrVersion属性(pr#1068@Github)
* 【core 】 ArrayUtil增加equals方法
* 【core 】 BeanDesc增加方法
* 【core 】 增加@PropIgnore注解(issue#I1U846@Gitee)
### 🐞Bug修复
* 【core 】 重新整理农历节假日,解决一个pr过来的玩笑导致的问题
* 【poi 】 修复ExcelFileUtil.isXls判断问题(pr#1055@Github)
* 【poi 】 修复CglibUtil.copyList参数错误导致的问题
* 【http 】 修复GET请求附带body导致变POST的问题
* 【core 】 修复double相等判断问题(pr#175@Gitee)
* 【core 】 修复DateSizeUtil.format越界问题(issue#1069@Github)
* 【core 】 修复ChineseDate.getChineseMonth问题(issue#I1UG72@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.4.1 (2020-08-29)
### 🐣新特性
* 【core 】 StrUtil增加firstNonXXX方法(issue#1020@Github)
* 【core 】 BeanCopier修改规则,可选bean拷贝空字段报错问题(pr#160@Gitee)
* 【http 】 HttpUtil增加downloadFileFromUrl(pr#1023@Github)
* 【core 】 增加toEpochMilli方法
* 【core 】 Validator修改isCitizenId校验(pr#1032@Github)
* 【core 】 增加PathUtil和FileNameUtil,分离FileUtil中部分方法
* 【core 】 改造IndexedComparator,增加InstanceComparator
* 【extra 】 增加CglibUtil
* 【core 】 增加Ipv4Util(pr#161@Gitee)
* 【core 】 增加CalendarUtil和DateUtil增加isSameMonth方法(pr#161@Gitee)
* 【core 】 Dict增加of方法(issue#1035@Github)
* 【core 】 StrUtil.wrapAll方法不明确修改改为wrapAllWithPair(issue#1042@Github)
* 【core 】 EnumUtil.getEnumAt负数返回null(pr#167@Gitee)
* 【core 】 ChineseDate增加天干地支和转换为公历方法(pr#169@Gitee)
* 【core 】 Img增加stroke描边方法(issue#1033@Github)
### 🐞Bug修复#
* 【poi 】 修复ExcelBase.isXlsx方法判断问题(issue#I1S502@Gitee)
* 【poi 】 修复Excel03SaxReader日期方法判断问题(pr#1026@Github)
* 【core 】 修复StrUtil.indexOf空指针问题(issue#1038@Github)
* 【extra 】 修复VelocityEngine编码问题和路径前缀问题(issue#I1T0IG@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.4.0 (2020-08-06)
### 🐣新特性
* 【socket】 对NioServer和NioClient改造(pr#992@Github)
* 【core 】 StrUtil增加filter方法(pr#149@Gitee)
* 【core 】 DateUtil增加beginOfWeek重载
* 【core 】 将有歧义的BeanUtil.mapToBean方法置为过期(使用toBean方法)
* 【core 】 添加WatchAction(对Watcher的抽象)
* 【core 】 修改UUID正则,更加严谨(issue#I1Q1IW@Gitee)
* 【core 】 ArrayUtil增加isAllNull方法(issue#1004@Github)
* 【core 】 CollUtil增加contains方法(pr#152@Gitee)
* 【core 】 ArrayUtil增加isAllNotNull方法(pr#1008@Github)
* 【poi 】 closeAfterRead参数无效,方法设为过期(issue#1007@Github)
* 【core 】 CollUtil中部分方法返回null变更为返回empty
* 【all 】 添加英文README(pr#153@Gitee)
* 【extra 】 SpringUtil增加getBean(TypeReference)(pr#1009@Github)
* 【core 】 Assert增加方法,支持自定义异常处理(pr#154@Gitee)
* 【core 】 BooleanConverter增加数字转换规则(issue#I1R2AB@Gitee)
* 【poi 】 sax方式读取增加一个sheet结束的回调(issue#155@Gitee)
* 【db 】 增加BeeCP连接池支持
* 【core 】 改进Img.pressImage方法,避免变色问题(issue#1001@Github)
### 🐞Bug修复#
* 【core 】 修复原始类型转换时,转换失败没有抛出异常的问题
* 【core 】 修复BeanUtil.mapToBean中bean的class非空构造无法实例化问题
* 【core 】 修复NamedSql多个连续变量出现替换问题
* 【core 】 修复Bean重名字段(大小写区别)获取数据出错的问题(issue#I1QBQ4@Gitee)
* 【http 】 修复SimpleServer响应头无效问题(issue#1006@Github)
* 【core 】 修复ThreadLocalRandom共享seed导致获取随机数一样的问题(pr#151@Gitee)
-------------------------------------------------------------------------------------------------------------
# 5.3.11 (2020-08-01)
### 🐣新特性
* 【captcha】 AbstractCaptcha增加getImageBase64Data方法(pr#985@Github)
* 【core 】 增加PhoneUtil(pr#990@Github)
* 【core 】 改进Img,目标图片类型未定义使用源图片类型(issue#I1PB0B@Gitee)
* 【json 】 JSONConfig增加Transient选项(issue#I1PLHN@Gitee)
* 【core 】 MapUtil增加getXXX的默认值重载(issue#I1PTGI@Gitee)
* 【core 】 CalendarUtil增加parseByPatterns方法(issue#993@Github)
### 🐞Bug修复#
-------------------------------------------------------------------------------------------------------------
## 5.3.10 (2020-07-23)
### 🐣新特性
* 【db 】 增加DbUtil.setReturnGeneratedKeyGlobal(issue#I1NM0K@Gitee)
* 【core 】 增加DataSize和DataSizeUtil(issue#967@Github)
* 【core 】 ImgUtil增加异常,避免空指针(issue#I1NKXG@Gitee)
* 【core 】 增加CRC16算法若干(pr#963@Github)
* 【core 】 LocalDateTimeUtil增加format等方法(pr#140@Gitee)
* 【http 】 UserAgentUtil增加Android原生浏览器识别(pr#975@Github)
* 【crypto 】 增加ECIES算法类(issue#979@Github)
* 【crypto 】 CollUtil增加padLeft和padRight方法(pr#141@Gitee)
* 【core 】 IdCardUtil香港身份证去除首字母校验(issue#I1OOTB@Gitee)
### 🐞Bug修复
* 【core 】 修复ZipUtil中finish位于循环内的问题(issue#961@Github)
* 【core 】 修复CollUtil.page未越界检查的问题(issue#I1O2LR@Gitee)
* 【core 】 修复StrUtil.removeAny的bug(issue#977@Github)
-------------------------------------------------------------------------------------------------------------
## 5.3.9 (2020-07-12)
### 🐣新特性
* 【core 】 DateUtil增加formatChineseDate(pr#932@Github)
* 【core 】 ArrayUtil.isEmpty修改逻辑(pr#948@Github)
* 【core 】 增强StrUtil中空判断后返回数据性能(pr#949@Github)
* 【core 】 deprecate掉millsecond,改为millisecond(issue#I1M9P8@Gitee)
* 【core 】 增加LocalDateTimeUtil(issue#I1KUVC@Gitee)
* 【core 】 Month增加getLastDay方法
* 【core 】 ChineseDate支持到2099年
### 🐞Bug修复
* 【core 】 修复NumberUtil.partValue有余数问题(issue#I1KX66@Gitee)
* 【core 】 修复BeanUtil.isEmpty不能忽略static字段问题(issue#I1KZI6@Gitee)
* 【core 】 修复StrUtil.brief长度问题(pr#930@Github)
* 【socket 】 修复AioSession构造超时无效问题(pr#941@Github)
* 【setting】 修复GroupSet.contains错误(pr#943@Github)
* 【core 】 修复ZipUtil没有调用finish问题(issue#944@Github)
* 【extra 】 修复Ftp中ArrayList长度为负问题(pr#136@Github)
* 【core 】 修复Dict中putAll大小写问题(issue#I1MU5B@Gitee)
* 【core 】 修复POI中sax读取数字判断错误问题(issue#931@Github)
* 【core 】 修复DateUtil.endOfQuarter错误问题(issue#I1NGZ7@Gitee)
* 【core 】 修复URL中有空格转为+问题(issue#I1NGW4@Gitee)
* 【core 】 修复CollUtil.intersectionDistinct空集合结果错误问题
* 【core 】 修复ChineseDate在1996年计算错误问题(issue#I1N96I@Gitee)
-------------------------------------------------------------------------------------------------------------
## 5.3.8 (2020-06-16)
### 🐣新特性
* 【core 】 增加ISO8601日期格式(issue#904@Github)
* 【setting】 Props异常规则修改(issue#907@Github)
* 【setting】 增加GIF支持
* 【core 】 复制创建一个Bean对象, 并忽略某些属性(pr#130@Gitee)
* 【core 】 DateUtil.parse支持更多日期格式(issue#I1KHTB@Gitee)
* 【crypto 】 增加获取密钥空指针的检查(issue#925@Github)
* 【core 】 增加StrUtil.removeAny方法(issue#923@Github)
* 【db 】 增加部分Connection参数支持(issue#924@Github)
* 【core 】 FileUtil增加别名方法(pr#926@Github)
* 【poi 】 ExcelReader中增加read重载,提供每个单元格单独处理的方法(issue#I1JZTL@Gitee)
### 🐞Bug修复
* 【json 】 修复append方法导致的JSONConfig传递失效问题(issue#906@Github)
* 【core 】 修复CollUtil.subtractToList判断错误(pr#915@Github)
* 【poi 】 修复WordWriter写表格问题(pr#914@Github)
* 【core 】 修复IoUtil.readBytes缓存数组长度问题(issue#I1KIUE@Gitee)
* 【core 】 修复BigExcelWriter多次flush导致的问题(issue#920@Github)
* 【extra 】 绕过Pinyin4j最后一个分隔符失效的bug(issue#921@Github)
-------------------------------------------------------------------------------------------------------------
## 5.3.7 (2020-06-03)
### 🐣新特性
* 【core 】 ThreadFactoryBuilder的setUncaughtExceptionHandler返回this(issue#I1J4YJ@Gitee)
### 🐞Bug修复
* 【core 】 修复DateUtil.parse解析2020-5-8 3:12:13错误问题(issue#I1IZA3@Gitee)
* 【core 】 修复Img.pressImg大小无效问题(issue#I1HSWU@Gitee)
* 【core 】 修复CronUtil.stop没有清除任务的问题(issue#I1JACI@Gitee)
-------------------------------------------------------------------------------------------------------------
## 5.3.6 (2020-05-30)
### 🐣新特性
* 【core 】 NumberConverter Long类型增加日期转换(pr#872@Github)
* 【all 】 StrUtil and SymmetricCrypto注释修正(pr#873@Github)
* 【core 】 CsvReader支持返回Bean(issue#869@Github)
* 【core 】 Snowflake循环等待下一个时间时避免长时间循环,加入对时钟倒退的判断(pr#874@Github)
* 【extra 】 新增 QRCode base64 编码形式返回(pr#878@Github)
* 【core 】 ImgUtil增加toBase64DateUri,URLUtil增加getDataUri方法
* 【core 】 IterUtil添加List转Map的工具方法(pr#123@Gitee)
* 【core 】 BeanValueProvider转换失败时,返回原数据,而非null
* 【core 】 支持BeanUtil.toBean(object, Map.class)转换(issue#I1I4HC@Gitee)
* 【core 】 MapUtil和CollUtil增加clear方法(issue#I1I4HC@Gitee)
* 【core 】 增加FontUtil,可定义pressText是否从中间(issue#I1HSWU@Gitee)
* 【http 】 SoapClient支持自定义请求头(issue#I1I0AO@Gitee)
* 【script 】 ScriptUtil增加evalInvocable和invoke方法(issue#I1HHCP@Gitee)
* 【core 】 ImgUtil增加去除背景色的方法(pr#124@Gitee)
* 【system 】 OshiUtil增加获取CPU使用率的方法(pr#124@Gitee)
* 【crypto 】 AsymmetricAlgorithm去除EC(issue#887@Github)
* 【cache 】 超时缓存使用的线程池大小默认为1(issue#890@Github)
* 【poi 】 ExcelSaxReader支持handleCell方法
* 【core 】 Snowflake容忍2秒内的时间回拨(issue#I1IGDX@Gitee)
* 【core 】 StrUtil增加isAllNotEmpty、isAllNotBlank方法(pr#895@Github)
* 【core 】 DateUtil增加dayOfYear方法(pr#895@Github)
* 【core 】 DateUtil增加dayOfYear方法(pr#895@Github)
* 【http 】 HttpUtil增加downloadBytes方法(pr#895@Github)
* 【core 】 isMactchRegex失效标记,增加isMatchRegex(issue#I1IPJG@Gitee)
* 【core 】 优化Validator.isChinese
* 【core 】 ArrayUtil.addAll增加原始类型支持(issue#898@Github)
* 【core 】 DateUtil.parse支持2020-1-1这类日期解析(issue#I1HGWW@Github)
### 🐞Bug修复
* 【core 】 修复SimpleCache死锁问题(issue#I1HOKB@Gitee)
* 【core 】 修复SemaphoreRunnable释放问题(issue#I1HLQQ@Gitee)
* 【poi 】 修复Sax方式读取Excel行号错误问题(issue#882@Github)
* 【poi 】 修复Sax方式读取Excel日期类型数据03和07不一致问题(issue#I1HL1C@Gitee)
* 【poi 】 修复CamelCaseLinkedMap构造错误(issue#I1IZ30@Gitee)
-------------------------------------------------------------------------------------------------------------
## 5.3.5 (2020-05-13)
### 🐣新特性
* 【core 】 增加CollUtil.map方法
* 【extra 】 增加Sftp.lsEntries方法,Ftp和Sftp增加recursiveDownloadFolder(pr#121@Gitee)
* 【system 】 OshiUtil增加getNetworkIFs方法
* 【core 】 CollUtil增加unionDistinct、unionAll方法(pr#122@Gitee)
* 【core 】 增加IoUtil.readObj重载,通过ValidateObjectInputStream由用户自定义安全检查。
* 【http 】 改造HttpRequest中文件上传部分,增加MultipartBody类
### 🐞Bug修复
* 【core 】 修复IoUtil.readObj中反序列化安全检查导致的一些问题,去掉安全检查。
* 【http 】 修复SimpleServer文件访问404问题(issue#I1GZI3@Gitee)
* 【core 】 修复BeanCopier中循环引用逻辑问题(issue#I1H2VN@Gitee)
-------------------------------------------------------------------------------------------------------------
## 5.3.4 (2020-05-10)
### 🐣新特性
* 【core 】 增加URLUtil.getContentLength方法(issue#I1GB1Z@Gitee)
* 【extra 】 增加PinyinUtil(issue#I1GMIV@Gitee)
### 🐞Bug修复
* 【extra 】 修复Ftp设置超时问题(issue#I1GMTQ@Gitee)
* 【core 】 修复TreeUtil根据id查找子节点时的NPE问题(pr#120@Gitee)
* 【core 】 修复BeanUtil.copyProperties中Alias注解无效问题(issue#I1GK3M@Gitee)
* 【core 】 修复CollUtil.containsAll空集合判断问题(issue#I1G9DE@Gitee)
* 【core 】 修复XmlUtil.xmlToBean失败问题(issue#865@Github)
-------------------------------------------------------------------------------------------------------------
## 5.3.3 (2020-05-05)
### 🐣新特性
* 【core 】 ImgUtil.createImage支持背景透明(issue#851@Github)
* 【json 】 更改JSON转字符串时"</"被转义的规则为不转义(issue#852@Github)
* 【cron 】 表达式的所有段支持L关键字(issue#849@Github)
* 【extra 】 增加PinyinUtil,封装TinyPinyin
* 【extra 】 Ftp和Sftp增加FtpConfig,提供超时等更多可选参数
* 【extra 】 SpringUtil增加getActiveProfiles、getBeansOfType、getBeanNamesForType方法(issue#I1FXF3@Gitee)
* 【bloomFilter】 避免布隆过滤器数字溢出(pr#119@Gitee)
* 【core 】 增加IoUtil.writeObj(issue#I1FZIE)
* 【core 】 增加FastStringWriter
* 【core 】 增加NumberUtil.ceilDiv方法(pr#858@Github)
* 【core 】 IdcardUtil增加省份校验(issue#859@Github)
* 【extra 】 TemplateFactory和TokenizerFactory增加单例的get方法
### 🐞Bug修复
* 【core 】 修复URLBuilder中请求参数有`&amp;`导致的问题(issue#850@Github)
* 【core 】 修复URLBuilder中路径以`/`结尾导致的问题(issue#I1G44J@Gitee)
* 【db 】 修复SqlBuilder中orderBy无效问题(issue#856@Github)
* 【core 】 修复StrUtil.subBetweenAll错误问题(issue#861@Github)
-------------------------------------------------------------------------------------------------------------
## 5.3.2 (2020-04-23)
### 🐣新特性
* 【core 】 增加NetUtil.isOpen方法
* 【core 】 增加ThreadUtil.sleep和safeSleep的重载
* 【core 】 Sftp类增加toString方法(issue#I1F2T4@Gitee)
* 【core 】 修改FileUtil.size逻辑,不存在的文件返回0
* 【extra 】 Sftp.ls遇到文件不存在返回空集合,而非抛异常(issue#844@Github)
* 【http 】 改进HttpRequest.toString()格式,添加url
### 🐞Bug修复
* 【db 】 修复PageResult.isLast计算问题
* 【cron 】 修复更改系统时间后CronTimer被阻塞的问题(issue#838@Github)
* 【db 】 修复Page.addOrder无效问题(issue#I1F9MZ@Gitee)
* 【json 】 修复JSONConvert转换日期空指针问题(issue#I1F8M2@Gitee)
* 【core 】 修复XML中带注释Xpath解析导致空指针问题(issue#I1F2WI@Gitee)
* 【core 】 修复FileUtil.rename原文件无扩展名多点的问题(issue#839@Github)
* 【db 】 修复DbUtil.close可能存在的空指针问题(issue#847@Github)
-------------------------------------------------------------------------------------------------------------
## 5.3.1 (2020-04-17)
### 🐣新特性
* 【core 】 ListUtil、MapUtil、CollUtil增加empty方法
* 【poi 】 调整别名策略,clearHeaderAlias和addHeaderAlias同时清除aliasComparator(issue#828@Github)
* 【core 】 修改StrUtil.equals逻辑,改为contentEquals
* 【core 】 增加URLUtil.UrlDecoder
* 【core 】 增加XmlUtil.setNamespaceAware,getByPath支持UniversalNamespaceCache
* 【aop 】 增加Spring-cglib支持,改为SPI实现
* 【json 】 增加JSONUtil.parseXXX增加JSONConfig参数
* 【core 】 RandomUtil.randomNumber改为返回char
* 【crypto 】 SM2支持设置Digest和DSAEncoding(issue#829@Github)
### 🐞Bug修复
* 【json 】 修复解析JSON字符串时配置无法传递问题(issue#I1EIDN@Gitee)
* 【core 】 修复ServletUtil.readCookieMap空指针问题(issue#827@Github)
* 【crypto 】 修复SM2中检查密钥导致的问题(issue#I1EC47@Gitee)
* 【core 】 修复TableMap.isEmpty判断问题
* 【http 】 修复编码后的URL传入导致二次编码的问题(issue#I1EIMN@Gitee)
-------------------------------------------------------------------------------------------------------------
## 5.3.0 (2020-04-07)
### 🐣新特性
* 【extra 】 JschUtil增加execByShell方法(issue#I1CYES@Gitee)
* 【core 】 StrUtil增加subBetweenAll方法,Console增加where和lineNumber方法(issue#812@Github)
* 【core 】 TableMap增加getKeys和getValues方法
* 【json 】 JSONObject和JSONArray增加set方法,标识put弃用
* 【http 】 增加SimpleHttpServer
* 【script 】 增加createXXXScript,区别单例
* 【core 】 修改FileUtil.writeFileToStream等方法返回值为long
* 【core 】 CollUtil.split增加空集合判定(issue#814@Github)
* 【core 】 NetUtil增加parseCookies方法
* 【core 】 CollUtil增加toMap方法
* 【core 】 CollUtil和IterUtil废弃一些方法
* 【core 】 添加ValidateObjectInputStream避免对象反序列化漏洞风险
* 【core 】 添加BiMap
* 【all 】 cn.hutool.extra.servlet.multipart包迁移到cn.hutool.core.net下
* 【core 】 XmlUtil.mapToXml方法支持集合解析(issue#820@Github)
* 【json 】 解析Object中对是否为bean单独判断,而不是直接解析
* 【core 】 SimHash锁改为StampedLock
* 【core 】 Singleton改为SimpleCache实现
* 【core 】 增加CalendarUtil,DateUtil相关方法全部迁移到此
### 🐞Bug修复
* 【extra 】 修复SpringUtil使用devtools重启报错问题
* 【http 】 修复HttpUtil.encodeParams针对无参数URL问题(issue#817@Github)
* 【extra 】 修复模板中无效引用的问题
* 【extra 】 修复读取JSON文本配置未应用到子对象的问题(issue#818@Github)
* 【extra 】 修复XmlUtil.createXml中namespace反向问题
* 【core 】 修复WatchMonitor默认无event问题
-------------------------------------------------------------------------------------------------------------
## 5.2.5 (2020-03-26)
### 🐣新特性
* 【core 】 增加逻辑,对于原始类型注入,使用默认值(issue#797@Github)
* 【core 】 增加CityHash算法
* 【core 】 PageUtil支持setFirstPageNo自定义第一页的页码(issue#I1CGNZ@Gitee)
* 【http 】 UserAgentUtil增加Chromium内核的Edge浏览器支持(issue#800@Github)
* 【cache 】 修改FIFOCache中linkedHashMap的初始容量策略(pr#801@Github)
* 【core 】 修改XmlUtil中setNamespaceAware默认为true
* 【core 】 TreeNode增加extra
* 【core 】 CollUtil.newHashSet重载歧义,更换为set方法
* 【core 】 增加ListUtil,增加Hash32、Hash64、Hash128接口
* 【crypto 】 BCUtil增加readPemPrivateKey和readPemPublicKey方法
* 【cache 】 替换读写锁为StampedLock,增加LockUtil
### 🐞Bug修复
* 【core 】 修复NumberWordFormatter拼写错误(issue#799@Github)
* 【poi 】 修复xls文件下拉列表无效问题(issue#I1C79P@Gitee)
* 【poi 】 修复使用Cglib代理问题(issue#I1C79P@Gitee)
* 【core 】 修复DateUtil.weekCount跨年计算问题
-------------------------------------------------------------------------------------------------------------
## 5.2.4
### 🐣新特性
* 【setting】 Setting中增加addSetting和autoLoad重载(pr#104@Gitee)
* 【core 】 增加copyProperties,根据Class创建对象并进行属性拷贝(pr#105@Gitee)
* 【core 】 添加获取class当前文件夹名称方法(pr#106@Gitee)
* 【core 】 BooleanUtil中重载歧义修正,修改了包装参数的方法名(issue#I1BSK8@Gitee)
* 【core 】 XmlUtil增加xmlToBean和beanToXml方法
* 【db 】 设置全局忽略大小写DbUtil.setCaseInsensitiveGlobal(true)(issue#784@Github)
* 【core 】 增加CallerUtil.getCallerMethodName方法
* 【core 】 Tree增加getParent方法,可以获取父节点,抽象Node接口
* 【core 】 增加社会信用代码工具CreditCodeUtil(pr#112@Gitee)
* 【core 】 ChineseDate增加构造重载,增加toStringNormal(issue#792@Github)
* 【core 】 BeanUtil.toBean增加重载(issue#797@Github)
### 🐞Bug修复
* 【core 】 修复TypeUtil无法获取泛型接口的泛型参数问题(issue#I1BRFI@Gitee)
* 【core 】 修复MySQL中0000报错问题
* 【core 】 修复BeanPath从Map取值为空的问题(issue#790@Github)
* 【poi 】 修复添加图片尺寸的单位问题(issue#I1C2ER@Gitee)
* 【setting】 修复getStr中逻辑问题(pr#113@Gitee)
* 【json 】 修复JSONUtil.toXml汉字被编码的问题(pr#795@Gitee)
* 【poi 】 修复导出的Map列表中每个map长度不同导致的对应不一致的问题(issue#793@Gitee)
-------------------------------------------------------------------------------------------------------------
## 5.2.3
### 🐣新特性
* 【http 】 UserAgentUtil增加识别ios和android等(issue#781@Github)
* 【core 】 支持新领车牌(issue#I1BJHE@Gitee)
### 🐞Bug修复
* 【core 】 修复PageUtil第一页语义不明确的问题(issue#782@Github)
* 【extra 】 修复TemplateFactory引入包导致的问题
* 【core 】 修复ServiceLoaderUtil.loadFirstAvailable问题
-------------------------------------------------------------------------------------------------------------
## 5.2.2
### 🐣新特性
### 🐞Bug修复
* 【http 】 修复body方法添加多余头的问题(issue#769@Github)
* 【bloomFilter 】修复默认为int类型,左移超过32位后,高位丢失问题(pr#770@Github)
* 【core 】 修复beginOfWeek和endOfWeek一周开始计算错误问题(issue#I1BDPW@Gitee)
* 【db 】 修复Db.query使用命名方式查询产生的歧义(issue#776@Github)
-------------------------------------------------------------------------------------------------------------
## 5.2.1
### 🐣新特性
* 【core 】 修改FastDateParser策略,与JDK保持一致(issue#I1AXIN@Gitee)
* 【core 】 增加tree(树状结构)(pr#100@Gitee)
* 【core 】 增加randomEleList(pr#764@Github)
### 🐞Bug修复
* 【setting】 修复Props.toBean方法null的问题
* 【core 】 修复DataUtil.parseLocalDateTime无时间部分报错问题(issue#I1B18H@Gitee)
* 【core 】 修复NetUtil.isUsableLocalPort()判断问题(issue#765@Github)
* 【poi 】 修复ExcelWriter写出多个sheet错误的问题(issue#766@Github)
* 【extra 】 修复模板引擎自定义配置失效问题(issue#767@Github)
-------------------------------------------------------------------------------------------------------------
## 5.2.0
### 🐣新特性
* 【core 】 NumberUtil.decimalFormat增加Object对象参数支持
* 【core 】 增加ReflectUtil.getFieldValue支持Alias注解
* 【core 】 Bean字段支持Alias注解(包括转map,转bean等)
* 【core 】 增加ValueListHandler,优化结果集获取方式
* 【http 】 支持patch方法(issue#666@Github)
* 【crypto】 BCUtil支持更加灵活的密钥类型,增加writePemObject方法
* 【core 】 增加ServiceLoaderUtil
* 【core 】 增加EnumUtil.getEnumAt方法
* 【core 】 增强EnumConvert判断能力(issue#I17082@Gitee)
* 【all 】 log、template、tokenizer使用SPI机制代替硬编码
* 【poi 】 Word07Writer增加addPicture
* 【crypto】 RSA算法中,BlockSize长度策略调整(issue#721@Github)
* 【crypto】 删除SM2Engine,使用BC库中的对象替代
* 【crypto】 增加PemUtil工具类
* 【dfa 】 WordTree增加Filter,支持自定义特殊字符过滤器
* 【poi 】 对于POI依赖升级到4.1.2
* 【crypto】 增加国密SM2验签密钥格式支持(issue#686@Github)
### 🐞Bug修复
-------------------------------------------------------------------------------------------------------------
## 5.1.5
### 🐣新特性
* 【poi 】 Excel合并单元格读取同一个值,不再为空
* 【core 】 增加EscapeUtil.escapeAll(issue#758@Github)
* 【core 】 增加formatLocalDateTime和parseLocalDateTime方法(pr#97@Gitee)
### 🐞Bug修复
* 【core 】 修复EscapeUtil.escape转义错误(issue#758@Github)
* 【core 】 修复Convert.toLocalDateTime(Object value, Date defaultValue)返回结果不是LocalDateTime类型的问题(pr#97@Gitee)
-------------------------------------------------------------------------------------------------------------
## 5.1.4
### 🐣新特性
* 【poi 】 增加单元格位置引用(例如A11等方式获取单元格)
* 【extra】 ServletUtil.fillBean支持数据和集合字段(issue#I19ZMK@Gitee)
* 【core 】 修改ThreadUtil.newSingleExecutor默认队列大小(issue#754@Github)
* 【core 】 修改ExecutorBuilder默认队列大小(issue#753@Github)
* 【core 】 FileTypeUtil增加mp4的magic(issue#756@Github)
### 🐞Bug修复
* 【core 】 修复CombinationAnnotationElement数组判断问题(issue#752@Github)
* 【core 】 修复log4j2使用debug行号打印问题(issue#I19NFJ@Github)
* 【poi 】 修复sax读取excel03数组越界问题(issue#750@Github)
-------------------------------------------------------------------------------------------------------------
## 5.1.3
### 🐣新特性
* 【core 】 废弃isMactchRegex,改为isMatchRegex(方法错别字)
* 【core 】 修正hasNull()方法上注释错误(issue#I18TAG@Gitee)
* 【core 】 Snowflake的起始时间可以被指定(pr#95@Gitee)
* 【core 】 增加PropsUtil及getFirstFound方法(issue#I1960O@Gitee)
### 🐞Bug修复
* 【core 】 CharsetUtil在不支持GBK的系统中运行报错问题(issue#731@Github)
* 【core 】 RandomUtil的randomEleSet方法顺序不随机的问题(pr#741@Github)
* 【core 】 修复StopWatch的toString判断问题(issue#I18VIK@Gitee)
-------------------------------------------------------------------------------------------------------------
## 5.1.2
### 🐣新特性
* 【core 】 XmlUtil支持可选是否输出omit xml declaration(pr#732@Github)
* 【core 】 车牌号校验兼容新能源车牌(pr#92@Gitee)
* 【core 】 在NetUtil中新增ping功能(pr#91@Gitee)
* 【core 】 DateUtil.offset不支持ERA,增加异常提示(issue#I18KD5@Gitee)
* 【http 】 改进HttpUtil访问HTTPS接口性能问题,SSL证书使用单例(issue#I18AL1@Gitee)
### 🐞Bug修复
* 【core 】 修复isExpired的bug(issue#733@Gtihub)
-------------------------------------------------------------------------------------------------------------
## 5.1.1
### 🐣新特性
* 【core 】 ClassUtil.isSimpleValueType增加TemporalAccessor支持(issue#I170HK@Gitee)
* 【core 】 增加Convert.toPrimitiveByteArray方法,Convert支持对象序列化和反序列化
* 【core 】 DateUtil增加isExpired(Date startDate, Date endDate, Date checkDate)(issue#687@Github)
* 【core 】 增加Alias注解
* 【core 】 修正NumberChineseFormatter和NumberWordFormatter(类名拼写错误)
* 【all 】 修正equals,避免可能存在的空指针问题(pr#692@Github)
* 【core 】 提供一个自带默认值的Map(pr#87@Gitee)
* 【core 】 修改Dict在非大小写敏感状态下get也不区分大小写(issue#722@Github)
* 【core 】 StrUtil增加contains方法(issue#716@Github)
* 【core 】 QrCodeUtil增加背景透明支持(pr#89@Gitee)
* 【core 】 增加农历ChineseDate(pr#90@Gitee)
* 【core 】 ZipUtil增加zip方法写出到流(issue#I17SCT@Gitee)
* 【db 】 Db.use().query的方法中增加Map参数接口(issue#709@Github)
* 【db 】 getDialect使用数据源作为锁(issue#720@Github)
### 🐞Bug修复
* 【core 】 修复NumberUtil.mul中null的结果错误问题(issue#I17Y4J@Gitee)
* 【core 】 修复当金额大于等于1亿时,转换会多出一个万字的bug(pr#715@Github)
* 【core 】 修复FileUtil.listFileNames位于jar内导致的文件找不到问题
* 【core 】 修复TextSimilarity.similar去除字符导致的问题(issue#I17K2A@Gitee)
* 【core 】 修复unzip文件路径问题(issue#I17VU7@Gitee)
-------------------------------------------------------------------------------------------------------------
## 5.1.0
### 🐣新特性
* 【core 】 新增WatchServer(issue#440@Github)
* 【core 】 ReflectUtil.getFieldValue支持static(issue#662@Github)
* 【core 】 改进Bean判断和注入逻辑:支持public字段注入(issue#I1689L@Gitee)
* 【extra】 新增SpringUtil
* 【http 】 Get请求支持body,移除body(JSON)方法(issue#671@Github)
* 【core 】 ReflectUtil修正getFieldValue逻辑,防止歧义
### 🐞Bug修复
* 【db 】 修复SqlExecutor.callQuery关闭Statement导致的问题(issue#I16981@Gitee)
* 【db 】 修复XmlUtil.xmlToMap中List节点的问题(pr#82@Gitee)
* 【core】 修复ZipUtil中对于/结尾路径处理的问题(issue#I16PKP@Gitee)
* 【core】 修复DateConvert对int不支持导致的问题(issue#677@Github)
-------------------------------------------------------------------------------------------------------------
## 5.0.7
### 🐣新特性
* 【core 】 解决NumberUtil导致的ambiguous问题(issue#630@Github)
* 【core 】 BeanUtil.isEmpty()忽略字段支持,增加isNotEmpty(issue#629@Github)
* 【extra】 邮件发送后获取message-id(issue#I15FKR@Gitee)
* 【core 】 CaseInsensitiveMap/CamelCaseMap增加toString(issue#636@Github)
* 【core 】 XmlUtil多节点改进(issue#I15I0R@Gitee)
* 【core 】 Thread.excAsync修正为execAsync(issue#642@Github)
* 【core 】 FileUtil.getAbsolutePath修正正则(issue#648@Github)
* 【core 】 NetUtil增加getNetworkInterface方法(issue#I15WEL@Gitee)
* 【core 】 增加ReflectUtil.getFieldMap方法(issue#I15WJ7@Gitee)
### 🐞Bug修复
* 【extra】 修复SFTP.upload上传失败的问题(issue#I15O40@Gitee)
* 【db】 修复findLike匹配错误问题
* 【core 】 修复scale方法透明无效问题(issue#I15L5S@Gitee)
* 【extra】 修复exec返回无效(issue#I15L5S@Gitee)
* 【cron】 修复CronPattern注释(pr#646@Github)
* 【json】 修复LocalDateTime等JDK8时间对象不被支持的问题(issue#644@Github)
-------------------------------------------------------------------------------------------------------------
## 5.0.6
### 🐣新特性
* 【setting】 toBean改为泛型,增加class参数重载(pr#80@Gitee)
* 【core】 XmlUtil使用JDK默认的实现,避免第三方实现导致的问题(issue#I14ZS1@Gitee)
* 【poi】 写入单元格数据类型支持jdk8日期格式(pr#628@Github)
### 🐞Bug修复
* 【core】 修复DateUtil.format使用DateTime时区失效问题(issue#I150I7@Gitee)
* 【core】 修复ZipUtil解压目录遗留问题(issue#I14NO3@Gitee)
* 【core】 修复等比缩放给定背景色无效问题(pr#625@Github)
* 【poi 】 修复sax方式读取excel中无样式表导致的空指针问题
* 【core】 修复标准化URL时domain被转义的问题(pr#654@Github)
-------------------------------------------------------------------------------------------------------------
## 5.0.5
### 🐣新特性
* 【core】 增加MapUtil.removeAny(issue#612@Github)
* 【core】 Convert.toList支持[1,2]字符串(issue#I149XN@Gitee)
* 【core】 修正DateUtil.thisWeekOfMonth注释错误(issue#614@Github)
* 【core】 DateUtil增加toLocalDate等方法,DateTime更好的支持时区
* 【core】 BeanUtil.getProperty返回泛型对象(issue#I14PIW@Gitee)
* 【core】 FileTypeUtil使用扩展名辅助判断类型(issue#I14JBH@Gitee)
### 🐞Bug修复
* 【db】 修复MetaUtil.getTableMeta()方法未释放ResultSet的bug(issue#I148GH@Gitee)
* 【core】 修复DateUtil.age闰年导致的问题(issue#I14BVN@Gitee)
* 【extra】 修复ServletUtil.getCookie大小写问题(pr#79@Gitee)
* 【core】 修复IdcardUtil.isValidCard18报错问题(issue#I14LTJ@Gitee)
* 【poi】 修复double值可能存在的精度问题(issue#I14FG1@Gitee)
* 【core】 修复Linux下解压目录不正确的问题(issue#I14NO3@Gitee)
-------------------------------------------------------------------------------------------------------------
## 5.0.4
### 🐣新特性
* 【setting】 增加System.getenv变量替换支持
* 【core】 XmlUtil中mapToStr支持namespace(pr#599@Github)
* 【core】 ZipUtil修改策略:默认关闭输入流(issue#604@Github)
* 【core】 改进CsvReader,支持RowHandler按行处理(issue#608@Github)
* 【core】 增加MapUtil.sortJoin,改进SecureUtil.signParams支持补充字符串(issue#606@Github)
* 【core】 增加Money类(issue#605@Github)
### 🐞Bug修复
* 【core】 解决ConcurrentHashSet不能序列化的问题(issue#600@Github)
* 【core】 解决CsvReader.setErrorOnDifferentFieldCount循环调用问题
-------------------------------------------------------------------------------------------------------------
## 5.0.3
### 🐣新特性
### 🐞Bug修复
* 【extra】 修复遗留的getSession端口判断错误(issue#594@Github)
-------------------------------------------------------------------------------------------------------------
## 5.0.2
### 🐣新特性
* 【core】 强化java.time包的对象转换支持
### 🐞Bug修复
* 【db】 修正字段中含有as导致触发关键字不能包装字段的问题(issue#I13ML7@Gitee)
* 【extra】 修复QrCode中utf-8不支持大写的问题。(issue#I13MT6@Gitee)
* 【http】 修复请求defalte数据解析错误问题。(pr#593@Github)
-------------------------------------------------------------------------------------------------------------
## 5.0.1
### 🐣新特性
* 【json】 JSONUtil.toBean支持JSONArray
### 🐞Bug修复
* 【extra】 修复getSession端口判断错误
-------------------------------------------------------------------------------------------------------------
## 5.0.0
### 🐣新特性
* 【all】 升级JDK最低 支持到8
* 【log】 Log接口添加get的static方法
* 【all】 部分接口添加FunctionalInterface修饰
* 【crypto】 KeyUtil增加readKeyStore重载
* 【extra】 JschUtil增加私钥传入支持(issue#INKDR@Gitee)
* 【core】 DateUtil、DateTime、Convert全面支持jdk8的time包
### 🐞Bug修复
* 【http】 修复Cookie中host失效导致的问题(issue#583@Github)
木兰宽松许可证, 第2版
木兰宽松许可证, 第2版
2020年1月 http://license.coscl.org.cn/MulanPSL2
您对“软件”的复制、使用、修改及分发受木兰宽松许可证,第2版(“本许可证”)的如下条款的约束:
0. 定义
“软件”是指由“贡献”构成的许可在“本许可证”下的程序和相关文档的集合。
“贡献”是指由任一“贡献者”许可在“本许可证”下的受版权法保护的作品。
“贡献者”是指将受版权法保护的作品许可在“本许可证”下的自然人或“法人实体”。
“法人实体”是指提交贡献的机构及其“关联实体”。
“关联实体”是指,对“本许可证”下的行为方而言,控制、受控制或与其共同受控制的机构,此处的控制是指有受控方或共同受控方至少50%直接或间接的投票权、资金或其他有价证券。
1. 授予版权许可
每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的版权许可,您可以复制、使用、修改、分发其“贡献”,不论修改与否。
2. 授予专利许可
每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的(根据本条规定撤销除外)专利许可,供您制造、委托制造、使用、许诺销售、销售、进口其“贡献”或以其他方式转移其“贡献”。前述专利许可仅限于“贡献者”现在或将来拥有或控制的其“贡献”本身或其“贡献”与许可“贡献”时的“软件”结合而将必然会侵犯的专利权利要求,不包括对“贡献”的修改或包含“贡献”的其他结合。如果您或您的“关联实体”直接或间接地,就“软件”或其中的“贡献”对任何人发起专利侵权诉讼(包括反诉或交叉诉讼)或其他专利维权行动,指控其侵犯专利权,则“本许可证”授予您对“软件”的专利许可自您提起诉讼或发起维权行动之日终止。
3. 无商标许可
“本许可证”不提供对“贡献者”的商品名称、商标、服务标志或产品名称的商标许可,但您为满足第4条规定的声明义务而必须使用除外。
4. 分发限制
您可以在任何媒介中将“软件”以源程序形式或可执行形式重新分发,不论修改与否,但您必须向接收者提供“本许可证”的副本,并保留“软件”中的版权、商标、专利及免责声明。
5. 免责声明与责任限制
“软件”及其中的“贡献”在提供时不带任何明示或默示的担保。在任何情况下,“贡献者”或版权所有者不对任何人因使用“软件”或其中的“贡献”而引发的任何直接或间接损失承担责任,不论因何种原因导致或者基于何种法律理论,即使其曾被建议有此种损失的可能性。
6. 语言
“本许可证”以中英文双语表述,中英文版本具有同等法律效力。如果中英文版本存在任何冲突不一致,以中文版为准。
条款结束
如何将木兰宽松许可证,第2版,应用到您的软件
如果您希望将木兰宽松许可证,第2版,应用到您的新软件,为了方便接收者查阅,建议您完成如下三步:
1, 请您补充如下声明中的空白,包括软件名、软件的首次发表年份以及您作为版权人的名字;
2, 请您在软件包的一级目录下创建以“LICENSE”为名的文件,将整个许可证文本放入该文件中;
3, 请将如下声明文本放入每个源文件的头部注释中。
Copyright (c) [Year] [name of copyright holder]
[Software Name] is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan PSL v2.
You may obtain a copy of Mulan PSL v2 at:
http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
See the Mulan PSL v2 for more details.
Mulan Permissive Software License,Version 2
Mulan Permissive Software License,Version 2 (Mulan PSL v2)
January 2020 http://license.coscl.org.cn/MulanPSL2
Your reproduction, use, modification and distribution of the Software shall be subject to Mulan PSL v2 (this License) with the following terms and conditions:
0. Definition
Software means the program and related documents which are licensed under this License and comprise all Contribution(s).
Contribution means the copyrightable work licensed by a particular Contributor under this License.
Contributor means the Individual or Legal Entity who licenses its copyrightable work under this License.
Legal Entity means the entity making a Contribution and all its Affiliates.
Affiliates means entities that control, are controlled by, or are under common control with the acting entity under this License, ‘control’ means direct or indirect ownership of at least fifty percent (50%) of the voting power, capital or other securities of controlled or commonly controlled entity.
1. Grant of Copyright License
Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable copyright license to reproduce, use, modify, or distribute its Contribution, with modification or not.
2. Grant of Patent License
Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable (except for revocation under this Section) patent license to make, have made, use, offer for sale, sell, import or otherwise transfer its Contribution, where such patent license is only limited to the patent claims owned or controlled by such Contributor now or in future which will be necessarily infringed by its Contribution alone, or by combination of the Contribution with the Software to which the Contribution was contributed. The patent license shall not apply to any modification of the Contribution, and any other combination which includes the Contribution. If you or your Affiliates directly or indirectly institute patent litigation (including a cross claim or counterclaim in a litigation) or other patent enforcement activities against any individual or entity by alleging that the Software or any Contribution in it infringes patents, then any patent license granted to you under this License for the Software shall terminate as of the date such litigation or activity is filed or taken.
3. No Trademark License
No trademark license is granted to use the trade names, trademarks, service marks, or product names of Contributor, except as required to fulfill notice requirements in Section 4.
4. Distribution Restriction
You may distribute the Software in any medium with or without modification, whether in source or executable forms, provided that you provide recipients with a copy of this License and retain copyright, patent, trademark and disclaimer statements in the Software.
5. Disclaimer of Warranty and Limitation of Liability
THE SOFTWARE AND CONTRIBUTION IN IT ARE PROVIDED WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL ANY CONTRIBUTOR OR COPYRIGHT HOLDER BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO ANY DIRECT, OR INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM YOUR USE OR INABILITY TO USE THE SOFTWARE OR THE CONTRIBUTION IN IT, NO MATTER HOW IT’S CAUSED OR BASED ON WHICH LEGAL THEORY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
6. Language
THIS LICENSE IS WRITTEN IN BOTH CHINESE AND ENGLISH, AND THE CHINESE VERSION AND ENGLISH VERSION SHALL HAVE THE SAME LEGAL EFFECT. IN THE CASE OF DIVERGENCE BETWEEN THE CHINESE AND ENGLISH VERSIONS, THE CHINESE VERSION SHALL PREVAIL.
END OF THE TERMS AND CONDITIONS
How to Apply the Mulan Permissive Software License,Version 2 (Mulan PSL v2) to Your Software
To apply the Mulan PSL v2 to your work, for easy identification by recipients, you are suggested to complete following three steps:
i Fill in the blanks in following statement, including insert your software name, the year of the first publication of your software, and your name identified as the copyright owner;
ii Create a file named “LICENSE” which contains the whole context of this License in the first directory of your software package;
iii Attach the statement to the appropriate annotated syntax at the beginning of each source file.
Copyright (c) [Year] [name of copyright holder]
[Software Name] is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan PSL v2.
You may obtain a copy of Mulan PSL v2 at:
http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
See the Mulan PSL v2 for more details.
\ No newline at end of file
<p align="center">
<a href="https://hutool.cn/"><img src="https://cdn.jsdelivr.net/gh/looly/hutool-site/images/logo.jpg" width="45%"></a>
</p>
<p align="center">
<strong>🍬A set of tools that keep Java sweet.</strong>
</p>
<p align="center">
👉 <a href="https://hutool.cn">https://hutool.cn/</a> 👈
</p>
<p align="center">
<a target="_blank" href="https://search.maven.org/artifact/cn.hutool/hutool-all">
<img src="https://img.shields.io/maven-central/v/cn.hutool/hutool-all.svg?label=Maven%20Central" />
</a>
<a target="_blank" href="http://license.coscl.org.cn/MulanPSL2/index.html">
<img src="https://img.shields.io/:license-MulanPSL2-blue.svg" />
</a>
<a target="_blank" href="https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html">
<img src="https://img.shields.io/badge/JDK-8+-green.svg" />
</a>
<a target="_blank" href="https://travis-ci.com/dromara/hutool">
<img src="https://travis-ci.com/dromara/hutool.svg?branch=v5-master" />
</a>
<a href="https://www.codacy.com/gh/dromara/hutool/dashboard?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=dromara/hutool&amp;utm_campaign=Badge_Grade">
<img src="https://app.codacy.com/project/badge/Grade/8a6897d9de7440dd9de8804c28d2871d"/>
</a>
<a href="https://codecov.io/gh/dromara/hutool">
<img src="https://codecov.io/gh/dromara/hutool/branch/v5-master/graph/badge.svg" />
</a>
<a target="_blank" href="https://gitter.im/hutool/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge">
<img src="https://badges.gitter.im/hutool/Lobby.svg" />
</a>
<a target="_blank" href='https://gitee.com/dromara/hutool/stargazers'>
<img src='https://gitee.com/dromara/hutool/badge/star.svg?theme=gvp' alt='star'/>
</a>
<a target="_blank" href='https://github.com/dromara/hutool'>
<img src="https://img.shields.io/github/stars/dromara/hutool.svg?style=social" alt="github star"/>
</a>
</p>
<br/>
<p align="center">
<a href="https://qm.qq.com/cgi-bin/qm/qr?k=QtsqXLkHpLjE99tkre19j6pjPMhSay1a&jump_from=webapi">
<img src="https://img.shields.io/badge/QQ%E7%BE%A4%E2%91%A6-715292493-orange"/></a>
</p>
-------------------------------------------------------------------------------
[**🌎中文说明**](README.md)
-------------------------------------------------------------------------------
## 📚Introduction
**Hutool** is a small but comprehensive library of Java tools, achieved by encapsulation through static methods, reduce the cost of learning related APIs, increase productivity, and make Java as elegant as a functional programming language,let the Java be "sweet" too.
**Hutool** tools and methods from each user's crafted, it covers all aspects of the underlying code of Java development, it is a powerful tool for large project development to solve small problems, but also the efficiency of small projects;
**Hutool** is a project "util" package friendly alternative, it saves developers on the project of common classes and common tool methods of encapsulation time, so that development focus on business, at the same time can minimize the encapsulation is not perfect to avoid the bugs.
### 🎁Origin of the 'Hutool' name
**Hutool = Hu + tool**,Is the original company project after the stripping of the underlying code of the open source library , "Hu" is the short name of the company , 'tool' that tool .
Hutool,' Hútú '(Chinese Pinyin),On the one hand, it is simple and easy to understand, on the other hand, it means "hard to be confused".(note: confused means 'Hútú (糊涂)' in china )
### 🍺How Hutool is changing the way we code
The goal of **Hutool** is to use a simple function instead of a complex piece of code, thus avoiding the problem of "copy and paste" code as much as possible and revolutionizing the way we write code.
To calculate MD5 for example:
- 👴【Before】Open a search engine -> search "Java MD5 encryption" -> open a blog -> copy and paste -> change it to work.
- 👦【Now 】import Hutool -> SecureUtil.md5()
Hutool exists to reduce code search costs and avoid bugs caused by imperfect code on the web.
### Thanks
> this README is PR by [chengxian-yi](https://gitee.com/yichengxian)
-------------------------------------------------------------------------------
## 🛠️Module
A Java-based tool class for files, streams, encryption and decryption, transcoding, regular, thread, XML and other JDK methods for encapsulation,composing various Util tool classes, as well as providing the following modules:
| module | description |
| -------------------|-------------------------------------------------------------------------------------------------------------------------|
| hutool-aop | JDK dynamic proxy encapsulation to provide non-IOC faceting support |
| hutool-bloomFilter | Bloom filtering to provide some Hash algorithm Bloom filtering |
| hutool-cache | Simple cache |
| hutool-core | Core, including Bean operations, dates, various Utils, etc. |
| hutool-cron | Task scheduling with Cron expressions |
| hutool-crypto | Provides symmetric, asymmetric and digest algorithm encapsulation |
| hutool-db | Db operations based on ActiveRecord thinking. |
| hutool-dfa | DFA models, such as multi-keyword lookups |
| hutool-extra | Extension modules, third-party wrappers (template engine, mail, servlet, QR code, Emoji, FTP, word splitting, etc.) |
| hutool-http | Http client |
| hutool-log | Log (facade) |
| hutool-script | Script execution encapsulation, e.g. Javascript |
| hutool-setting | Stronger Setting Profile tools and Properties tools |
| hutool-system | System parameter tools (JVM information, etc.) |
| hutool-json | JSON |
| hutool-captcha | Image Captcha |
| hutool-poi | Tools for working with Excel and Word in POI |
| hutool-socket | Java-based tool classes for NIO and AIO sockets |
| hutool-jwt | JSON Web Token (JWT) implement |
Each module can be introduced individually, or all modules can be introduced by introducing `hutool-all` as required.
-------------------------------------------------------------------------------
## 📝Doc
[📘Chinese documentation](https://www.hutool.cn/docs/)
[📘Chinese back-up documentation](https://plus.hutool.cn/)
[📙API](https://apidoc.gitee.com/dromara/hutool/)
[🎬Video](https://www.bilibili.com/video/BV1bQ4y1M7d9?p=2)
-------------------------------------------------------------------------------
## 🪙Support Hutool
### 💳Donate
If you think Hutool is good, you can donate to buy the author a pack of chili~, thanks in advance ^_^.
[Gitee donate](https://gitee.com/dromara/hutool)
[Dromara donate](https://dromara.gitee.io/donate.html)
### 👕Shop about Hutool
We provide the T-Shirt and Sweater with Hutool Logo, please visit the shop:
👉 [Hutool Shop](https://market.m.taobao.com/apps/market/content/index.html?wh_weex=true&contentId=331724720170) 👈
-------------------------------------------------------------------------------
## 📦Install
### 🍊Maven
```xml
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.19</version>
</dependency>
```
### 🍐Gradle
```
implementation 'cn.hutool:hutool-all:5.8.19'
```
## 📥Download
- [Maven Repo](https://repo1.maven.org/maven2/cn/hutool/hutool-all/5.8.19/)
> 🔔️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.
> If your project uses JDK7, please use Hutool 4.x version.
### 🚽Compile and install
Download the entire project source code
gitee:[https://gitee.com/dromara/hutool](https://gitee.com/dromara/hutool)
github:[https://github.com/dromara/hutool](https://github.com/dromara/hutool)
```sh
cd ${hutool}
./hutool.sh install
```
-------------------------------------------------------------------------------
## 🏗️Other
### 🎋Branch Description
Hutool's source code is divided into two branches:
| branch | description |
|-----------|---------------------------------------------------------------|
| v5-master | The master branch, the branch used by the release version, is the same as the jar committed to the central repository and does not receive any pr or modifications. |
| v5-dev | Development branch, which defaults to the next SNAPSHOT version, accepts modifications or pr |
### 🐞Provide feedback or suggestions on bugs
When submitting feedback, please indicate which JDK version, Hutool version, and related dependency library version you are using.
- [Gitee issue](https://gitee.com/dromara/hutool/issues)
- [Github issue](https://github.com/dromara/hutool/issues)
### 🧬Principles of PR(pull request)
Hutool welcomes anyone to contribute code to Hutool, but the author suffers from OCD and needs to submit a pr (pull request) that meets some specifications in order to care for the patient.:
1. Improve the comments, especially each new method should follow the Java documentation specification to indicate the method description, parameter description, return value description and other information, if necessary, please add unit tests, if you want, you can also add your name.
2. Code indentation according to Eclipse.
3. Newly added methods do not use third-party library methods,Unless the method tool is add to the '**extra module**'.
4. Please pull request to the `v5-dev` branch. Hutool uses a new branch after 5.x: `v5-master` is the master branch, which indicates the version of the central library that has been released, and this branch does not allow pr or modifications.
-------------------------------------------------------------------------------
## ⭐Star Hutool
[![Stargazers over time](https://starchart.cc/dromara/hutool.svg)](https://starchart.cc/dromara/hutool)
## 📌WeChat Official Account
<div align="center">
<img src="https://cdn.jsdelivr.net/gh/looly/hutool-site/images/qr_tuling.jpg" height="150">
<img src="https://dromara.org/img/qrcode/qrcode_1.png" height="150">
</div>
# hutool-5-master
<p align="center">
<a href="https://hutool.cn/"><img src="https://cdn.jsdelivr.net/gh/looly/hutool-site/images/logo.jpg" width="45%"></a>
</p>
<p align="center">
<strong>🍬A set of tools that keep Java sweet.</strong>
</p>
<p align="center">
👉 <a href="https://hutool.cn">https://hutool.cn/</a> 👈
</p>
<p align="center">
<a target="_blank" href="https://search.maven.org/artifact/cn.hutool/hutool-all">
<img src="https://img.shields.io/maven-central/v/cn.hutool/hutool-all.svg?label=Maven%20Central" />
</a>
<a target="_blank" href="http://license.coscl.org.cn/MulanPSL2/index.html">
<img src="https://img.shields.io/:license-MulanPSL2-blue.svg" />
</a>
<a target="_blank" href="https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html">
<img src="https://img.shields.io/badge/JDK-8+-green.svg" />
</a>
<a target="_blank" href="https://travis-ci.com/dromara/hutool">
<img src="https://travis-ci.com/dromara/hutool.svg?branch=v5-master" />
</a>
<a href="https://www.codacy.com/gh/dromara/hutool/dashboard?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=dromara/hutool&amp;utm_campaign=Badge_Grade">
<img src="https://app.codacy.com/project/badge/Grade/8a6897d9de7440dd9de8804c28d2871d"/>
</a>
<a href="https://codecov.io/gh/dromara/hutool">
<img src="https://codecov.io/gh/dromara/hutool/branch/v5-master/graph/badge.svg" />
</a>
<a target="_blank" href="https://gitter.im/hutool/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge">
<img src="https://badges.gitter.im/hutool/Lobby.svg" />
</a>
<a target="_blank" href='https://gitee.com/dromara/hutool/stargazers'>
<img src='https://gitee.com/dromara/hutool/badge/star.svg?theme=gvp' alt='star'/>
</a>
<a target="_blank" href='https://github.com/dromara/hutool'>
<img src="https://img.shields.io/github/stars/dromara/hutool.svg?style=social" alt="github star"/>
</a>
</p>
<br/>
<p align="center">
<a href="https://qm.qq.com/cgi-bin/qm/qr?k=QtsqXLkHpLjE99tkre19j6pjPMhSay1a&jump_from=webapi">
<img src="https://img.shields.io/badge/QQ%E7%BE%A4%E2%91%A6-715292493-orange"/></a>
</p>
-------------------------------------------------------------------------------
[**🌎English Documentation**](README-EN.md)
-------------------------------------------------------------------------------
## 📚简介
`Hutool`是一个功能丰富且易用的**Java工具库**,通过诸多实用工具类的使用,旨在帮助开发者快速、便捷地完成各类开发任务。
这些封装的工具涵盖了字符串、数字、集合、编码、日期、文件、IO、加密、数据库JDBC、JSON、HTTP客户端等一系列操作,
可以满足各种不同的开发需求。
### 🎁Hutool名称的由来
Hutool = Hu + tool,是原公司项目底层代码剥离后的开源库,“Hu”是公司名称的表示,tool表示工具。Hutool谐音“糊涂”,一方面简洁易懂,一方面寓意“难得糊涂”。
### 🍺Hutool理念
`Hutool`既是一个工具集,也是一个知识库,我们从不自诩代码原创,大多数工具类都是**搬运**而来,因此:
- 你可以引入使用,也可以**拷贝**和修改使用,而**不必标注任何信息**,只是希望能把bug及时反馈回来。
- 我们努力健全**中文**注释,为源码学习者提供良好地学习环境,争取做到人人都能看得懂。
-------------------------------------------------------------------------------
## 🛠️包含组件
一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,同时提供以下组件:
| 模块 | 介绍 |
| -------------------|---------------------------------------------------------------------------------- |
| hutool-aop | JDK动态代理封装,提供非IOC下的切面支持 |
| hutool-bloomFilter | 布隆过滤,提供一些Hash算法的布隆过滤 |
| hutool-cache | 简单缓存实现 |
| hutool-core | 核心,包括Bean操作、日期、各种Util等 |
| hutool-cron | 定时任务模块,提供类Crontab表达式的定时任务 |
| hutool-crypto | 加密解密模块,提供对称、非对称和摘要算法封装 |
| hutool-db | JDBC封装后的数据操作,基于ActiveRecord思想 |
| hutool-dfa | 基于DFA模型的多关键字查找 |
| hutool-extra | 扩展模块,对第三方封装(模板引擎、邮件、Servlet、二维码、Emoji、FTP、分词等) |
| hutool-http | 基于HttpUrlConnection的Http客户端封装 |
| hutool-log | 自动识别日志实现的日志门面 |
| hutool-script | 脚本执行封装,例如Javascript |
| hutool-setting | 功能更强大的Setting配置文件和Properties封装 |
| hutool-system | 系统参数调用封装(JVM信息等) |
| hutool-json | JSON实现 |
| hutool-captcha | 图片验证码实现 |
| hutool-poi | 针对POI中Excel和Word的封装 |
| hutool-socket | 基于Java的NIO和AIO的Socket封装 |
| hutool-jwt | JSON Web Token (JWT)封装实现 |
可以根据需求对每个模块单独引入,也可以通过引入`hutool-all`方式引入所有模块。
-------------------------------------------------------------------------------
## 📝文档
[📘中文文档](https://www.hutool.cn/docs/)
[📘中文备用文档](https://plus.hutool.cn/)
[📙参考API](https://apidoc.gitee.com/dromara/hutool/)
[🎬视频介绍](https://www.bilibili.com/video/BV1bQ4y1M7d9?p=2)
-------------------------------------------------------------------------------
## 🪙支持Hutool
### 💳捐赠
如果你觉得Hutool不错,可以捐赠请维护者吃包辣条~,在此表示感谢^_^。
[Gitee上捐赠](https://gitee.com/dromara/hutool)
### 👕周边商店
你也可以通过购买Hutool的周边商品来支持Hutool维护哦!
我们提供了印有Hutool Logo的周边商品,欢迎点击购买支持:
👉 [Hutool 周边商店](https://market.m.taobao.com/apps/market/content/index.html?wh_weex=true&contentId=331724720170) 👈
-------------------------------------------------------------------------------
## 📦安装
### 🍊Maven
在项目的pom.xml的dependencies中加入以下内容:
```xml
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.19</version>
</dependency>
```
### 🍐Gradle
```
implementation 'cn.hutool:hutool-all:5.8.19'
```
### 📥下载jar
点击以下链接,下载`hutool-all-X.X.X.jar`即可:
- [Maven中央库](https://repo1.maven.org/maven2/cn/hutool/hutool-all/5.8.19/)
> 🔔️注意
> Hutool 5.x支持JDK8+,对Android平台没有测试,不能保证所有工具类或工具方法可用。
> 如果你的项目使用JDK7,请使用Hutool 4.x版本(不再更新)
### 🚽编译安装
访问Hutool的Gitee主页:[https://gitee.com/dromara/hutool](https://gitee.com/dromara/hutool) 下载整个项目源码(v5-master或v5-dev分支都可)然后进入Hutool项目目录执行:
```sh
./hutool.sh install
```
然后就可以使用Maven引入了。
-------------------------------------------------------------------------------
## 🏗️添砖加瓦
### 🎋分支说明
Hutool的源码分为两个分支,功能如下:
| 分支 | 作用 |
|-----------|---------------------------------------------------------------|
| v5-master | 主分支,release版本使用的分支,与中央库提交的jar一致,不接收任何pr或修改 |
| v5-dev | 开发分支,默认为下个版本的SNAPSHOT版本,接受修改或pr |
### 🐞提供bug反馈或建议
提交问题反馈请说明正在使用的JDK版本呢、Hutool版本和相关依赖库版本。
- [Gitee issue](https://gitee.com/dromara/hutool/issues)
- [Github issue](https://github.com/dromara/hutool/issues)
### 🧬贡献代码的步骤
1. 在Gitee或者Github上fork项目到自己的repo
2. 把fork过去的项目也就是你的项目clone到你的本地
3. 修改代码(记得一定要修改v5-dev分支)
4. commit后push到自己的库(v5-dev分支)
5. 登录Gitee或Github在你首页可以看到一个 pull request 按钮,点击它,填写一些说明信息,然后提交即可。
6. 等待维护者合并
### 📐PR遵照的原则
Hutool欢迎任何人为Hutool添砖加瓦,贡献代码,不过维护者是一个强迫症患者,为了照顾病人,需要提交的pr(pull request)符合一些规范,规范如下:
1. 注释完备,尤其每个新增的方法应按照Java文档规范标明方法说明、参数说明、返回值说明等信息,必要时请添加单元测试,如果愿意,也可以加上你的大名。
2. Hutool的缩进按照Eclipse(~~不要跟我说IDEA多好用,维护者非常懒,学不会~~,IDEA真香,改了Eclipse快捷键后舒服多了)默认(tab)缩进,所以请遵守(不要和我争执空格与tab的问题,这是一个病人的习惯)。
3. 新加的方法不要使用第三方库的方法,Hutool遵循无依赖原则(除非在extra模块中加方法工具)。
4. 请pull request到`v5-dev`分支。Hutool在5.x版本后使用了新的分支:`v5-master`是主分支,表示已经发布中央库的版本,这个分支不允许pr,也不允许修改。
5. 我们如果关闭了你的issue或pr,请不要诧异,这是我们保持问题处理整洁的一种方式,你依旧可以继续讨论,当有讨论结果时我们会重新打开。
-------------------------------------------------------------------------------
## ⭐Star Hutool
[![Stargazers over time](https://starchart.cc/dromara/hutool.svg)](https://starchart.cc/dromara/hutool)
## 📌 知识星球
<div align="center">
<img src="https://hutool.cn/images/dromara/zsxq.jpg" height="150">
</div>
\ No newline at end of file
# Security Policy
## Supported Versions(支持的版本)
| Version | Supported |
| ------- | ------------------ |
| 5.x.x | :white_check_mark: |
| 4.x.x | :x: |
| 3.x.x | :x: |
## Reporting a Vulnerability(报告漏洞)
如果你发现有安全问题或漏洞,请发送邮件到`loolly@aliyun.com`
To report any found security issues or vulnerabilities, please send a mail to `loolly@aliyun.com`.
\ No newline at end of file
#!/bin/bash
#--------------------------------------
# Check dependency, thanks to t-io
#--------------------------------------
mvn versions:display-dependency-updates
#!/bin/bash
exec mvn -T 1 cobertura:cobertura
#!/bin/bash
git add .
git commit -am "$1"
bin/push_dev.sh
#!/bin/bash
mvn clean deploy -P release
#!/bin/bash
exec mvn -T 1C clean source:jar javadoc:javadoc install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Dmaven.compile.fork=true
#!/bin/bash
exec mvn -T 1C clean source:jar javadoc:javadoc install -Dmaven.test.skip=false -Dmaven.javadoc.skip=false
#!/bin/bash
exec mvn javadoc:javadoc
#!/bin/bash
echo '========================================'
echo ' __ __ __ __ '
echo ' / / / /__ __ / /_ ____ ____ / / '
echo ' / /_/ // / / // __// __ \ / __ \ / / '
echo ' / __ // /_/ // /_ / /_/ // /_/ // / '
echo '/_/ /_/ \____/ \__/ \____/ \____//_/ '
echo ''
echo '-----------https://hutool.cn/-----------'
echo '========================================'
#!/bin/bash
exec mvn -T 1C clean source:jar javadoc:javadoc package -Dmaven.test.skip=false -Dmaven.javadoc.skip=false
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment