Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2018-17297 PoC — Hutool 安全漏洞

Source
Associated Vulnerability
Title:Hutool 安全漏洞 (CVE-2018-17297)
Description:Hutool是一款用于对文件、流、转码、正则、XML等JDK方法进行封装的Java基础类工具。 Hutool 4.1.12之前版本中的ZipUtil.java文件的‘unzip’函数存在安全漏洞。远程攻击者可借助ZIP归档文件中带有目录遍历序列的文件名利用该漏洞覆盖任意文件。
Readme
<p align="center">
	<a href="http://hutool.cn/"><img src="http://www.hutool.cn/images/logo.jpg" width="400"></a>
</p>
<p align="center">
	<strong>A set of tools that keep Java sweet.</strong>
</p>
<p align="center">
	<a href="http://search.maven.org/#artifactdetails%7Ccn.hutool%7Chutool-all%7C4.1.11%7Cjar">
		<img src="https://img.shields.io/badge/version-4.1.11-blue.svg" >
	</a>
	<a href="http://www.apache.org/licenses/LICENSE-2.0.html">
		<img src="http://img.shields.io/:license-apache-blue.svg" >
	</a>
	<a>
		<img src="https://img.shields.io/badge/JDK-1.7+-green.svg" >
	</a>
	<a>
		<a href='https://gitee.com/loolly/hutool/stargazers'><img src='https://gitee.com/loolly/hutool/badge/star.svg?theme=dark' alt='star'></img></a>
	</a>
</p>
<p align="center">
	-- 主页:<a href="http://hutool.cn">http://hutool.cn/</a> --
</p>
<p align="center">
	-- QQ群②:<a href="http://shang.qq.com/wpa/qunwpa?idkey=717c8e1444c2f3538ea37d792a19a23837cfc201e0d0de783e353b87009252eb">871141901</a> --
</p>

-------------------------------------------------------------------------------

## 简介

Hutool是一个Java工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让Java语言也可以“甜甜的”。Hutool最初是我项目中“util”包的一个整理,后来慢慢积累并加入更多非业务相关功能,并广泛学习其它开源项目精髓,经过自己整理修改,最终形成丰富的开源工具集。

Hutool是Hu + tool的自造词,前者致敬我的“前任公司”,后者为工具之意,谐音“糊涂”,寓意追求“万事都作糊涂观,无所谓失,无所谓得”的境界。

-------------------------------------------------------------------------------

## 包含组件
一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,同时提供以下组件:

- hutool-aop              JDK动态代理封装,提供非IOC下的切面支持
- hutool-bloomFilter   布隆过滤,提供一些Hash算法的布隆过滤
- hutool-cache           缓存
- hutool-core             核心,包括Bean操作、日期、各种Util等
- hutool-cron             定时任务模块,提供类Crontab表达式的定时任务
- hutool-crypto          加密解密模块
- hutool-db               JDBC封装后的数据操作,基于ActiveRecord思想
- hutool-dfa              基于DFA模型的多关键字查找
- hutool-extra            扩展模块,对第三方封装(模板引擎、邮件、Servlet、二维码等)
- hutool-http             基于HttpUrlConnection的Http客户端封装
- hutool-log              自动识别日志实现的日志门面
- hutool-script           脚本执行封装,例如Javascript
- hutool-setting         功能更强大的Setting配置文件和Properties封装
- hutool-system        系统参数调用封装(JVM信息等)
- hutool-json            JSON实现
- hutool-captcha      图片验证码实现

-------------------------------------------------------------------------------

## 文档 

[中文文档](http://hutool.mydoc.io/)

[参考API](https://apidoc.gitee.com/loolly/hutool/)

-------------------------------------------------------------------------------

## 安装

### Maven
在项目的pom.xml的dependencies中加入以下内容:

```xml
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>4.1.11</version>
</dependency>
```

### Gradle
```
compile 'cn.hutool:hutool-all:4.1.11'
```

### 非Maven项目

点击已下任一链接,下载`hutool-all-X.X.X.jar`即可:

- [Maven中央库1](http://repo1.maven.org/maven2/cn/hutool/hutool-all/4.1.11/)
- [Maven中央库2](http://repo2.maven.org/maven2/cn/hutool/hutool-all/4.1.11/)

-------------------------------------------------------------------------------

## 版本变更

- [Release版本变更说明](https://gitee.com/loolly/hutool/blob/v4-master/CHANGELOG.md)

- [SNAPSHOT版本变更说明](https://gitee.com/loolly/hutool/blob/v4-dev/CHANGELOG.md)

-------------------------------------------------------------------------------

## 添砖加瓦

### 提供bug反馈或建议

- [码云Gitee](https://gitee.com/loolly/hutool/issues)
- [Github](https://github.com/looly/hutool/issues)

### 遵照的原则

Hutool欢迎任何人为Hutool添砖加瓦,贡献代码,不过作者是一个强迫症患者,为了照顾病人,需要提交的pr(pull request)符合一些规范,规范如下:

1. 注释完备,尤其每个新增的方法应按照Java文档规范标明方法说明、参数说明、返回值说明等信息,如果愿意,也可以加上你的大名。
2. Hutool的缩进按照Eclipse(不要跟我说IDEA多好用,作者非常懒,学不会)默认(tab)缩进,所以请遵守(不要和我争执空格与tab的问题,这是一个病人的习惯)。
3. 新加的方法不要使用第三方库的方法,Hutool遵循无依赖原则(除非在extra模块中加方法工具)。
4. 请pull request到`v4-dev`分支。Hutool在4.x版本后使用了新的分支:`v4-master`是主分支,表示已经发布中央库的版本,这个分支不允许pr,也不允许修改。`v4-dev`分支是开发分支,Hutool的下个版本或者SNAPSHOT版本在这个分支上开发,你可以pr到这个分支。

### 贡献代码的步骤

1. 在Gitee或者Github上fork项目到自己的repo
2. 把fork过去的项目也就是你的项目clone到你的本地
3. 修改代码(记得一定要修改v4-dev分支)
4. commit后push到自己的库(v4-dev分支)
5. 登录Gitee或Github在你首页可以看到一个 pull request 按钮,点击它,填写一些说明信息,然后提交即可。
6. 等待作者合并

-------------------------------------------------------------------------------

## 捐赠

如果你觉得Hutool不错,可以捐赠请作者吃包辣条~,在此表示感谢^_^。

点击以下链接,将页面拉到最下方点击“捐赠”即可。

[前往捐赠](https://gitee.com/loolly/hutool)
File Snapshot

[4.0K] /data/pocs/16333dde37383de747e69d5a938063f6db59cf9a ├── [4.0K] bin │   ├── [ 169] check_dependency_updates.sh │   ├── [ 60] commit.sh │   ├── [ 60] deploy.sh │   ├── [ 87] install.sh │   ├── [ 38] javadoc.sh │   ├── [ 405] logo.sh │   ├── [ 212] push_dev.sh │   ├── [ 314] push_master.sh │   └── [ 46] update_version.sh ├── [ 32K] CHANGELOG.md ├── [4.0K] docs │   ├── [4.0K] css │   │   ├── [ 70K] animate.css │   │   ├── [146K] bootstrap.css │   │   ├── [ 37K] icomoon.css │   │   ├── [7.6K] magnific-popup.css │   │   ├── [ 12K] simple-line-icons.css │   │   ├── [ 27K] style.css │   │   └── [ 680] zenburn.min.css │   ├── [4.2K] favicon.ico │   ├── [4.0K] fonts │   │   ├── [4.0K] bootstrap │   │   │   ├── [ 20K] glyphicons-halflings-regular.eot │   │   │   ├── [106K] glyphicons-halflings-regular.svg │   │   │   ├── [ 44K] glyphicons-halflings-regular.ttf │   │   │   ├── [ 23K] glyphicons-halflings-regular.woff │   │   │   └── [ 18K] glyphicons-halflings-regular.woff2 │   │   ├── [4.0K] icomoon │   │   │   ├── [4.0K] icomoon │   │   │   │   ├── [4.0K] demo-files │   │   │   │   │   ├── [1.9K] demo.css │   │   │   │   │   └── [ 900] demo.js │   │   │   │   ├── [473K] demo.html │   │   │   │   ├── [4.0K] fonts │   │   │   │   │   ├── [196K] icomoon.eot │   │   │   │   │   ├── [637K] icomoon.svg │   │   │   │   │   ├── [196K] icomoon.ttf │   │   │   │   │   └── [196K] icomoon.woff │   │   │   │   ├── [ 686] Read Me.txt │   │   │   │   ├── [857K] selection.json │   │   │   │   └── [ 37K] style.css │   │   │   ├── [196K] icomoon.eot │   │   │   ├── [637K] icomoon.svg │   │   │   ├── [196K] icomoon.ttf │   │   │   └── [196K] icomoon.woff │   │   └── [4.0K] simple-line-icons │   │   ├── [ 52K] Simple-Line-Icons.eot │   │   ├── [193K] Simple-Line-Icons.svg │   │   ├── [ 52K] Simple-Line-Icons.ttf │   │   ├── [ 52K] Simple-Line-Icons.woff │   │   └── [ 26K] Simple-Line-Icons.woff2 │   ├── [4.0K] images │   │   ├── [ 55K] code_example.png │   │   ├── [4.0K] friends │   │   │   ├── [ 22K] act.png │   │   │   ├── [4.1K] beetl.png │   │   │   ├── [ 22K] flyfun.png │   │   │   ├── [3.5K] jbolt.png │   │   │   ├── [2.9K] oschina.gif │   │   │   ├── [ 22K] publiccms.png │   │   │   └── [2.7K] tio.png │   │   ├── [205K] hero_bg.jpg │   │   ├── [ 25K] hutool.png │   │   ├── [3.5K] jbolt.png │   │   ├── [ 30K] logo.jpg │   │   ├── [5.9K] logo_small.jpg │   │   ├── [ 15K] Preloader_2.gif │   │   └── [4.0K] team │   │   ├── [ 52K] chinaboy.jpg │   │   ├── [ 45K] me.jpg │   │   ├── [ 46K] puhuihui.jpg │   │   ├── [ 40K] shenshanmanong.jpg │   │   └── [ 46K] wangwang.jpg │   ├── [ 18K] index.html │   ├── [4.0K] js │   │   ├── [ 36K] bootstrap.min.js │   │   ├── [ 44K] highlight.min.js │   │   ├── [7.9K] jquery.easing.1.3.js │   │   ├── [ 20K] jquery.magnific-popup.min.js │   │   ├── [ 82K] jquery.min.js │   │   ├── [ 12K] jquery.stellar.min.js │   │   ├── [8.6K] jquery.waypoints.min.js │   │   ├── [ 575] magnific-popup-options.js │   │   ├── [6.5K] main.js │   │   ├── [ 15K] modernizr-2.6.2.min.js │   │   ├── [116K] moment.js │   │   └── [4.3K] respond.min.js │   ├── [4.0K] movies │   │   └── [ 26M] hutool-example1.mp4 │   └── [4.0K] resources │   ├── [4.0K] bin │   │   └── [6.5K] app.sh │   ├── [4.0K] config │   │   ├── [3.4K] beetl-example.properties │   │   ├── [ 293] cron-example.setting │   │   ├── [1.7K] db-example.setting │   │   ├── [1.1K] druid-example.setting │   │   ├── [ 402] example.set │   │   ├── [ 837] example.setting │   │   ├── [ 225] group-set-example.set │   │   ├── [1.1K] mongo-example.setting │   │   └── [1.5K] velocity-example.vm │   ├── [ 22K] hutool.jpg │   ├── [ 25K] hutool.png │   └── [100K] hutool.psd ├── [4.0K] hutool-all │   ├── [3.9K] pom.xml │   └── [4.0K] src │   └── [4.0K] main │   └── [4.0K] java │   └── [4.0K] cn │   └── [4.0K] hutool │   ├── [1.3K] Hutool.java │   └── [ 678] package-info.java ├── [4.0K] hutool-aop │   ├── [1.0K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] cn │   │   └── [4.0K] hutool │   │   └── [4.0K] aop │   │   ├── [4.0K] aspects │   │   │   ├── [ 981] Aspect.java │   │   │   ├── [ 120] package-info.java │   │   │   ├── [ 703] SimpleAspect.java │   │   │   └── [ 706] TimeIntervalAspect.java │   │   ├── [4.0K] interceptor │   │   │   ├── [1.5K] CglibInterceptor.java │   │   │   ├── [1.5K] JdkInterceptor.java │   │   │   └── [ 97] package-info.java │   │   ├── [ 118] package-info.java │   │   ├── [4.0K] proxy │   │   │   ├── [ 580] CglibProxyFactory.java │   │   │   ├── [ 524] JdkProxyFactory.java │   │   │   ├── [ 82] package-info.java │   │   │   └── [1.4K] ProxyFactory.java │   │   └── [2.7K] ProxyUtil.java │   └── [4.0K] test │   └── [4.0K] java │   └── [4.0K] cn │   └── [4.0K] hutool │   └── [4.0K] aop │   └── [4.0K] test │   └── [ 992] AopTest.java ├── [4.0K] hutool-bloomFilter │   ├── [ 783] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] cn │   │   └── [4.0K] hutool │   │   └── [4.0K] bloomfilter │   │   ├── [4.0K] bitMap │   │   │   ├── [ 227] BitMap.java │   │   │   ├── [ 925] IntMap.java │   │   │   ├── [ 885] LongMap.java │   │   │   └── [ 91] package-info.java │   │   ├── [1.6K] BitMapBloomFilter.java │   │   ├── [3.5K] BitSetBloomFilter.java │   │   ├── [1.1K] BloomFilter.java │   │   ├── [ 857] BloomFilterUtil.java │   │   ├── [4.0K] filter │   │   │   ├── [1.3K] AbstractFilter.java │   │   │   ├── [ 488] DefaultFilter.java │   │   │   ├── [ 380] ELFFilter.java │   │   │   ├── [ 371] FNVFilter.java │   │   │   ├── [ 497] HfFilter.java │   │   │   ├── [ 462] HfIpFilter.java │   │   │   ├── [ 498] JSFilter.java │   │   │   ├── [ 113] package-info.java │   │   │   ├── [ 378] PJWFilter.java │   │   │   ├── [ 374] RSFilter.java │   │   │   ├── [ 382] SDBMFilter.java │   │   │   └── [ 388] TianlFilter.java │   │   └── [ 124] package-info.java │   └── [4.0K] test │   └── [4.0K] java │   └── [4.0K] cn │   └── [4.0K] hutool │   └── [4.0K] bloomfilter │   └── [ 436] BitMapBloomFilterTest.java ├── [4.0K] hutool-cache │   ├── [ 768] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] cn │   │   └── [4.0K] hutool │   │   └── [4.0K] cache │   │   ├── [3.1K] Cache.java │   │   ├── [3.2K] CacheUtil.java │   │   ├── [4.0K] file │   │   │   ├── [3.0K] AbstractFileCache.java │   │   │   ├── [1.4K] LFUFileCache.java │   │   │   ├── [1.4K] LRUFileCache.java │   │   │   └── [ 104] package-info.java │   │   ├── [1.9K] GlobalPruneTimer.java │   │   ├── [4.0K] impl │   │   │   ├── [5.7K] AbstractCache.java │   │   │   ├── [1.5K] CacheObjIterator.java │   │   │   ├── [1.4K] CacheObj.java │   │   │   ├── [ 912] CacheValuesIterator.java │   │   │   ├── [1.8K] FIFOCache.java │   │   │   ├── [2.4K] LFUCache.java │   │   │   ├── [2.3K] LRUCache.java │   │   │   ├── [1.2K] NoCache.java │   │   │   ├── [ 95] package-info.java │   │   │   ├── [1.9K] TimedCache.java │   │   │   └── [ 596] WeakCache.java │   │   └── [ 141] package-info.java │   └── [4.0K] test │   └── [4.0K] java │   └── [4.0K] cn │   └── [4.0K] hutool │   └── [4.0K] cache │   └── [4.0K] test │   ├── [1.7K] CacheConcurrentTest.java │   ├── [3.4K] CacheTest.java │   └── [ 362] FileCacheTest.java ├── [4.0K] hutool-captcha │   ├── [ 779] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] cn │   │   └── [4.0K] hutool │   │   └── [4.0K] captcha │   │   ├── [4.5K] AbstractCaptcha.java │   │   ├── [2.3K] CaptchaUtil.java │   │   ├── [2.8K] CircleCaptcha.java │   │   ├── [4.0K] generator │   │   │   ├── [ 343] CodeGenerator.java │   │   │   ├── [ 118] package-info.java │   │   │   └── [1.1K] RandomGenerator.java │   │   ├── [ 796] ICaptcha.java │   │   ├── [2.8K] LineCaptcha.java │   │   ├── [ 89] package-info.java │   │   └── [4.9K] ShearCaptcha.java │   └── [4.0K] test │   └── [4.0K] java │   └── [4.0K] cn │   └── [4.0K] hutool │   └── [4.0K] captcha │   ├── [2.0K] CaptchaTest.java │   └── [ 218] CaptchaUtilTest.java ├── [4.0K] hutool-core │   ├── [ 577] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] cn │   │   └── [4.0K] hutool │   │   └── [4.0K] core │   │   ├── [4.0K] annotation │   │   │   ├── [6.7K] AnnotationUtil.java │   │   │   ├── [3.8K] CombinationAnnotationElement.java │   │   │   └── [ 127] package-info.java │   │   ├── [4.0K] bean │   │   │   ├── [ 771] BeanDescCache.java │   │   │   ├── [ 12K] BeanDesc.java │   │   │   ├── [ 828] BeanException.java │   │   │   ├── [1.3K] BeanInfoCache.java │   │   │   ├── [9.3K] BeanPath.java │   │   │   ├── [1.5K] BeanResolver.java │   │   │   ├── [ 21K] BeanUtil.java │   │   │   ├── [4.0K] copier │   │   │   │   ├── [5.4K] BeanCopier.java │   │   │   │   ├── [5.0K] CopyOptions.java │   │   │   │   ├── [ 117] package-info.java │   │   │   │   ├── [4.0K] provider │   │   │   │   │   ├── [1.8K] BeanValueProvider.java │   │   │   │   │   ├── [1.3K] MapValueProvider.java │   │   │   │   │   └── [ 114] package-info.java │   │   │   │   └── [1.2K] ValueProvider.java │   │   │   ├── [4.7K] DynaBean.java │   │   │   └── [ 162] package-info.java │   │   ├── [4.0K] clone │   │   │   ├── [ 290] Cloneable.java │   │   │   ├── [ 878] CloneRuntimeException.java │   │   │   ├── [ 411] CloneSupport.java │   │   │   └── [ 83] package-info.java │   │   ├── [4.0K] codec │   │   │   ├── [5.4K] Base32.java │   │   │   ├── [5.8K] Base64Decoder.java │   │   │   ├── [7.0K] Base64Encoder.java │   │   │   ├── [8.4K] Base64.java │   │   │   ├── [3.1K] BCD.java │   │   │   └── [ 97] package-info.java │   │   ├── [4.0K] collection │   │   │   ├── [2.7K] ArrayIter.java │   │   │   ├── [2.2K] BoundedPriorityQueue.java │   │   │   ├── [ 228] CollectionUtil.java │   │   │   ├── [ 67K] CollUtil.java │   │   │   ├── [2.8K] ConcurrentHashSet.java │   │   │   ├── [1.8K] CopiedIter.java │   │   │   ├── [ 804] EnumerationIter.java │   │   │   ├── [ 649] IteratorEnumeration.java │   │   │   ├── [ 14K] IterUtil.java │   │   │   ├── [3.8K] LineIter.java │   │   │   └── [ 167] package-info.java │   │   ├── [4.0K] comparator │   │   │   ├── [1.3K] ComparableComparator.java │   │   │   ├── [8.1K] ComparatorChain.java │   │   │   ├── [ 871] ComparatorException.java │   │   │   ├── [1.7K] FieldComparator.java │   │   │   ├── [ 873] IndexedComparator.java │   │   │   ├── [ 122] package-info.java │   │   │   ├── [ 541] PinyinComparator.java │   │   │   ├── [1.8K] PropertyComparator.java │   │   │   ├── [1.2K] ReverseComparator.java │   │   │   └── [2.7K] VersionComparator.java │   │   ├── [4.0K] convert │   │   │   ├── [3.1K] AbstractConverter.java │   │   │   ├── [2.0K] BasicType.java │   │   │   ├── [ 562] Converter.java │   │   │   ├── [ 13K] ConverterRegistry.java │   │   │   ├── [ 850] ConvertException.java │   │   │   ├── [ 25K] Convert.java │   │   │   ├── [4.0K] impl │   │   │   │   ├── [4.7K] ArrayConverter.java │   │   │   │   ├── [ 694] AtomicBooleanConverter.java │   │   │   │   ├── [ 932] AtomicReferenceConverter.java │   │   │   │   ├── [1.6K] BeanConverter.java │   │   │   │   ├── [ 489] BooleanConverter.java │   │   │   │   ├── [ 510] ByteArrayConverter.java │   │   │   │   ├── [1.1K] CalendarConverter.java │   │   │   │   ├── [ 707] CastConverter.java │   │   │   │   ├── [ 588] CharacterConverter.java │   │   │   │   ├── [ 421] CharsetConverter.java │   │   │   │   ├── [ 535] ClassConverter.java │   │   │   │   ├── [2.2K] CollectionConverter.java │   │   │   │   ├── [ 405] CurrencyConverter.java │   │   │   │   ├── [2.1K] DateConverter.java │   │   │   │   ├── [ 684] EnumConverter.java │   │   │   │   ├── [ 687] GenericEnumConverter.java │   │   │   │   ├── [2.4K] MapConverter.java │   │   │   │   ├── [5.8K] NumberConverter.java │   │   │   │   ├── [ 198] package-info.java │   │   │   │   ├── [ 769] PathConverter.java │   │   │   │   ├── [4.1K] PrimitiveConverter.java │   │   │   │   ├── [1.5K] ReferenceConverter.java │   │   │   │   ├── [ 317] StringConverter.java │   │   │   │   ├── [ 374] TimeZoneConverter.java │   │   │   │   ├── [ 614] URIConverter.java │   │   │   │   ├── [ 622] URLConverter.java │   │   │   │   └── [ 388] UUIDConverter.java │   │   │   ├── [5.2K] NumberChineseFormater.java │   │   │   ├── [4.3K] NumberWordFormater.java │   │   │   └── [ 206] package-info.java │   │   ├── [4.0K] date │   │   │   ├── [4.2K] BetweenFormater.java │   │   │   ├── [4.2K] DateBetween.java │   │   │   ├── [ 832] DateException.java │   │   │   ├── [2.6K] DateField.java │   │   │   ├── [4.0K] DatePattern.java │   │   │   ├── [1.5K] DateRange.java │   │   │   ├── [ 22K] DateTime.java │   │   │   ├── [ 655] DateUnit.java │   │   │   ├── [ 41K] DateUtil.java │   │   │   ├── [4.0K] format │   │   │   │   ├── [1.8K] AbstractDateBasic.java │   │   │   │   ├── [ 561] DateBasic.java │   │   │   │   ├── [2.6K] DateParser.java │   │   │   │   ├── [2.1K] DatePrinter.java │   │   │   │   ├── [ 13K] FastDateFormat.java │   │   │   │   ├── [ 25K] FastDateParser.java │   │   │   │   ├── [ 32K] FastDatePrinter.java │   │   │   │   ├── [8.6K] FormatCache.java │   │   │   │   └── [ 137] package-info.java │   │   │   ├── [2.5K] Month.java │   │   │   ├── [ 152] package-info.java │   │   │   ├── [ 946] Quarter.java │   │   │   ├── [1.1K] Season.java │   │   │   ├── [2.3K] SystemClock.java │   │   │   ├── [2.5K] TimeInterval.java │   │   │   └── [2.7K] Week.java │   │   ├── [4.0K] exceptions │   │   │   ├── [ 842] DependencyException.java │   │   │   ├── [5.5K] ExceptionUtil.java │   │   │   ├── [ 793] NotInitedException.java │   │   │   ├── [ 134] package-info.java │   │   │   ├── [1.1K] StatefulException.java │   │   │   ├── [ 789] UtilException.java │   │   │   └── [ 955] ValidateException.java │   │   ├── [4.0K] getter │   │   │   ├── [1.9K] ArrayTypeGetter.java │   │   │   ├── [2.3K] BasicTypeGetter.java │   │   │   ├── [2.1K] GroupedTypeGetter.java │   │   │   ├── [2.0K] ListTypeGetter.java │   │   │   ├── [2.8K] OptArrayTypeGetter.java │   │   │   ├── [4.2K] OptBasicTypeGetter.java │   │   │   ├── [2.3K] OptNullBasicTypeFromObjectGetter.java │   │   │   ├── [2.3K] OptNullBasicTypeFromStringGetter.java │   │   │   ├── [3.6K] OptNullBasicTypeGetter.java │   │   │   └── [ 108] package-info.java │   │   ├── [4.0K] img │   │   │   ├── [ 13K] Img.java │   │   │   └── [ 102] package-info.java │   │   ├── [4.0K] io │   │   │   ├── [3.3K] BOMInputStream.java │   │   │   ├── [5.0K] BufferUtil.java │   │   │   ├── [2.3K] FastByteArrayOutputStream.java │   │   │   ├── [5.8K] FastByteBuffer.java │   │   │   ├── [4.0K] file │   │   │   │   ├── [2.2K] FileAppender.java │   │   │   │   ├── [9.3K] FileCopier.java │   │   │   │   ├── [7.3K] FileReader.java │   │   │   │   ├── [1.7K] FileWrapper.java │   │   │   │   ├── [ 10K] FileWriter.java │   │   │   │   ├── [ 660] LineSeparator.java │   │   │   │   └── [ 163] package-info.java │   │   │   ├── [6.6K] FileTypeUtil.java │   │   │   ├── [ 91K] FileUtil.java │   │   │   ├── [1.2K] IORuntimeException.java │   │   │   ├── [ 30K] IoUtil.java │   │   │   ├── [ 235] LineHandler.java │   │   │   ├── [1.0K] NullOutputStream.java │   │   │   ├── [ 216] package-info.java │   │   │   ├── [4.0K] resource │   │   │   │   ├── [1.6K] BytesResource.java │   │   │   │   ├── [3.7K] ClassPathResource.java │   │   │   │   ├── [1.1K] FileResource.java │   │   │   │   ├── [1.7K] InputStreamResource.java │   │   │   │   ├── [1.2K] MultiFileResource.java │   │   │   │   ├── [2.6K] MultiResource.java │   │   │   │   ├── [1.3K] NoResourceException.java │   │   │   │   ├── [ 164] package-info.java │   │   │   │   ├── [1.7K] Resource.java │   │   │   │   ├── [4.6K] ResourceUtil.java │   │   │   │   ├── [1.8K] StringResource.java │   │   │   │   ├── [2.6K] UrlResource.java │   │   │   │   └── [ 408] WebAppResource.java │   │   │   ├── [ 341] StreamProgress.java │   │   │   └── [4.0K] watch │   │   │   ├── [ 149] package-info.java │   │   │   ├── [ 263] SimpleWatcher.java │   │   │   ├── [1016] Watcher.java │   │   │   ├── [4.0K] watchers │   │   │   │   ├── [3.6K] DelayWatcher.java │   │   │   │   ├── [ 677] IgnoreWatcher.java │   │   │   │   ├── [ 155] package-info.java │   │   │   │   └── [1.8K] WatcherChain.java │   │   │   ├── [ 836] WatchException.java │   │   │   ├── [ 14K] WatchMonitor.java │   │   │   └── [7.5K] WatchUtil.java │   │   ├── [4.0K] lang │   │   │   ├── [ 23K] Assert.java │   │   │   ├── [ 255] Builder.java │   │   │   ├── [4.0K] caller │   │   │   │   ├── [1.0K] Caller.java │   │   │   │   ├── [1.8K] CallerUtil.java │   │   │   │   ├── [ 191] package-info.java │   │   │   │   ├── [ 724] ReflectionCaller.java │   │   │   │   ├── [ 884] SecurityManagerCaller.java │   │   │   │   └── [1.4K] StackTraceCaller.java │   │   │   ├── [ 346] Chain.java │   │   │   ├── [9.6K] ClassScaner.java │   │   │   ├── [3.0K] ConsistentHash.java │   │   │   ├── [3.7K] Console.java │   │   │   ├── [4.0K] copier │   │   │   │   ├── [ 226] Copier.java │   │   │   │   ├── [ 173] package-info.java │   │   │   │   └── [1.8K] SrcToDestCopier.java │   │   │   ├── [9.0K] Dict.java │   │   │   ├── [ 540] Editor.java │   │   │   ├── [ 236] Filter.java │   │   │   ├── [ 704] Func.java │   │   │   ├── [1.1K] Holder.java │   │   │   ├── [3.4K] JarClassLoader.java │   │   │   ├── [4.0K] loader │   │   │   │   ├── [1.4K] AtomicLoader.java │   │   │   │   ├── [1.2K] LazyLoader.java │   │   │   │   ├── [ 497] Loader.java │   │   │   │   └── [ 140] package-info.java │   │   │   ├── [1013] LocalPortGenerater.java │   │   │   ├── [ 269] Matcher.java │   │   │   ├── [4.0K] mutable │   │   │   │   ├── [2.1K] MutableBool.java │   │   │   │   ├── [3.9K] MutableByte.java │   │   │   │   ├── [3.9K] MutableDouble.java │   │   │   │   ├── [3.9K] MutableFloat.java │   │   │   │   ├── [3.8K] MutableInt.java │   │   │   │   ├── [ 307] Mutable.java │   │   │   │   ├── [3.8K] MutableLong.java │   │   │   │   ├── [1.4K] MutableObj.java │   │   │   │   ├── [3.9K] MutableShort.java │   │   │   │   └── [ 163] package-info.java │   │   │   ├── [4.4K] ObjectId.java │   │   │   ├── [ 183] package-info.java │   │   │   ├── [ 780] Pair.java │   │   │   ├── [5.9K] PatternPool.java │   │   │   ├── [4.4K] Range.java │   │   │   ├── [ 442] Replacer.java │   │   │   ├── [1.6K] SimpleCache.java │   │   │   ├── [2.0K] Singleton.java │   │   │   ├── [3.5K] Snowflake.java │   │   │   ├── [1.6K] SyncFinisher.java │   │   │   ├── [1.2K] Tuple.java │   │   │   ├── [ 13K] UUID.java │   │   │   ├── [ 22K] Validator.java │   │   │   ├── [ 544] VoidFunc.java │   │   │   └── [5.1K] WeightRandom.java │   │   ├── [4.0K] map │   │   │   ├── [1.3K] CamelCaseLinkedMap.java │   │   │   ├── [1.3K] CamelCaseMap.java │   │   │   ├── [1.5K] CaseInsensitiveLinkedMap.java │   │   │   ├── [1.5K] CaseInsensitiveMap.java │   │   │   ├── [1.9K] CustomKeyLinkedMap.java │   │   │   ├── [1.8K] CustomKeyMap.java │   │   │   ├── [2.3K] MapBuilder.java │   │   │   ├── [2.1K] MapProxy.java │   │   │   ├── [ 21K] MapUtil.java │   │   │   └── [ 130] package-info.java │   │   ├── [4.0K] math │   │   │   ├── [3.0K] Arrangement.java │   │   │   ├── [2.6K] Combination.java │   │   │   ├── [2.0K] MathUtil.java │   │   │   └── [ 144] package-info.java │   │   ├── [ 101] package-info.java │   │   ├── [4.0K] text │   │   │   ├── [ 615] ASCIIStrCache.java │   │   │   ├── [4.0K] csv │   │   │   │   ├── [1016] CsvConfig.java │   │   │   │   ├── [1.2K] CsvData.java │   │   │   │   ├── [7.1K] CsvParser.java │   │   │   │   ├── [1.5K] CsvReadConfig.java │   │   │   │   ├── [4.3K] CsvReader.java │   │   │   │   ├── [5.1K] CsvRow.java │   │   │   │   ├── [2.9K] CsvUtil.java │   │   │   │   ├── [1.2K] CsvWriteConfig.java │   │   │   │   ├── [7.7K] CsvWriter.java │   │   │   │   └── [ 123] package-info.java │   │   │   ├── [4.0K] escape │   │   │   │   ├── [ 20K] Html4Escape.java │   │   │   │   ├── [ 848] Html4Unescape.java │   │   │   │   ├── [ 562] InternalEscapeUtil.java │   │   │   │   ├── [1.4K] NumericEntityUnescaper.java │   │   │   │   └── [ 113] package-info.java │   │   │   ├── [ 139] package-info.java │   │   │   ├── [4.0K] replacer │   │   │   │   ├── [1.7K] LookupReplacer.java │   │   │   │   ├── [ 109] package-info.java │   │   │   │   ├── [1.2K] ReplacerChain.java │   │   │   │   └── [1.2K] StrReplacer.java │   │   │   ├── [ 12K] StrBuilder.java │   │   │   ├── [2.8K] StrFormatter.java │   │   │   ├── [ 17K] StrSpliter.java │   │   │   ├── [3.8K] TextSimilarity.java │   │   │   └── [2.2K] UnicodeUtil.java │   │   ├── [4.0K] thread │   │   │   ├── [5.0K] ExecutorBuilder.java │   │   │   ├── [2.2K] GlobalThreadPool.java │   │   │   ├── [2.5K] NamedThreadFactory.java │   │   │   ├── [ 124] package-info.java │   │   │   ├── [4.0K] ThreadFactoryBuilder.java │   │   │   ├── [4.0K] threadlocal │   │   │   │   ├── [ 520] NamedInheritableThreadLocal.java │   │   │   │   ├── [ 476] NamedThreadLocal.java │   │   │   │   └── [ 107] package-info.java │   │   │   └── [ 12K] ThreadUtil.java │   │   └── [4.0K] util │   │   ├── [ 88K] ArrayUtil.java │   │   ├── [4.2K] CharsetUtil.java │   │   ├── [8.5K] CharUtil.java │   │   ├── [9.2K] ClassLoaderUtil.java │   │   ├── [ 30K] ClassUtil.java │   │   ├── [3.8K] ClipboardUtil.java │   │   ├── [2.4K] EnumUtil.java │   │   ├── [3.3K] EscapeUtil.java │   │   ├── [8.3K] HashUtil.java │   │   ├── [9.8K] HexUtil.java │   │   ├── [ 18K] IdcardUtil.java │   │   ├── [ 49K] ImageUtil.java │   │   ├── [6.8K] ModifierUtil.java │   │   ├── [ 14K] NetUtil.java │   │   ├── [ 56K] NumberUtil.java │   │   ├── [ 11K] ObjectUtil.java │   │   ├── [ 156] package-info.java │   │   ├── [2.8K] PageUtil.java │   │   ├── [ 10K] PinyinUtil.java │   │   ├── [ 12K] RandomUtil.java │   │   ├── [2.1K] ReferenceUtil.java │   │   ├── [ 20K] ReflectUtil.java │   │   ├── [ 20K] ReUtil.java │   │   ├── [6.2K] RuntimeUtil.java │   │   ├── [105K] StrUtil.java │   │   ├── [6.7K] TypeUtil.java │   │   ├── [ 13K] URLUtil.java │   │   ├── [ 24K] XmlUtil.java │   │   └── [ 26K] ZipUtil.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] cn │   │   └── [4.0K] hutool │   │   └── [4.0K] core │   │   ├── [4.0K] bean │   │   │   ├── [3.2K] BeanDescTest.java │   │   │   ├── [3.0K] BeanPathTest.java │   │   │   ├── [6.6K] BeanUtilTest.java │   │   │   └── [1.3K] DynaBeanTest.java │   │   ├── [4.0K] clone │   │   │   └── [2.6K] CloneTest.java │   │   ├── [4.0K] codec │   │   │   ├── [ 481] Base32Test.java │   │   │   ├── [ 891] Base64Test.java │   │   │   └── [ 376] BCDTest.java │   │   ├── [4.0K] collection │   │   │   ├── [ 10K] CollUtilTest.java │   │   │   ├── [2.1K] IterUtilTest.java │   │   │   └── [ 715] MapProxyTest.java │   │   ├── [4.0K] comparator │   │   │   └── [1.2K] VersionComparatorTest.java │   │   ├── [4.0K] convert │   │   │   ├── [1.1K] ConverterRegistryTest.java │   │   │   ├── [2.6K] ConvertOtherTest.java │   │   │   ├── [3.4K] ConvertTest.java │   │   │   ├── [3.7K] ConvertToArrayTest.java │   │   │   ├── [1.4K] ConvertToBeanTest.java │   │   │   ├── [1.8K] ConvertToCollectionTest.java │   │   │   ├── [ 593] ConvertToSBCAndDBCTest.java │   │   │   ├── [1.2K] MapConvertTest.java │   │   │   ├── [2.7K] NumberChineseFormaterTest.java │   │   │   └── [ 492] NumberWordFormatTest.java │   │   ├── [4.0K] date │   │   │   ├── [ 943] BetweenFormaterTest.java │   │   │   ├── [1.7K] DateBetweenTest.java │   │   │   ├── [2.7K] DateTimeTest.java │   │   │   ├── [ 13K] DateUtilTest.java │   │   │   └── [ 525] TimeZoneTest.java │   │   ├── [4.0K] exceptions │   │   │   └── [ 663] ExceptionUtilTest.java │   │   ├── [4.0K] io │   │   │   ├── [1.6K] BufferUtilTest.java │   │   │   ├── [1.8K] ClassPathResourceTest.java │   │   │   ├── [ 861] FileCopierTest.java │   │   │   ├── [ 402] FileReaderTest.java │   │   │   ├── [ 852] FileTypeUtilTest.java │   │   │   ├── [8.6K] FileUtilTest.java │   │   │   └── [1.4K] WatchMonitorTest.java │   │   ├── [4.0K] lang │   │   │   ├── [ 294] AssertTest.java │   │   │   ├── [ 822] CallerTest.java │   │   │   ├── [ 359] ClassScanerTest.java │   │   │   ├── [ 898] ConsoleTest.java │   │   │   ├── [ 439] DictTest.java │   │   │   ├── [ 564] ObjectIdTest.java │   │   │   ├── [ 939] RangeTest.java │   │   │   ├── [ 788] SnowflakeTest.java │   │   │   ├── [ 641] StrFormatterTest.java │   │   │   ├── [1.2K] StrSpliterTest.java │   │   │   ├── [4.0K] test │   │   │   │   └── [4.0K] bean │   │   │   │   ├── [1.4K] ExamInfoDict.java │   │   │   │   ├── [2.0K] UserInfoDict.java │   │   │   │   └── [ 953] UserInfoRedundCount.java │   │   │   ├── [ 634] TextSimilarityTest.java │   │   │   ├── [3.1K] ValidatorTest.java │   │   │   └── [ 508] WeightRandomTest.java │   │   ├── [4.0K] map │   │   │   └── [2.5K] MapUtilTest.java │   │   ├── [4.0K] math │   │   │   ├── [1.8K] ArrangementTest.java │   │   │   └── [1.7K] CombinationTest.java │   │   ├── [4.0K] text │   │   │   ├── [4.0K] csv │   │   │   │   ├── [1.3K] CsvParserTest.java │   │   │   │   ├── [ 530] CsvReaderTest.java │   │   │   │   └── [ 836] CsvUtilTest.java │   │   │   ├── [2.3K] StrBuilderTest.java │   │   │   └── [ 974] UnicodeUtilTest.java │   │   └── [4.0K] util │   │   ├── [5.9K] ArrayUtilTest.java │   │   ├── [ 568] CharUtilTest.java │   │   ├── [3.1K] ClassUtilTest.java │   │   ├── [ 399] ClipboardUtilTest.java │   │   ├── [1.2K] EnumUtilTest.java │   │   ├── [ 446] EscapeUtilTest.java │   │   ├── [ 752] HexUtilTest.java │   │   ├── [1.7K] IdcardUtilTest.java │   │   ├── [1.9K] ImageUtilTest.java │   │   ├── [1011] NetUtilTest.java │   │   ├── [5.4K] NumberUtilTest.java │   │   ├── [ 788] PageUtilTest.java │   │   ├── [1.5K] PinyinUtilTest.java │   │   ├── [1.6K] RandomUtilTest.java │   │   ├── [1.3K] ReflectUtilTest.java │   │   ├── [4.2K] ReUtilTest.java │   │   ├── [ 510] RuntimeUtilTest.java │   │   ├── [ 10K] StrUtilTest.java │   │   ├── [1.1K] TypeUtilTest.java │   │   ├── [1.1K] URLUtilTest.java │   │   ├── [3.5K] XmlUtilTest.java │   │   └── [1005] ZipUtilTest.java │   └── [4.0K] resources │   ├── [ 22K] hutool.jpg │   ├── [ 37] test.csv │   ├── [ 130] test.properties │   └── [ 245] test.xml ├── [4.0K] hutool-cron │   ├── [ 932] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] cn │   │   └── [4.0K] hutool │   │   └── [4.0K] cron │   │   ├── [ 669] CronException.java │   │   ├── [1.9K] CronTimer.java │   │   ├── [4.5K] CronUtil.java │   │   ├── [4.0K] listener │   │   │   ├── [ 119] package-info.java │   │   │   ├── [ 495] SimpleTaskListener.java │   │   │   ├── [ 721] TaskListener.java │   │   │   └── [2.1K] TaskListenerManager.java │   │   ├── [ 268] package-info.java │   │   ├── [4.0K] pattern │   │   │   ├── [ 12K] CronPattern.java │   │   │   ├── [4.0K] matcher │   │   │   │   ├── [ 396] AlwaysTrueValueMatcher.java │   │   │   │   ├── [ 819] BoolArrayValueMatcher.java │   │   │   │   ├── [1.2K] DayOfMonthValueMatcher.java │   │   │   │   ├── [ 126] package-info.java │   │   │   │   ├── [5.1K] ValueMatcherBuilder.java │   │   │   │   ├── [ 250] ValueMatcher.java │   │   │   │   └── [ 484] YearValueMatcher.java │   │   │   ├── [ 123] package-info.java │   │   │   └── [4.0K] parser │   │   │   ├── [ 546] DayOfMonthValueParser.java │   │   │   ├── [1.2K] DayOfWeekValueParser.java │   │   │   ├── [ 209] HourValueParser.java │   │   │   ├── [ 213] MinuteValueParser.java │   │   │   ├── [ 951] MonthValueParser.java │   │   │   ├── [ 125] package-info.java │   │   │   ├── [ 153] SecondValueParser.java │   │   │   ├── [ 992] SimpleValueParser.java │   │   │   ├── [ 688] ValueParser.java │   │   │   └── [ 211] YearValueParser.java │   │   ├── [10.0K] Scheduler.java │   │   ├── [4.0K] task │   │   │   ├── [2.1K] InvokeTask.java │   │   │   ├── [ 153] package-info.java │   │   │   ├── [ 326] RunnableTask.java │   │   │   └── [ 226] Task.java │   │   ├── [ 844] TaskExecutor.java │   │   ├── [1.8K] TaskExecutorManager.java │   │   ├── [ 685] TaskLauncher.java │   │   ├── [1.6K] TaskLauncherManager.java │   │   └── [4.7K] TaskTable.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] cn │   │   └── [4.0K] hutool │   │   └── [4.0K] cron │   │   ├── [4.0K] demo │   │   │   ├── [1.7K] CronTest.java │   │   │   ├── [ 323] JobMainTest.java │   │   │   ├── [ 458] TestJob2.java │   │   │   └── [ 731] TestJob.java │   │   └── [4.0K] test │   │   └── [3.4K] CronTest.java │   └── [4.0K] resources │   └── [4.0K] config │   └── [1.1K] cron.setting ├── [4.0K] hutool-crypto │   ├── [ 775] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] cn │   │   └── [4.0K] hutool │   │   └── [4.0K] crypto │   │   ├── [4.0K] asymmetric │   │   │   ├── [ 613] AsymmetricAlgorithm.java │   │   │   ├── [ 14K] AsymmetricCrypto.java │   │   │   ├── [6.3K] BaseAsymmetric.java │   │   │   ├── [ 143] KeyType.java │   │   │   ├── [ 117] package-info.java │   │   │   ├── [6.0K] RSA.java │   │   │   ├── [1.3K] SignAlgorithm.java │   │   │   └── [6.6K] Sign.java │   │   ├── [ 835] CryptoException.java │   │   ├── [4.0K] digest │   │   │   ├── [ 26K] BCrypt.java │   │   │   ├── [ 651] DigestAlgorithm.java │   │   │   ├── [5.2K] Digester.java │   │   │   ├── [9.5K] DigestUtil.java │   │   │   ├── [ 506] HmacAlgorithm.java │   │   │   ├── [6.8K] HMac.java │   │   │   └── [ 120] package-info.java │   │   ├── [ 523] Mode.java │   │   ├── [ 393] package-info.java │   │   ├── [ 363] Padding.java │   │   ├── [ 28K] SecureUtil.java │   │   └── [4.0K] symmetric │   │   ├── [4.4K] AES.java │   │   ├── [4.3K] DESede.java │   │   ├── [4.1K] DES.java │   │   ├── [ 131] package-info.java │   │   ├── [ 999] SymmetricAlgorithm.java │   │   └── [ 11K] SymmetricCrypto.java │   └── [4.0K] test │   └── [4.0K] java │   └── [4.0K] cn │   └── [4.0K] hutool │   └── [4.0K] crypto │   └── [4.0K] test │   ├── [1.5K] DigestTest.java │   ├── [1.6K] HmacTest.java │   ├── [5.2K] RSATest.java │   ├── [3.6K] SignTest.java │   └── [5.0K] SymmetricTest.java ├── [4.0K] hutool-db │   ├── [3.3K] pom.xml │   ├── [4.0K] src │   │   ├── [4.0K] main │   │   │   └── [4.0K] java │   │   │   └── [4.0K] cn │   │   │   └── [4.0K] hutool │   │   │   └── [4.0K] db │   │   │   ├── [ 26K] AbstractDb.java │   │   │   ├── [5.4K] ActiveEntity.java │   │   │   ├── [ 10K] DaoTemplate.java │   │   │   ├── [5.6K] Db.java │   │   │   ├── [ 855] DbRuntimeException.java │   │   │   ├── [6.5K] DbUtil.java │   │   │   ├── [4.0K] dialect │   │   │   │   ├── [5.9K] DialectFactory.java │   │   │   │   ├── [3.2K] Dialect.java │   │   │   │   ├── [ 183] DialectName.java │   │   │   │   ├── [1.9K] DriverUtil.java │   │   │   │   ├── [4.0K] impl │   │   │   │   │   ├── [4.9K] AnsiSqlDialect.java │   │   │   │   │   ├── [ 678] H2Dialect.java │   │   │   │   │   ├── [ 593] MysqlDialect.java │   │   │   │   │   ├── [ 852] OracleDialect.java │   │   │   │   │   ├── [ 167] package-info.java │   │   │   │   │   ├── [ 364] PostgresqlDialect.java │   │   │   │   │   ├── [ 359] Sqlite3Dialect.java │   │   │   │   │   └── [1010] SqlServer2012Dialect.java │   │   │   │   └── [ 143] package-info.java │   │   │   ├── [4.0K] ds │   │   │   │   ├── [4.0K] c3p0 │   │   │   │   │   ├── [2.9K] C3p0DSFactory.java │   │   │   │   │   └── [ 81] package-info.java │   │   │   │   ├── [4.0K] dbcp │   │   │   │   │   ├── [2.8K] DbcpDSFactory.java │   │   │   │   │   └── [ 81] package-info.java │   │   │   │   ├── [4.0K] druid │   │   │   │   │   ├── [3.4K] DruidDSFactory.java │   │   │   │   │   └── [ 83] package-info.java │   │   │   │   ├── [7.5K] DSFactory.java │   │   │   │   ├── [2.3K] GlobalDSFactory.java │   │   │   │   ├── [4.0K] hikari │   │   │   │   │   ├── [3.0K] HikariDSFactory.java │   │   │   │   │   └── [ 85] package-info.java │   │   │   │   ├── [4.0K] jndi │   │   │   │   │   ├── [2.0K] JndiDSFactory.java │   │   │   │   │   └── [ 81] package-info.java │   │   │   │   ├── [ 120] package-info.java │   │   │   │   ├── [4.0K] pooled │   │   │   │   │   ├── [7.4K] ConnectionWraper.java │   │   │   │   │   ├── [2.7K] DbConfig.java │   │   │   │   │   ├── [2.1K] DbSetting.java │   │   │   │   │   ├── [ 106] package-info.java │   │   │   │   │   ├── [1.3K] PooledConnection.java │   │   │   │   │   ├── [4.4K] PooledDataSource.java │   │   │   │   │   └── [2.1K] PooledDSFactory.java │   │   │   │   ├── [4.0K] simple │   │   │   │   │   ├── [1.4K] AbstractDataSource.java │   │   │   │   │   ├── [ 105] package-info.java │   │   │   │   │   ├── [4.8K] SimpleDataSource.java │   │   │   │   │   └── [1.9K] SimpleDSFactory.java │   │   │   │   └── [4.0K] tomcat │   │   │   │   ├── [ 90] package-info.java │   │   │   │   └── [3.4K] TomcatDSFactory.java │   │   │   ├── [9.3K] Entity.java │   │   │   ├── [4.0K] handler │   │   │   │   ├── [ 980] BeanHandler.java │   │   │   │   ├── [ 979] BeanListHandler.java │   │   │   │   ├── [ 703] EntityHandler.java │   │   │   │   ├── [ 636] EntityListHandler.java │   │   │   │   ├── [ 679] EntitySetHandler.java │   │   │   │   ├── [8.2K] HandleHelper.java │   │   │   │   ├── [ 559] NumberHandler.java │   │   │   │   ├── [ 192] package-info.java │   │   │   │   ├── [1.0K] PageResultHandler.java │   │   │   │   ├── [ 607] RsHandler.java │   │   │   │   └── [ 564] StringHandler.java │   │   │   ├── [4.0K] meta │   │   │   │   ├── [2.8K] Column.java │   │   │   │   ├── [5.1K] MetaUtil.java │   │   │   │   ├── [ 161] package-info.java │   │   │   │   ├── [1.8K] Table.java │   │   │   │   └── [ 601] TableType.java │   │   │   ├── [4.0K] nosql │   │   │   │   ├── [4.0K] mongo │   │   │   │   │   ├── [ 11K] MongoDS.java │   │   │   │   │   ├── [2.9K] MongoFactory.java │   │   │   │   │   └── [ 106] package-info.java │   │   │   │   ├── [ 131] package-info.java │   │   │   │   └── [4.0K] redis │   │   │   │   ├── [ 115] package-info.java │   │   │   │   └── [4.1K] RedisDS.java │   │   │   ├── [ 366] package-info.java │   │   │   ├── [3.3K] Page.java │   │   │   ├── [2.9K] PageResult.java │   │   │   ├── [7.3K] Session.java │   │   │   ├── [4.0K] sql │   │   │   │   ├── [8.8K] Condition.java │   │   │   │   ├── [ 833] Direction.java │   │   │   │   ├── [ 710] LogicalOperator.java │   │   │   │   ├── [3.2K] NamedSql.java │   │   │   │   ├── [1.6K] Order.java │   │   │   │   ├── [ 100] package-info.java │   │   │   │   ├── [3.8K] Query.java │   │   │   │   ├── [ 18K] SqlBuilder.java │   │   │   │   ├── [7.7K] SqlExecutor.java │   │   │   │   ├── [8.1K] SqlFormatter.java │   │   │   │   ├── [1.4K] SqlLog.java │   │   │   │   ├── [4.8K] SqlUtil.java │   │   │   │   ├── [ 14K] StatementWrapper.java │   │   │   │   └── [5.4K] Wrapper.java │   │   │   ├── [ 19K] SqlConnRunner.java │   │   │   ├── [3.5K] SqlRunner.java │   │   │   ├── [5.8K] StatementUtil.java │   │   │   ├── [2.6K] ThreadLocalConnection.java │   │   │   └── [4.0K] transaction │   │   │   ├── [ 99] package-info.java │   │   │   ├── [1.2K] TransactionLevel.java │   │   │   └── [ 579] TxFunc.java │   │   └── [4.0K] test │   │   ├── [4.0K] java │   │   │   └── [4.0K] cn │   │   │   └── [4.0K] hutool │   │   │   └── [4.0K] db │   │   │   └── [4.0K] test │   │   │   ├── [1.2K] ConcurentTest.java │   │   │   ├── [5.3K] CRUDTest.java │   │   │   ├── [1.3K] DbTest.java │   │   │   ├── [2.5K] DsTest.java │   │   │   ├── [1.2K] EntityTest.java │   │   │   ├── [1.8K] FindBeanTest.java │   │   │   ├── [ 756] MetaTest.java │   │   │   ├── [ 911] MySQLTest.java │   │   │   ├── [1.4K] NamedSqlTest.java │   │   │   ├── [ 915] OracleTest.java │   │   │   ├── [4.0K] pojo │   │   │   │   └── [1023] User.java │   │   │   ├── [ 964] SessionTest.java │   │   │   ├── [1.1K] SqlTest.java │   │   │   └── [ 747] UpdateTest.java │   │   └── [4.0K] resources │   │   ├── [4.0K] config │   │   │   ├── [1.0K] db.setting │   │   │   ├── [4.0K] example │   │   │   │   ├── [3.4K] db-example-c3p0.setting │   │   │   │   ├── [3.8K] db-example-dbcp.setting │   │   │   │   ├── [3.5K] db-example-druid.setting │   │   │   │   ├── [2.1K] db-example-hikari.setting │   │   │   │   ├── [3.8K] db-example-tomcat.setting │   │   │   │   └── [1.1K] mongo-example.setting │   │   │   └── [2.4K] redis.setting │   │   └── [ 449] logback.xml │   └── [ 24K] test.db ├── [4.0K] hutool-dfa │   ├── [ 943] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] cn │   │   └── [4.0K] hutool │   │   └── [4.0K] dfa │   │   ├── [ 439] package-info.java │   │   ├── [4.6K] SensitiveUtil.java │   │   ├── [3.0K] StopChar.java │   │   └── [6.7K] WordTree.java │   └── [4.0K] test │   └── [4.0K] java │   └── [4.0K] cn │   └── [4.0K] hutool │   └── [4.0K] dfa │   └── [4.0K] test │   └── [4.1K] DfaTest.java ├── [4.0K] hutool-extra │   ├── [3.7K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] cn │   │   └── [4.0K] hutool │   │   └── [4.0K] extra │   │   ├── [4.0K] ftp │   │   │   ├── [ 823] FtpException.java │   │   │   ├── [7.6K] Ftp.java │   │   │   └── [ 112] package-info.java │   │   ├── [4.0K] mail │   │   │   ├── [ 935] GlobalMailAccount.java │   │   │   ├── [2.9K] InternalMailUtil.java │   │   │   ├── [ 13K] MailAccount.java │   │   │   ├── [ 830] MailException.java │   │   │   ├── [8.2K] Mail.java │   │   │   ├── [7.5K] MailUtil.java │   │   │   ├── [ 125] package-info.java │   │   │   └── [ 647] UserPassAuthenticator.java │   │   ├── [ 287] package-info.java │   │   ├── [4.0K] qrcode │   │   │   ├── [3.2K] BufferedImageLuminanceSource.java │   │   │   ├── [ 127] package-info.java │   │   │   ├── [ 846] QrCodeException.java │   │   │   ├── [8.5K] QrCodeUtil.java │   │   │   └── [3.5K] QrConfig.java │   │   ├── [4.0K] servlet │   │   │   ├── [4.0K] multipart │   │   │   │   ├── [6.5K] MultipartFormData.java │   │   │   │   ├── [4.7K] MultipartRequestInputStream.java │   │   │   │   ├── [ 118] package-info.java │   │   │   │   ├── [4.4K] UploadFileHeader.java │   │   │   │   ├── [6.7K] UploadFile.java │   │   │   │   └── [3.9K] UploadSetting.java │   │   │   ├── [ 173] package-info.java │   │   │   └── [ 17K] ServletUtil.java │   │   ├── [4.0K] ssh │   │   │   ├── [2.4K] Connector.java │   │   │   ├── [ 869] JschRuntimeException.java │   │   │   ├── [1.2K] JschSessionPool.java │   │   │   ├── [7.8K] JschUtil.java │   │   │   ├── [ 137] package-info.java │   │   │   └── [ 10K] Sftp.java │   │   └── [4.0K] template │   │   ├── [ 847] AbstractTemplate.java │   │   ├── [4.0K] engine │   │   │   ├── [4.0K] beetl │   │   │   │   ├── [3.2K] BeetlEngine.java │   │   │   │   ├── [1.3K] BeetlTemplate.java │   │   │   │   ├── [8.6K] BeetlUtil.java │   │   │   │   └── [ 99] package-info.java │   │   │   ├── [2.2K] EngineFactory.java │   │   │   ├── [4.0K] enjoy │   │   │   │   ├── [2.2K] EnjoyEngine.java │   │   │   │   ├── [1.3K] EnjoyTemplate.java │   │   │   │   └── [ 123] package-info.java │   │   │   ├── [4.0K] freemarker │   │   │   │   ├── [2.5K] FreemarkerEngine.java │   │   │   │   ├── [1.7K] FreemarkerTemplate.java │   │   │   │   └── [ 109] package-info.java │   │   │   ├── [ 109] package-info.java │   │   │   ├── [4.0K] rythm │   │   │   │   ├── [ 99] package-info.java │   │   │   │   ├── [1.7K] RythmEngine.java │   │   │   │   └── [1.3K] RythmTemplate.java │   │   │   ├── [4.0K] thymeleaf │   │   │   │   ├── [ 107] package-info.java │   │   │   │   ├── [3.1K] ThymeleafEngine.java │   │   │   │   └── [1.9K] ThymeleafTemplate.java │   │   │   └── [4.0K] velocity │   │   │   ├── [ 105] package-info.java │   │   │   ├── [ 914] StringResourceLoader.java │   │   │   ├── [2.7K] VelocityEngine.java │   │   │   ├── [2.1K] VelocityTemplate.java │   │   │   └── [ 10K] VelocityUtil.java │   │   ├── [ 401] Engine.java │   │   ├── [ 159] package-info.java │   │   ├── [4.1K] TemplateConfig.java │   │   ├── [ 860] TemplateException.java │   │   ├── [1.2K] Template.java │   │   └── [ 770] TemplateUtil.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] cn │   │   └── [4.0K] hutool │   │   └── [4.0K] extra │   │   ├── [4.0K] mail │   │   │   ├── [ 426] MailAccountTest.java │   │   │   └── [1.5K] MailTest.java │   │   ├── [4.0K] qrcode │   │   │   └── [ 874] QrCodeUtilTest.java │   │   ├── [4.0K] ssh │   │   │   └── [ 640] JschUtilTest.java │   │   └── [4.0K] template │   │   ├── [1.0K] BeetlUtilTest.java │   │   └── [3.4K] TemplateUtilTest.java │   └── [4.0K] resources │   ├── [3.3K] beetl.properties │   ├── [4.0K] config │   │   └── [1.5K] mail.setting │   ├── [4.0K] example │   │   ├── [3.4K] beetl-example.properties │   │   ├── [1.5K] mail-example.setting │   │   └── [1.5K] velocity-example.vm │   └── [4.0K] templates │   ├── [ 13] beetl_test.btl │   ├── [ 13] freemarker_test.ftl │   ├── [ 30] rythm_test.tmpl │   └── [ 11] velocity_test.vtl ├── [4.0K] hutool-http │   ├── [1.2K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] cn │   │   └── [4.0K] hutool │   │   └── [4.0K] http │   │   ├── [2.1K] ContentType.java │   │   ├── [4.9K] GlobalHeaders.java │   │   ├── [3.3K] Header.java │   │   ├── [ 18K] HTMLFilter.java │   │   ├── [5.7K] HtmlUtil.java │   │   ├── [6.7K] HttpBase.java │   │   ├── [ 15K] HttpConnection.java │   │   ├── [ 759] HttpException.java │   │   ├── [ 28K] HttpRequest.java │   │   ├── [ 12K] HttpResponse.java │   │   ├── [4.0K] HttpStatus.java │   │   ├── [ 28K] HttpUtil.java │   │   ├── [ 169] Method.java │   │   ├── [ 219] package-info.java │   │   ├── [4.0K] ssl │   │   │   ├── [ 920] AndroidSupportSSLFactory.java │   │   │   ├── [2.5K] CustomProtocolsSSLFactory.java │   │   │   ├── [ 614] DefaultTrustManager.java │   │   │   ├── [ 78] package-info.java │   │   │   ├── [3.2K] SSLSocketFactoryBuilder.java │   │   │   └── [ 352] TrustAnyHostnameVerifier.java │   │   ├── [3.9K] Status.java │   │   └── [4.0K] webservice │   │   ├── [ 107] package-info.java │   │   └── [3.8K] SoapRequest.java │   └── [4.0K] test │   └── [4.0K] java │   └── [4.0K] cn │   └── [4.0K] hutool │   └── [4.0K] http │   ├── [4.0K] test │   │   ├── [1.4K] DownloadTest.java │   │   ├── [2.4K] HtmlUtilTest.java │   │   ├── [2.5K] HttpRequestTest.java │   │   ├── [7.8K] HttpUtilTest.java │   │   ├── [1.4K] RestTest.java │   │   └── [1.2K] UploadTest.java │   └── [4.0K] webservice │   └── [ 578] SoapRequestTest.java ├── [4.0K] hutool-json │   ├── [ 771] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] cn │   │   └── [4.0K] hutool │   │   └── [4.0K] json │   │   ├── [ 11K] InternalJSONUtil.java │   │   ├── [ 16K] JSONArray.java │   │   ├── [ 777] JSONException.java │   │   ├── [2.9K] JSONGetter.java │   │   ├── [4.7K] JSON.java │   │   ├── [1.5K] JSONNull.java │   │   ├── [ 734] JSONObjectIter.java │   │   ├── [ 22K] JSONObject.java │   │   ├── [3.5K] JSONStrFormater.java │   │   ├── [ 393] JSONString.java │   │   ├── [ 896] JSONSupport.java │   │   ├── [10.0K] JSONTokener.java │   │   ├── [ 19K] JSONUtil.java │   │   ├── [ 107] package-info.java │   │   ├── [9.5K] XML.java │   │   └── [7.2K] XMLTokener.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] cn │   │   └── [4.0K] hutool │   │   └── [4.0K] json │   │   ├── [2.7K] JSONArrayTest.java │   │   ├── [3.8K] JSONConvertTest.java │   │   ├── [8.6K] JSONObjectTest.java │   │   ├── [ 953] JSONStrFormaterTest.java │   │   ├── [4.1K] JSONUtilTest.java │   │   ├── [1.2K] ParseBeanTest.java │   │   └── [4.0K] test │   │   └── [4.0K] bean │   │   ├── [ 292] ADT.java │   │   ├── [ 204] Data.java │   │   ├── [1.4K] ExamInfoDict.java │   │   ├── [1.3K] Exam.java │   │   ├── [ 972] JsonRootBean.java │   │   ├── [ 20K] PerfectEvaluationProductResVo.java │   │   ├── [ 245] Price.java │   │   ├── [1.4K] ProductResBase.java │   │   ├── [2.2K] ResultVO.java │   │   ├── [ 349] Seq.java │   │   ├── [ 755] UserA.java │   │   ├── [ 463] UserB.java │   │   ├── [ 462] UserC.java │   │   ├── [2.0K] UserInfoDict.java │   │   ├── [ 910] UserInfoRedundCount.java │   │   └── [ 271] UserWithMap.java │   └── [4.0K] resources │   ├── [2.6K] evaluation.json │   └── [6.1K] exam_test.json ├── [4.0K] hutool-log │   ├── [2.2K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] cn │   │   └── [4.0K] hutool │   │   └── [4.0K] log │   │   ├── [ 269] AbstractLocationAwareLog.java │   │   ├── [1.3K] AbstractLog.java │   │   ├── [4.0K] dialect │   │   │   ├── [4.0K] commons │   │   │   │   ├── [4.4K] ApacheCommonsLog4JLog.java │   │   │   │   ├── [1008] ApacheCommonsLogFactory.java │   │   │   │   ├── [4.6K] ApacheCommonsLog.java │   │   │   │   └── [ 126] package-info.java │   │   │   ├── [4.0K] console │   │   │   │   ├── [ 492] ConsoleLogFactory.java │   │   │   │   ├── [4.1K] ConsoleLog.java │   │   │   │   └── [ 110] package-info.java │   │   │   ├── [4.0K] jdk │   │   │   │   ├── [1.5K] JdkLogFactory.java │   │   │   │   ├── [5.9K] JdkLog.java │   │   │   │   └── [ 102] package-info.java │   │   │   ├── [4.0K] log4j │   │   │   │   ├── [ 558] Log4jLogFactory.java │   │   │   │   ├── [4.2K] Log4jLog.java │   │   │   │   └── [ 98] package-info.java │   │   │   ├── [4.0K] log4j2 │   │   │   │   ├── [ 577] Log4j2LogFactory.java │   │   │   │   ├── [6.0K] Log4j2Log.java │   │   │   │   └── [ 100] package-info.java │   │   │   ├── [ 105] package-info.java │   │   │   ├── [4.0K] slf4j │   │   │   │   ├── [ 98] package-info.java │   │   │   │   ├── [1.7K] Slf4jLogFactory.java │   │   │   │   └── [7.4K] Slf4jLog.java │   │   │   └── [4.0K] tinylog │   │   │   ├── [ 102] package-info.java │   │   │   ├── [ 558] TinyLogFactory.java │   │   │   └── [5.0K] TinyLog.java │   │   ├── [2.0K] GlobalLogFactory.java │   │   ├── [4.0K] level │   │   │   ├── [ 680] DebugLog.java │   │   │   ├── [ 680] ErrorLog.java │   │   │   ├── [ 670] InfoLog.java │   │   │   ├── [ 445] Level.java │   │   │   ├── [ 121] package-info.java │   │   │   ├── [ 680] TraceLog.java │   │   │   └── [ 670] WarnLog.java │   │   ├── [ 767] LocationAwareLog.java │   │   ├── [6.0K] LogFactory.java │   │   ├── [1.0K] Log.java │   │   ├── [ 241] package-info.java │   │   └── [8.0K] StaticLog.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] cn │   │   └── [4.0K] hutool │   │   └── [4.0K] log │   │   └── [4.0K] test │   │   ├── [ 818] ConsoleLogTest.java │   │   ├── [3.0K] CustomLogTest.java │   │   ├── [ 582] LogTest.java │   │   └── [ 266] StaticLogTest.java │   └── [4.0K] resources │   ├── [3.3K] log4j2.xml │   ├── [ 267] log4j.properties │   ├── [ 449] logback.xml │   ├── [2.3K] logging.properties │   └── [ 684] tinylog.properties ├── [4.0K] hutool-poi │   ├── [1.5K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] cn │   │   └── [4.0K] hutool │   │   └── [4.0K] poi │   │   ├── [4.0K] excel │   │   │   ├── [4.0K] cell │   │   │   │   ├── [ 391] CellEditor.java │   │   │   │   ├── [9.2K] CellUtil.java │   │   │   │   ├── [ 301] CellValue.java │   │   │   │   ├── [ 362] FormulaCellValue.java │   │   │   │   └── [ 116] package-info.java │   │   │   ├── [4.0K] editors │   │   │   │   ├── [ 482] NumericToIntEditor.java │   │   │   │   ├── [ 109] package-info.java │   │   │   │   └── [ 467] TrimEditor.java │   │   │   ├── [6.4K] ExcelBase.java │   │   │   ├── [4.1K] ExcelPicUtil.java │   │   │   ├── [ 14K] ExcelReader.java │   │   │   ├── [ 15K] ExcelUtil.java │   │   │   ├── [ 24K] ExcelWriter.java │   │   │   ├── [ 120] package-info.java │   │   │   ├── [2.0K] RowUtil.java │   │   │   ├── [4.0K] sax │   │   │   │   ├── [ 864] AbstractExcelSaxReader.java │   │   │   │   ├── [1.3K] CellDataType.java │   │   │   │   ├── [9.6K] Excel03SaxReader.java │   │   │   │   ├── [ 11K] Excel07SaxReader.java │   │   │   │   ├── [1.7K] ExcelSaxReader.java │   │   │   │   ├── [4.3K] ExcelSaxUtil.java │   │   │   │   ├── [4.0K] handler │   │   │   │   │   ├── [ 124] package-info.java │   │   │   │   │   └── [ 390] RowHandler.java │   │   │   │   └── [ 109] package-info.java │   │   │   ├── [4.0K] style │   │   │   │   ├── [ 157] Align.java │   │   │   │   ├── [ 117] package-info.java │   │   │   │   └── [5.2K] StyleUtil.java │   │   │   ├── [5.0K] StyleSet.java │   │   │   └── [3.1K] WorkbookUtil.java │   │   ├── [4.0K] exceptions │   │   │   ├── [ 90] package-info.java │   │   │   └── [ 825] POIException.java │   │   ├── [ 335] package-info.java │   │   └── [1.2K] PoiChecker.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] cn │   │   └── [4.0K] hutool │   │   └── [4.0K] poi │   │   └── [4.0K] test │   │   ├── [ 387] CellUtilTest.java │   │   ├── [5.3K] ExcelReadTest.java │   │   ├── [2.5K] ExcelSaxReadTest.java │   │   └── [7.4K] ExcelWriteTest.java │   └── [4.0K] resources │   ├── [ 24K] aaa.xls │   ├── [ 11K] aaa.xlsx │   ├── [8.8K] alias.xlsx │   ├── [9.8K] blankAndDateTest.xlsx │   └── [ 22K] priceIndex.xls ├── [4.0K] hutool-script │   ├── [ 781] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] cn │   │   └── [4.0K] hutool │   │   └── [4.0K] script │   │   ├── [4.1K] FullSupportScriptEngine.java │   │   ├── [3.4K] JavaScriptEngine.java │   │   ├── [ 150] package-info.java │   │   ├── [3.6K] ScriptRuntimeException.java │   │   └── [2.8K] ScriptUtil.java │   └── [4.0K] test │   └── [4.0K] java │   └── [4.0K] cn │   └── [4.0K] hutool │   └── [4.0K] script │   └── [4.0K] test │   └── [ 633] ScriptUtilTest.java ├── [4.0K] hutool-setting │   ├── [ 937] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] cn │   │   └── [4.0K] hutool │   │   └── [4.0K] setting │   │   ├── [7.2K] AbsSetting.java │   │   ├── [4.0K] dialect │   │   │   ├── [ 130] package-info.java │   │   │   └── [ 13K] Props.java │   │   ├── [5.3K] GroupedMap.java │   │   ├── [8.3K] GroupedSet.java │   │   ├── [ 214] package-info.java │   │   ├── [4.0K] profile │   │   │   ├── [ 967] GlobalProfile.java │   │   │   ├── [ 130] package-info.java │   │   │   └── [3.9K] Profile.java │   │   ├── [ 15K] Setting.java │   │   ├── [6.3K] SettingLoader.java │   │   ├── [ 809] SettingRuntimeException.java │   │   └── [1.2K] SettingUtil.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] cn │   │   └── [4.0K] hutool │   │   └── [4.0K] setting │   │   └── [4.0K] test │   │   ├── [1.0K] PropsTest.java │   │   ├── [1.6K] SettingTest.java │   │   └── [ 327] SettingUtilTest.java │   └── [4.0K] resources │   ├── [4.0K] example │   │   ├── [ 402] example.set │   │   ├── [ 837] example.setting │   │   └── [ 225] group-set-example.set │   ├── [ 641] test.properties │   └── [ 651] test.setting ├── [ 650] hutool.sh ├── [4.0K] hutool-system │   ├── [ 788] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] cn │   │   └── [4.0K] hutool │   │   └── [4.0K] system │   │   ├── [1.4K] HostInfo.java │   │   ├── [8.5K] JavaInfo.java │   │   ├── [6.9K] JavaRuntimeInfo.java │   │   ├── [2.1K] JavaSpecInfo.java │   │   ├── [2.5K] JvmInfo.java │   │   ├── [2.1K] JvmSpecInfo.java │   │   ├── [ 12K] OsInfo.java │   │   ├── [ 160] package-info.java │   │   ├── [1.6K] RuntimeInfo.java │   │   ├── [ 12K] SystemUtil.java │   │   └── [3.5K] UserInfo.java │   └── [4.0K] test │   └── [4.0K] java │   └── [4.0K] cn │   └── [4.0K] hutool │   └── [4.0K] system │   └── [ 349] SystemUtilTest.java ├── [ 11K] LICENSE.txt ├── [4.6K] pom.xml └── [6.1K] README.md 383 directories, 1040 files
Shenlong Bot has cached this for you
Remarks
    1. It is advised to access via the original source first.
    2. If the original source is unavailable, please email f.jinxu#gmail.com for a local snapshot (replace # with @).
    3. Shenlong has snapshotted the POC code for you. To support long-term maintenance, please consider donating. Thank you for your support.