Releases: opensolon/solon
Releases · opensolon/solon
Solon 2.2.0
- 概要:
- 1.吸收近期使用需求,增强内核能力(完善 bean 的生命周期;调整 plugin 仅定位为 spi;)
- 2.兼容的同时增强品牌个性化(增加 @SolonMain,@ProxyComponent 注解)
- 3.增加 apt 代理实现,增加 apt 生成 native 元信息配置的机制(为 native 简便打包,埋下好的基础 )
- 新增 solon.proxy 插件
- 新增 solon.proxy.apt 插件
- 新增 solon.graalvm 插件
- 新增 solon.graalvm.apt 插件
- 调整 BeanInvocationHandler 内部代码,简化并增加 AptProxy 调用
- 调整 dateAsFormat 配置增加对 LocalDate 和 LocalDateTime 的支持
- 调整 Plugin::Init 标为弃用, 并由 InitializingBean 接口接替
- 调整 Plugin 接口不再做为组件形态,有生命周期需求的可改为 LifecycleBean 接口
- 调整 Plugin Spi 实例化改为 Bean 模式,之前为不能注入的 New 模式
- 调整 AopContext 标注 beanOnloaded 为弃用。事件概念调整为容器内部的生命周期概念
- 调整 AopContext 增加 start(),stop(),lifecycle() 接口;强化生命周期管理概念
- 调整 Lifecycle 增加可异常选择,并标注 @FunctionalInterface
- 调整 调整打包时主函数的提示信息
- 增加 应用属性配置内部引用增加默认值支持及环境变量引用
- 增加 @ProxyComponent 注解,使用时强依赖于 solon.proxy 插件
- 增加 @SolonMain 主解,作为 apt 生成 Graalvm Native 元信息配置的入口
- 增加 apt 代理实现方式(做为 asm 实现的补充),为全功能实现 Graalvm Native 打包提供支持
- 增加 InitializingBean 接口
- 增加 LifecycleBean 接口
- 增加 ClassUtil 工具类
- sqltoy 升级为 5.2.37
Solon 2.1.4
主要更新内容:
- 新增 bean-searcher-solon-plugin 插件
- 插件 solon-maven-plugin 增加 jdk19 支持
- 插件 snowflake-id-solon-cloud-plugin 增加 workId 可配置
- 插件 solon.test 增加 AbstractHttpTester 类,名字比 HttpTestBase 顺眼些
- 插件 solon.test Http 测试器 增加 http(int port) 接口,方便本机所有http端口测试(比如 mock server)
- 插件 solon-test-junit4 增加 mockito-core 依赖,方便 mock 测试
- 增加 新的类存在检测方式 Utils.hasClass(() -> AuthUtil.class)
- 修复 activerecord-solon-pllugin::修复在 ActiveRecordPlugin::start 前不能注入 DbPro 的问题
- 修复 solon.cache.redisson 默认缓存时间没有生效的问题,及缓存键头没用起来的问题
- 调整 solon.cache.jedis 缓存键以':'为间隔
- 调整 Props::getByParse 增加默认值支持
- 调整 Props::getByExpr 增加默认值支持
- 调整 Condition 注解重新规范条件属性名
- 调整 AopContext 增加 Condition::onMissingBean 条件属性支持
- 优化 solon.test 排除只读类成为代理类
- 优化 Gateway 根据路由记录数量,自动切换主处理
- 优化 http 输出长度模式 与 chunked模式 的自动切换
- 升级 mockito 为 4.11.0
- 升级 beetl 为 3.14.1.RELEASE
- 升级 sqltoy 为 5.2.34
- 升级 snack3 为 3.2.54 ,支持 kotlin data
同时发布 Solon Initializr:
Solon 2.1.2
- 新增 solon.health.detector 插件
- 新增 activemq-solon-cloud-plugin 插件
- 新增 solon.logging.log4j2(复制于 log4j2-solon-plugin)
- 新增 solon.logging.logback(复制于 logback-solon-plugin)
- 插件 beetlsql-solon-plugin 升级 beetlsql 为 3.20.0
- 插件 sqltoy-solon-plugin 升级 sqltoy 为 5.2.32
- 插件 dbvisitor-solon-plugin 升级 dbvisitor 为 5.2.1
- 插件 sa-token-solon-plugin 添加 SaJsonTemplate 实现类
- 增加 @condition 注解,提供Com类与Bean函数的过滤支持!!!
- 增加 AppPrestopEndEvent,AppPrestopEndEvent 事件!!!
- 增加 配置元信息 solon-configuration-metadata.json 规范与支持
- 增加 EventBus.pushTry 接口
- 增加 solon.view.beetl 对 -debug=1 的支持
- 增加 solon.view.enjoy 对 -debug=1 的支持
- 增加 ResourceUtil 工具类,提供资源路径表达式分析能力
- 增强 detector-solon-plugin 扩展能力
- 增强 mybatis-solon-plugin 的 typeAliases,typeHandlers,mappers 表达式配置能力
- 调整 local-solon-cloud-plugin 本地文件路径规范
- 优化 安全停止与延时的配置(增加新的启动参数:stop.safe,和应用配置:solon.stop.safe)
- 修复 mybatis-solon-plugin 与 solon-maven-plugin 打包插件的兼容性问题
Solon 2.0.0
1、纪年
- v0: 2018 ~ 2019 (2y)
- v1: 2020 ~ 2022 (3y)
- v2: 2023 ~
2、v1.x 升到 v2.x 提醒
v2.x 的六点规划,其中四点已经在v1.x完成了(为了过度更自然)。升级是个自然的过程,只是删除了v1.x积累的弃用代码;以干净的资态,迎接新的进化。具体升级,可能会有“显示”的编译错误,调整部分代码即可:
- 提醒1:之前没有使用弃用接口的,可以直接升级
- 提醒2:有使用弃用接口的。建议先升级到 1.12.4;替换弃用代码后,再升级到 2.0.0(也可以直接升级,按编译错误提示修改)
v2.x 未完成的二点规划:
- 提供便利的AOT编译帮助
- 增加响应式支持(在原有体验不变的情况下)
3、v2.0.0 (主要删除弃用代码)
打磨多年,总会有早期想不周到的地方。(像修仙小说那样,升个大级)去除杂质,重新进化:
- 调整 solon//
- 删降 Aop;由 Solon.context() 替代
- 删除 Bean:attr,Component:attr
- 删除 BeanLoadEndEvent,PluginLoadEndEvent;由 AppBeanLoadEndEvent,AppPluginLoadEndEvent 替代
- 删除 Utils.parallel()...等几个弃用接口;由 RunUtil 替代
- 删除 Solon.global();由 Solon.app() 替代
- 删除 SolonApp::port();由 Solon.cfg().serverPort() 替代
- 删除 SolonApp::enableSafeStop();由 Solon.cfg().enableSafeStop() 替代
- 删作 AopContext::getProps();由 ::cfg() 替代
- 删除 AopContext::getWrapAsyn();由 ::getWrapAsync() 替代
- 删除 AopContext::subWrap();由 ::subWrapsOfType() 替代
- 删除 AopContext::subBean();由 ::subBeansOfType() 替代
- 删除 AopContext::getBeanAsyn();由::getBeanAsync() 替代
- 删除 Solon.cfg().version();由 Solon.version() 替代
- 删除 EventBus::pushAsyn();由 pushAsync() 替代
- 删除 PrintUtil::debug(),::info() 等...;由 LogUtil 替代
- 删除 @mapping::before,after,index 属性;由 @before,@after 或 RouterInterceptor 或 Solon.app().before(),after() 替代
- 删除 "solon.profiles.active" 应用配置(只在某版临时出现过);由 "solon.env" 替代
- 删除 "solon.extend.config" 应用配置(只在某版临时出现过);由 "solon.config" 替代
- 删除 "solon.encoding.request" 应用配置(只在某版临时出现过);由 "server.request.encoding" 替代
- 删除 "solon.encoding.response" 应用配置(只在某版临时出现过);由 "server.request.response" 替代
-
- 调整 DownloadedFile,UploadedFile 字段改为私有;由属性替代
- 调整 solon.i18n//
- 删除 I18nBundle::toMap();由 ::toProp() 替代
- 调整 solon.web.cors//
- 删除 ..extend.cores 包;由 ..web.cors 包替代
- 调整 solon.cloud//
- 删除 Media::bodyAsByts()..;由 ::bodyAsBytes() 替代
- 调整 solon.cloud.httputils//
- 删除 cloud.HttpUtils::asShortHttp()..;由 ::timeout() 替代
- 调整 solon.test//
- 删除 test.HttpUtils::exec2()..;由 ::execAsCode()..替代
- 调整 solon.boot//
- 删除 SessionStateBase/cookie[SOLONID2]
- 调整 mybatis-solon-plugin//
- 删除 org.apache.ibatis.ext.solon.Db;由 ..solon.annotation.Db 替代
- 调整 beetlsql-solon-plugin//
- 删除 org.beetl.sql.ext.solon.Db;由 ..solon.annotation.Db 替代
- 调整 sa-token-solon-plugin//
- 删除 SaTokenPathFilter 类,由 SaTokenFilter 替代
- 删除 SaTokenPathInterceptor 类,由 SaTokenInterceptor 替代
- 删除插件 httputils-solon-cloud-plugin;由 solon.cloud.httputils 替代
- 删除插件 solon.extend.stop;由 solon.web.stop 替代
- 删除插件 solon.extend.async;由 solon.scheduling 替代
- 删除插件 solon.schedule;由 solon.scheduling.simple 替代
- 删除插件 solon.extend.retry
- 删除插件 solon.extend.jsr330
- 删除插件 solon.extend.jsr303
- 删除插件 solon.logging.impl;由 solon.logging.simple 替代
-
- 新增插件 powerjob-solon-plugin
- 新增插件 powerjob-solon-cloud-plugin(支持 solon cloud job 标准)
-
- 调整 solon.scheduling/JobManger 添加更多注册时检测
- 调整 solon.banner/banner.txt 自定义默认机制
- 调整 sa-token-solon-plugin/isPrint 处理机制
- 调整 sa-token-solon-plugin 增加对 sso,oauth2 两模块的适配
- 调整 nami 添加 ContentTypes 类,提供便利的 content-type 常量
Solon 1.12.4
- 新增 solon.web.stop 插件,替代 solon.extend.stop(原 host 配置,更名为 whitelist)
- 插件 local-solon-cloud-plugin 添加事件ACK、重试守护、自动延时、定时事件支持(无持久化,即重启数据丢失)
- 插件 solon.scheduling 添加 @EnableAsync 注解,用于控制异步是否启用
- 插件 solon.extend.async 标为弃用(由 solon.scheduling 替代)
- 插件 solon.extend.retry 标为弃用
- 插件 solon.schedule 标为弃用(由 solon.scheduling.simple 替代)
- 增加 solon.test 对单测类的包名检测,如果无包则异常提示
- 增加 solon.web.cors 基于路由拦截器的实现,及增强代码复用性
- 增加 MimeType.TEXT_JSON_VALUE 值(比 APPLICATION_JSON_VALUE 简短些)
- 增加 RunUtil 工具类,由 Util 部分接口分离
- 调整 solon.scheduling.simple 对固定频率与固定延时的处理
- 调整 solon.scheduling.quartz 对 name 的配置支持,及更多异常提醒
- 调整 quatz-solon-plugin 对 name 的配置支持
- 调整 quatz 相关适配增加 job group 的支持(使用 solon.app.name)
- 调整 solon 对包名检测的处理逻辑(保持也 solon.test 一样)
- 调整 solon 安全停止时间比较为 3:7
- 调整 在调整模式下才配置文件加载的打印,之前总是打印
Solon 1.12.3
- 修复 solon.test :: @testRollBack 事务回滚坏掉的问题(v1.12.0 出现的)
- 增加 RouterInterceptor::postResult 接口
- 增加 sa-token 拦截的新适配方式,旧的标为弃用
- 增加 sa-token-dao json 序列化适配(可有 base64 + json)
- 增加 solon.serialization json 适配插件的快捷配置支持
- 调整 安全停止时由 403 改为 503 状态码
- 升级 snack3 为 3.2.52
- 升级 dbvisitor 为 5.2.0
- 升级 fastjson2 为 2.0.23
Solon 1.12.2
- 增加 @propertysource 导入属性资源注解(以前只能用接口导入)
- 增加 RouterInterceptor 接口
- 增加 server.???.ioBound 是否为io密集型配置支持(默认为true)
- 增加 solon.app.safeStop 是否安全停止配置支持(之前只能用接口)
- 调整 water 的 /_run/msg 检测,将无参数情况视为健康检测
- 修复 water 适配不能同步更新与配置的问题,//由 1.11.5 添加 tag 支持引起的
- 升级 sa-token 为 1.34.0
- 升级 sqltoy 为 5.2.30
- 升级 water.client 为 2.9.3
Solon 1.12.1
- 新增 fastdfs-solon-cloud-plugin 插件
- 插件 file-s3-solon-plugin 增加内容大小获取
- 插件 aws-s3-solon-plugin 增加内容大小获取
- 增加 CloudFileService::exists(...) 和 CloudFileService::getTempUrl(...) 接口
- 增加 Meda::contentSize() 和 DownloadedFile::getContentSize() 接口
- 增加 Media::bodyAsBytes() 接口,旧的 Media::bodyAsByts() 标为弃用
- 增加 core 对启动类及包名的检测
- 增加 server.wrapHost, server.wrapPort 配置支持
Solon 1.12.0
- 新增 solon.test 插件
- 新增 solon-test-junit4 插件,相对 solon-test 只支持 junit4
- 新增 solon-test-junit5 插件,相对 solon-test 只支持 junit5
- 插件 sentinel-solon-cloud-plugin 控制台调试
- 插件 mybatis-solon-plugin 的 xml 配置增加 ** 表达式支持
- 调整 AopContext::getProps() 标为弃用,由 AopContext::cfg() 接替
- 调整 Plugin::init() 为 Plugin::init(AopContext); 为 solon cloud 热插拨增强支持 !!!
- 优化 action parameter 转换失败时的友好提示
- 优化 solon cloud 插件增加对热插拨的支持,以前只能用主程序的配置,现在可以用插件的配置
- 优化 forest-solon-plugin 重新深度适配,并支持 solon 的 upstream !!!
- 优化 liteflow-solon-plugin 重新深度适配 !!!
- 优化 solon-test 增加更多场景的并发单测支持 !!!
- 优化 sa-token-solon-plugin 解决不能自动注册多个 StpLogic 的问题
- 优化 core 全局 AopContext 由原来的静态变量,改为 SolonApp 的成员变量 !!!
- 优化 core 支持测试时多 SolonApp 运行和切换从而实现单测隔离效果 !!!
- 优化 core 增加 Utils.resolvePaths(expr),用于支持 /a/**/b/*.x 这种路径的解析
- 优化 core 调整 BeanWrap 的 hashCode 处理;并增加 beanWrapsSet 对 name 注册收集 !!!
Solon 1.11.6
- 新增 liteflow-solon-plugin 插件
- 新增 file-s3-solon-plugin 插件,是一个组合的 cloud file service
- 新增 solon.cloud.httputils 插件,用于替代 httputils-solon-cloud-plugin
- 新增 polaris-solon-cloud-plugin 插件,基于腾讯北极星适配
- 新增 nacos2-solon-cloud-plugin 插件
- 插件 nacos2-solon-cloud-plugin 增加 namespace 支持
- 插件 forest-solon-plugin 增加 BindingVar 支持
- 插件 sqltoy-solon-plugin 清除 @SQL、@param 注解
- 插件 solon-test 抽取公共处理,并增加 SolonTest::env 环镜配置
- 插件 solon.validation 优化 DecimalMax,DecimalMin,Max,Min,Length 处理(允许空跳过),并增加 Range 注解
- 取消 config.loadGroup, config.loadKey 配置
- 调整 Rollback 更名为 TestRollback,并转移到 solon-test
- 调整 EventBus:push 非异常事件,允许透传异常(从而支持事务回滚传导)
- 升级 sqltoy 为 5.2.28