From 8e797bd9c1bb013a737df241386be4f1b5ad655f Mon Sep 17 00:00:00 2001 From: Looly Date: Wed, 27 Apr 2022 13:49:31 +0800 Subject: [PATCH] add ansi --- CHANGELOG.md | 1880 +---------------- CHANGELOG_5.0-5.7.md | 1878 ++++++++++++++++ .../hutool/core/lang/ansi/Ansi8BitColor.java | 83 + .../hutool/core/lang/ansi/AnsiBackground.java | 109 + .../cn/hutool/core/lang/ansi/AnsiColor.java | 109 + .../cn/hutool/core/lang/ansi/AnsiElement.java | 18 + .../cn/hutool/core/lang/ansi/AnsiEncoder.java | 65 + .../cn/hutool/core/lang/ansi/AnsiStyle.java | 49 + .../hutool/core/lang/ansi/package-info.java | 6 + .../java/cn/hutool/core/util/NumberUtil.java | 4 +- .../java/cn/hutool/core/lang/ConsoleTest.java | 5 + .../core/lang/ansi/AnsiEncoderTest.java | 13 + 12 files changed, 2339 insertions(+), 1880 deletions(-) create mode 100755 CHANGELOG_5.0-5.7.md create mode 100755 hutool-core/src/main/java/cn/hutool/core/lang/ansi/Ansi8BitColor.java create mode 100755 hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiBackground.java create mode 100755 hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiColor.java create mode 100755 hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiElement.java create mode 100755 hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiEncoder.java create mode 100755 hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiStyle.java create mode 100755 hutool-core/src/main/java/cn/hutool/core/lang/ansi/package-info.java create mode 100755 hutool-core/src/test/java/cn/hutool/core/lang/ansi/AnsiEncoderTest.java diff --git a/CHANGELOG.md b/CHANGELOG.md index fb8b9529d..bb996b424 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ * 【core 】 增加Hashids(issue#I53APY@Gitee) * 【core 】 ReflectUtil.newInstanceIfPossible添加枚举、数组等类型的默认实现 * 【core 】 CombinationAnnotationElement增加过滤(pr#605@Gitee) +* 【all 】 精简CHANGELOG ### 🐞Bug修复 * 【core 】 修复StrUtil.firstNonX非static问题(issue#2257@Github) @@ -153,1881 +154,4 @@ * 【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.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 】 增加'反转义(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转字符串时" 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 】 增加'反转义(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转字符串时" + * + * + *

来自Spring Boot

+ * + * @author Toshiaki Maki, Phillip Webb + * @see #foreground(int) + * @see #background(int) + * @since 5.8.0 + */ +public final class Ansi8BitColor implements AnsiElement { + + private static final String PREFIX_FORE = "38;5;"; + private static final String PREFIX_BACK = "48;5;"; + + /** + * 前景色ANSI颜色实例 + * + * @param code 颜色代码(0-255) + * @return 前景色ANSI颜色实例 + */ + public static Ansi8BitColor foreground(int code) { + return new Ansi8BitColor(PREFIX_FORE, code); + } + + /** + * 背景色ANSI颜色实例 + * + * @param code 颜色代码(0-255) + * @return 背景色ANSI颜色实例 + */ + public static Ansi8BitColor background(int code) { + return new Ansi8BitColor(PREFIX_BACK, code); + } + + private final String prefix; + private final int code; + + /** + * 构造 + * + * @param prefix 前缀 + * @param code 颜色代码(0-255) + * @throws IllegalArgumentException 颜色代码不在0~255范围内 + */ + private Ansi8BitColor(String prefix, int code) { + Assert.isTrue(code >= 0 && code <= 255, "Code must be between 0 and 255"); + this.prefix = prefix; + this.code = code; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null || getClass() != obj.getClass()) { + return false; + } + Ansi8BitColor other = (Ansi8BitColor) obj; + return this.prefix.equals(other.prefix) && this.code == other.code; + } + + @Override + public int hashCode() { + return this.prefix.hashCode() * 31 + this.code; + } + + @Override + public String toString() { + return this.prefix + this.code; + } +} diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiBackground.java b/hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiBackground.java new file mode 100755 index 000000000..deb7a9acb --- /dev/null +++ b/hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiBackground.java @@ -0,0 +1,109 @@ +package cn.hutool.core.lang.ansi; + +/** + * ANSI背景颜色枚举 + * + *

来自Spring Boot

+ * + * @author Phillip Webb, Geoffrey Chandler + * @since 5.8.0 + */ +public enum AnsiBackground implements AnsiElement { + + /** + * 默认背景色 + */ + DEFAULT("49"), + + /** + * 黑色 + */ + BLACK("40"), + + /** + * 红 + */ + RED("41"), + + /** + * 绿 + */ + GREEN("42"), + + /** + * 黄 + */ + YELLOW("43"), + + /** + * 蓝 + */ + BLUE("44"), + + /** + * 品红 + */ + MAGENTA("45"), + + /** + * 青 + */ + CYAN("46"), + + /** + * 白 + */ + WHITE("47"), + + /** + * 亮黑 + */ + BRIGHT_BLACK("100"), + + /** + * 亮红 + */ + BRIGHT_RED("101"), + + /** + * 亮绿 + */ + BRIGHT_GREEN("102"), + + /** + * 亮黄 + */ + BRIGHT_YELLOW("103"), + + /** + * 亮蓝 + */ + BRIGHT_BLUE("104"), + + /** + * 亮品红 + */ + BRIGHT_MAGENTA("105"), + + /** + * 亮青 + */ + BRIGHT_CYAN("106"), + + /** + * 亮白 + */ + BRIGHT_WHITE("107"); + + private final String code; + + AnsiBackground(String code) { + this.code = code; + } + + @Override + public String toString() { + return this.code; + } + +} diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiColor.java b/hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiColor.java new file mode 100755 index 000000000..d478ffb39 --- /dev/null +++ b/hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiColor.java @@ -0,0 +1,109 @@ +package cn.hutool.core.lang.ansi; + +/** + * ANSI标准颜色 + * + *

来自Spring Boot

+ * + * @author Phillip Webb, Geoffrey Chandler + * @since 5.8.0 + */ +public enum AnsiColor implements AnsiElement { + + /** + * 默认前景色 + */ + DEFAULT("39"), + + /** + * 黑 + */ + BLACK("30"), + + /** + * 红 + */ + RED("31"), + + /** + * 绿 + */ + GREEN("32"), + + /** + * 黄 + */ + YELLOW("33"), + + /** + * 蓝 + */ + BLUE("34"), + + /** + * 品红 + */ + MAGENTA("35"), + + /** + * 青 + */ + CYAN("36"), + + /** + * 白 + */ + WHITE("37"), + + /** + * 亮黑 + */ + BRIGHT_BLACK("90"), + + /** + * 亮红 + */ + BRIGHT_RED("91"), + + /** + * 亮绿 + */ + BRIGHT_GREEN("92"), + + /** + * 亮黄 + */ + BRIGHT_YELLOW("93"), + + /** + * 亮蓝 + */ + BRIGHT_BLUE("94"), + + /** + * 亮品红 + */ + BRIGHT_MAGENTA("95"), + + /** + * 亮青 + */ + BRIGHT_CYAN("96"), + + /** + * 亮白 + */ + BRIGHT_WHITE("97"); + + private final String code; + + AnsiColor(String code) { + this.code = code; + } + + @Override + public String toString() { + return this.code; + } + +} diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiElement.java b/hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiElement.java new file mode 100755 index 000000000..d09024efd --- /dev/null +++ b/hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiElement.java @@ -0,0 +1,18 @@ +package cn.hutool.core.lang.ansi; + +/** + * ANSI可转义节点接口,实现为ANSI颜色等 + * + *

来自Spring Boot

+ * + * @author Phillip Webb + */ +public interface AnsiElement { + + /** + * @return ANSI转义编码 + */ + @Override + String toString(); + +} diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiEncoder.java b/hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiEncoder.java new file mode 100755 index 000000000..5a9dc5f5c --- /dev/null +++ b/hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiEncoder.java @@ -0,0 +1,65 @@ +package cn.hutool.core.lang.ansi; + +/** + * 生成ANSI格式的编码输出 + * + * @author Phillip Webb + * @since 1.0.0 + */ +public abstract class AnsiEncoder { + + private static final String ENCODE_JOIN = ";"; + private static final String ENCODE_START = "\033["; + private static final String ENCODE_END = "m"; + private static final String RESET = "0;" + AnsiColor.DEFAULT; + + /** + * 创建ANSI字符串,参数中的{@link AnsiElement}会被转换为编码形式。 + * + * @param elements 节点数组 + * @return ANSI字符串 + */ + public static String encode(Object... elements) { + final StringBuilder sb = new StringBuilder(); + buildEnabled(sb, elements); + return sb.toString(); + } + + /** + * 追加需要需转义的节点 + * + * @param sb {@link StringBuilder} + * @param elements 节点列表 + */ + private static void buildEnabled(StringBuilder sb, Object[] elements) { + boolean writingAnsi = false; + boolean containsEncoding = false; + for (Object element : elements) { + if (null == element) { + continue; + } + if (element instanceof AnsiElement) { + containsEncoding = true; + if (writingAnsi) { + sb.append(ENCODE_JOIN); + } else { + sb.append(ENCODE_START); + writingAnsi = true; + } + } else { + if (writingAnsi) { + sb.append(ENCODE_END); + writingAnsi = false; + } + } + sb.append(element); + } + + // 恢复默认 + if (containsEncoding) { + sb.append(writingAnsi ? ENCODE_JOIN : ENCODE_START); + sb.append(RESET); + sb.append(ENCODE_END); + } + } +} diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiStyle.java b/hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiStyle.java new file mode 100755 index 000000000..b95487d15 --- /dev/null +++ b/hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiStyle.java @@ -0,0 +1,49 @@ +package cn.hutool.core.lang.ansi; + +/** + * ANSI文本样式风格枚举 + * + *

来自Spring Boot

+ * + * @author Phillip Webb + * @since 5.8.0 + */ +public enum AnsiStyle implements AnsiElement { + + /** + * 重置/正常 + */ + NORMAL("0"), + + /** + * 粗体或增加强度 + */ + BOLD("1"), + + /** + * 弱化(降低强度) + */ + FAINT("2"), + + /** + * 斜体 + */ + ITALIC("3"), + + /** + * 下划线 + */ + UNDERLINE("4"); + + private final String code; + + AnsiStyle(String code) { + this.code = code; + } + + @Override + public String toString() { + return this.code; + } + +} diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/ansi/package-info.java b/hutool-core/src/main/java/cn/hutool/core/lang/ansi/package-info.java new file mode 100755 index 000000000..e1a6f4d1e --- /dev/null +++ b/hutool-core/src/main/java/cn/hutool/core/lang/ansi/package-info.java @@ -0,0 +1,6 @@ +/** + * 命令行终端中ANSI 转义序列相关封装,如ANSI颜色等 + * + * @author spring, looly + */ +package cn.hutool.core.lang.ansi; diff --git a/hutool-core/src/main/java/cn/hutool/core/util/NumberUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/NumberUtil.java index 48e179d2a..3deccb27a 100644 --- a/hutool-core/src/main/java/cn/hutool/core/util/NumberUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/util/NumberUtil.java @@ -2541,7 +2541,7 @@ public class NumberUtil { /** * int值转byte数组,使用大端字节序(高位字节在前,低位字节在后)
- * 见:http://www.ruanyifeng.com/blog/2016/11/byte-order.html + * 见:http://www.ruanyifeng.com/blog/2016/11/byte-order.html * * @param value 值 * @return byte数组 @@ -2560,7 +2560,7 @@ public class NumberUtil { /** * byte数组转int,使用大端字节序(高位字节在前,低位字节在后)
- * 见:http://www.ruanyifeng.com/blog/2016/11/byte-order.html + * 见:http://www.ruanyifeng.com/blog/2016/11/byte-order.html * * @param bytes byte数组 * @return int diff --git a/hutool-core/src/test/java/cn/hutool/core/lang/ConsoleTest.java b/hutool-core/src/test/java/cn/hutool/core/lang/ConsoleTest.java index ee667974b..01a92e70f 100644 --- a/hutool-core/src/test/java/cn/hutool/core/lang/ConsoleTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/lang/ConsoleTest.java @@ -75,4 +75,9 @@ public class ConsoleTest { } } + @Test + public void printColorTest(){ + System.out.print("\33[30;1m A \u001b[31;2m B \u001b[32;1m C \u001b[33;1m D \u001b[0m"); + } + } diff --git a/hutool-core/src/test/java/cn/hutool/core/lang/ansi/AnsiEncoderTest.java b/hutool-core/src/test/java/cn/hutool/core/lang/ansi/AnsiEncoderTest.java new file mode 100755 index 000000000..710c5c0f0 --- /dev/null +++ b/hutool-core/src/test/java/cn/hutool/core/lang/ansi/AnsiEncoderTest.java @@ -0,0 +1,13 @@ +package cn.hutool.core.lang.ansi; + +import org.junit.Assert; +import org.junit.Test; + +public class AnsiEncoderTest { + + @Test + public void encodeTest(){ + final String encode = AnsiEncoder.encode(AnsiColor.GREEN, "Hutool test"); + Assert.assertEquals("\u001B[32mHutool test\u001B[0;39m", encode); + } +}