Commit Graph

211 Commits

Author SHA1 Message Date
35c77f6093
perf: 优化 Artifact 的判断条件.
根据相关文档[1], baseVersion 和 Version 不需要同时判断, 只需要单独判断 Version 即可确认版本是否符合.
另外, 如果 Version 不符, 那么 isSnapshot 就没有必要判断(不可能出现 Version 相同的情况下, 一个是快照版, 一个是发布版的情况), 故移除对 baseVersion 和 isSnapshot 的检查.
另外, Properties 属于 Aether 内部的非持久化信息交换方式, 不是必须纳入检查的项目, 故新增参数用于选择是否检查 Properties 是否相同.
------------------------------------
[1]: https://community.sonatype.com/t/what-is-the-differences-between-maven-baseversion-and-maven-version/2937
2022-06-15 02:18:01 +08:00
7e48f4bf0b
build(test): 增加 Kover 测试覆盖率插件, 升级 Mockk 依赖项版本(1.12.3 -> 1.12.4).
Kover 是 Kotlin 官方为弥补 Kotlin 不能使用 Jacoco 所推出的替代品, 目前使用上没有问题.
顺便更新一下 Mockk 版本.
2022-06-15 01:20:35 +08:00
9c05726849
refactor(config): 改进配置读取错误时输出的错误信息.
改进后的信息有助于让用户了解到底发生了什么, 可帮助用户找到出错的配置文件并修复错误的配置格式.
2022-06-11 16:19:08 +08:00
ac0a398afc
release: 发布 0.3.1 版本. 2022-06-07 00:27:20 +08:00
145e5a2141
build: 暂时将发布仓库迁移到 Kuku 的仓库.
由于私有仓库所在的服务器出现问题, 所以暂时将仓库改到 Kuku 的那边.
在此感谢 Kuku 提供仓库!
2022-06-07 00:25:50 +08:00
b5c85e213b
test: 完善序列化器的单元测试.
目前经测试, 已完善到 100% 覆盖率.
2022-05-19 23:54:27 +08:00
746221a085
feat(config): 简化凭证配置过程.
由于先前的配置过程较为麻烦, 故将凭证配置简化为只有用户名和密码.
2022-05-19 23:53:25 +08:00
24f34aa27f
refactor: 调整 checkJsonKey 的所在类, 以便于编写测试用例.
通过调整所在类, 可更好的在单元测试中获取方法对象, 进行测试调用.
2022-05-19 18:20:46 +08:00
31366575a9
test: 补充部分序列化单元测试.
补充一部分测试内容.
2022-05-19 17:55:36 +08:00
37c3275bb6
fix(config): 修复因 Maven 仓库配置中未包括 layout 属性导致解析错误的问题.
当 Maven 仓库采用 JsonObject 形式配置, 且未配置 "layout" 属性时, 将会引发 NPE,
该改动已修复该问题.
2022-05-19 16:54:47 +08:00
72e26bd677
fix(config): 更改 MavenRepositoryConfig.proxy 的默认值.
防止因默认值导致出现错误的代理配置, 故将默认值更改为无代理(null).
2022-05-19 16:43:25 +08:00
9aab3c2a24
feat(config): 将代理类型为 null 的情况视为不使用代理.
为简化用户配置难度, 关闭代理可选择将 type 设为 null, 来表示不需要使用代理.
2022-05-19 15:46:18 +08:00
cac055bb08
test: 完善 AppPaths 中对 BOT_DATA_PATH 环境变量的测试流程.
通过使用 System-Lambda 库, 补充 AppPaths 中对环境变量使用的测试.
2022-05-19 15:01:16 +08:00
efbb57f1f7
release: 发布 0.3.0 版本. 2022-05-18 15:58:22 +08:00
5e18149640
feat(config): 支持限定 Maven 仓库构件类型.
增加 Maven 仓库配置, 支持限定仓库可获取的构件发布类型(发布或快照).
此改动有利于用户增加仓库约束, 防止意外使用错误的扩展包版本.
2022-05-18 15:57:49 +08:00
0a5313e94a
fix(extension): 修复 Maven 仓库扩展搜索器无法从第三方仓库获取扩展的问题.
由于在加载仓库配置时, 未设置仓库 Id, 导致 Aether 将仓库排除, 进而导致无法通过第三方仓库获取插件.
改动后, 将在未配置仓库 Id 的情况下, 为其生成一个 Id 名称.
2022-05-18 15:40:33 +08:00
a0afde52ac
fix(launch): 修复 Maven 本地仓库文件夹未初始化的问题.
由于 Maven 本地仓库文件夹未初始化, 将导致启动时发生错误, 现已修复该问题.
2022-05-17 19:59:04 +08:00
ef37f3b2d7
fix(bot): 修复因机器人命令列表为空而导致命令列表自动更新报错的问题.
当机器人因扩展加载失败时, 将无法正常执行命令更新操作, 故添加空命令检查以避免该问题.
2022-05-17 19:56:42 +08:00
6e59a9a5ac
build(publish): 增加构件签名过程.
增加构件 GPG 签名, 可保证构件未被修改, 增加构件可信度.
2022-05-17 19:26:26 +08:00
a44732a7f6
build: 将 Maven 发布仓库从 Github Repo 改为自建 Nexus 仓库.
由于 Github 自建仓库在 SNAPSHOT 版本上存在问题, 故修改发布配置以转移到自建的 Nexus 仓库.
2022-05-17 19:03:58 +08:00
95ad251826
refactor(utils): 移除不再使用的方法.
当初开发 Maven 仓库搜索器时意外提交的, 已经可以移除了.
2022-05-07 01:43:15 +08:00
8174f2a3a2
refactor(bot): 修正提示信息错误, 移除空父类方法调用.
修正了运行指标信息中的拼写错误, 移除对无操作父类方法的调用, 这么做可以明确表明只有子类实现了操作.
2022-05-07 01:37:21 +08:00
478480014a
perf(utils): 优化自动释放钩子的资源引用.
原本自动释放钩子对资源的引用, 可能会出现资源已经被关闭, 但仍然无法被 GC 回收的问题.
此次改动, 将会让钩子在关闭资源后, 将资源从列表中移除.
虽然, 自动释放钩子设计上仅会被 System.exit 动作触发, 但保险起见还是加上这个改动.
2022-05-05 16:52:29 +08:00
830f05c90a
refactor(utils): 加强 getPriority 方法的优先值判断.
加强优先级判断, 有利于后续使用时防止出现意外情况的问题.
顺便补充一手单元测试.
2022-05-05 16:13:48 +08:00
8be0978783
refactor: 更改 AppConfig 的获取方式, 以便于编写测试用例.
通过 Const 单例对象获取配置信息不利于编写测试用例, 所以改为利用参数的默认值来获取 Const 的 config 对象.

Issue #5
2022-05-04 23:55:21 +08:00
ce613787f6
fix: 修正方法参数使用错误的问题.
MavenRepositoryConfig 的 toRemoteRepository 方法使用了参数默认值, 可能会导致意外使用常量的情况,
故移除 MavenRepositoryConfig.toRemoteRepository 的参数默认值.

Pull Request #6
2022-05-04 23:07:45 +08:00
2389d082f4
test(config): 优化对 defaultInitializer 方法的单元测试.
将 defaultInitializer 方法的反射获取次数减少为一次, 并在测试结束后恢复访问权设置.
2022-05-04 22:36:35 +08:00
27f54c3c36
test(config): 补充一部分 AppPaths 的单元测试项目.
补充了针对 AppPaths.defaultInitializer() 和 AppPaths.DATA_ROOT 的单元测试项.
其他的有待补充.
2022-05-04 02:00:01 +08:00
7b985ce325
refactor: 将十六进制转换代码迁移到 Kotlin.
将 ByteUtils 的实现改用 Kotlin 代码做, 移除 ByteUtils.
另外, 本次修改同时修正了方法名错误的问题(hax 改成 hex), 并补充了单元测试.
2022-05-04 00:38:30 +08:00
77b7a7cd08
feat(launch): 对配置中没有启用任何机器人的情况输出警告.
增加对没有启用任何机器人时候的一个警告信息, 以防止被误认为无响应退出.
2022-05-02 02:20:19 +08:00
e8b746b3f8
feat(config): 第一次运行将提醒用户更改配置文件.
之前忘记添加这个提醒了, 首次运行的时候, `config.json` 和 `bot.json` 是不存在的, 所以根据这两个文件的存在与否, 来判定并提醒用户更改配置文件.
2022-05-02 02:18:23 +08:00
d24572a4f3
refactor(config): 修改 AppConfig 的获取方式, 便于编写测试用例.
通过 Const 单例对象获取配置信息不利于编写测试用例, 所以改为利用参数的默认值来获取 Const 的 config 对象.

Issue #5
2022-05-01 23:54:22 +08:00
f11290c73d
feat: 可以覆盖 Maven 中央仓库配置.
原本设计是无论配置文件中是否带有 Maven 中央仓库, 都会添加 Maven 中央仓库进去, 这样可能会覆盖用户的仓库配置.
新改动将检查配置中是否添加了 Maven 中央仓库配置来决定是否补充 Maven 中央仓库.
2022-05-01 23:09:44 +08:00
1f2ab0f9b1
fix(extension): 修复搜索器错误日志不包括异常信息.
意外漏掉了这个错误信息, 目前已补充, 以方便寻找问题.
2022-05-01 00:09:28 +08:00
d14ef9de36
fix: 修复Maven 本地仓库文件夹未初始化的问题.
当本地仓库文件夹未初始化时, 将导致文件写入失败, 已修复该问题.
2022-04-30 21:12:36 +08:00
3e51327ed7
release: 紧急更新 0.2.1 版本. 2022-04-22 18:16:33 +08:00
93cf5c4e2f
fix: 修复因文件访问比初始化早而导致的启动错误问题.
由于 Launcher 比 initialFiles 更早的执行, 调用 Const 导致更早的访问了未初始化的文件, 导致第一次启动会出现错误.
改动中将 Launcher 移入 main 方法不会有影响, 相比于在 AppPaths.<init> 中初始化会更安全.
2022-04-22 18:15:30 +08:00
e12f858690
release: 发布 0.2.0 版本. 2022-04-20 17:37:03 +08:00
3e99d7d033
fix(example): 修复 Reply 判断条件不充分的问题.
由于条件判断不充分, 导致运行时可能会出现 NPE 的问题.
2022-04-20 16:35:02 +08:00
8131f41313
feat(extension): 初步添加一些工具方法.
添加 AbilityBots 类, 向开发者提供一些"工具"方法, 该方法将有助于插件的功能开发.
2022-04-19 00:17:57 +08:00
270e744bcf
build: 更新并增加 Kotlin 相关依赖项.
由于不明确的 Kotlin 运行时机制, 需直接向框架本身添加 Kotlin 标准库依赖, 以解决潜在的 Kotlin 反射支持问题.
不可能因运行时问题就继续向框架添加不相关的依赖, 所以该问题将继续调查.
2022-04-19 00:08:24 +08:00
d84465ebd9
build: 更新 TelegramBots 依赖项.
更新该依赖项以支持新版本的 Telegram API.
请注意: TelegramBots 已将弃用类移除.
2022-04-18 23:56:30 +08:00
18bc3a8d48
refactor(logging): 补充两个日志屏蔽.
屏蔽两个日志量较大的类, 日志量过多会影响 Debug.
2022-04-18 23:54:29 +08:00
2b88134207
refactor(extension): 移除 ScalaBotExtension 类.
该类的作用不大, 实现的细节可以由开发者自行实现(或许会设计地更好), 故移除该类.

DEPRECATED: 移除 ScalaBotExtension 类

由于该抽象类设计过于简单, 且并未达到其存在的预期目的(简化开发扩展的复杂性), 故移除本类.
开发者应将扩展类由继承 ScalaBotExtension 更改为实现 AbilityExtension 类, `getSender(): MessageSender` 和 `getDBContext():DBContext` 方法以及 `bot`(BaseAbilityBot) 字段应手动添加, 并根据需要通过构造方法获取并存储.
2022-04-15 00:18:59 +08:00
142eddfa28
refactor(extension): Maven 本地仓库路径将会相对于 DATA_ROOT 路径.
为防止混淆配置意义, 方便数据转移, 将 Maven 本地仓库路径调整为相对 DATA_ROOT 目录, 绝对路径不受影响.
2022-04-14 22:38:51 +08:00
64849adfab
fix(config): 修复潜在的未初始化异常.
原设计中, PathConst 类会晚于 AppPaths 类中各枚举值的初始化, 进而导致 DATA_ROOT 获取 PathConst 中字段时出现未初始化异常的情况.
由于 AppPaths 设计为在运行时生成并获取路径, 所以该文件不会对 AppPaths 造成太大影响, 但 Kotlin 已决定在未来版本明确该问题为错误(Error), 所以将 PathConst 由伴生对象修改为单例对象以避免该问题.
2022-04-14 21:46:01 +08:00
29bd12a8dd
feat(bot): 增加 accountId 属性.
增加该属性有利于其他组件对机器人账户进行标记.
2022-04-10 16:28:20 +08:00
9cdf10ccc2
refactor(launch): 增强关闭阶段的鲁棒性.
增加异常捕获, 防止由于部分 bot 发生异常而无法关闭其余机器人.
2022-04-10 16:27:20 +08:00
4210efef3b
refactor(config): 改进了数据目录的获取方式.
补充了通过 user.dir 获取目录路径的方式.
2022-04-10 16:26:13 +08:00
bc0f3be32c
docs(extension): 补充参数说明.
补充 shareDataFolder 参数说明, 便于扩展开发者根据需要调整数据存取.
2022-03-29 10:06:25 +08:00