Skip to content

Releases: opensolon/solon-java17

Solon Java17 v4.0.0

10 Jun 00:36

Choose a tag to compare

1、纪年

  • v0: 2018 ~ 2019 (2y)
  • v1: 2020 ~ 2022 (3y)
  • v2: 2023 ~ 2024 (2y)
  • v3: 2024 ~ 2026 (1.5y)
  • v4: 2026 ~

2、v3.x 升到 v4.x 提醒

  • 提醒1:之前没有使用弃用接口的,可以直接升级
  • 提醒2:有使用弃用接口的。建议先升级到 3.10.7;替换弃用代码后,再升级到 4.0.0

总体思考是:移除弃用方法或类。总体变化不大。其中,solon ai 体系变化较大(skill 概念改为 talent)

3、更新说明(更详细内容见后面的“附件”)

for solon 生态:

  • 新增 mcp-json-jackson2
  • 新增 solon-view-aifei-enjoy 插件
  • 新增 solon-cache-caffeine3 插件
  • 新增 solon-ai-talent-gateway(由 solon-ai-skill-restapi 和 solon-ai-skill-toolgateway 合并而来)
  • 新增 solon-ai-talent-mount 才能插件
  • 添加 solon ScopeLocal.getOr(Supplier) 方法
  • 添加 solon AppContext.resolvePlaceholders 方法
  • 添加 solon-config-snack4 开放属性序列化的 Options 定制支持
  • 添加 solon-flow FlowContext.data(), serData() 方法(vars, serVars 标为弃用)
  • 调整 solon-cache-caffeine 增加 md5 控制、默认时间、缓存头控制支持
  • 调整 solon-cache-xxx enableMd5key 默认为 false
  • 调整 solon Utils.annoAlias 标为弃用(由 Utils.valueOr 替代)
  • 移除 solon-flow FlowContext.model() 方法 //.vars()
  • 移除 solon-flow Link.condition 方法 //.when
  • 移除 solon-expression StandardContext 类
  • 修复 solon-serialization-snack4 Snack4StringSerializer.name 为 “snack4-json”
  • eggg 升为 1.1.3
  • snack4 升为 4.0.52
  • liquor 升为 1.6.8
  • socketd 升为 2.6.0
  • folkmq 升为 1.8.0
  • asm 升为 9.10
  • lombok 升为 1.18.46
  • slf4j 升为 2.0.18
  • log4j 升为 2.26.0
  • junit5 升为 5.14.4
  • hutool 升为 5.8.44
  • snakeyaml 升为 2.6
  • fastjson2 升为 2.0.62
  • jackson2 升为 2.21.4
  • gson 升为 2.14.0
  • redisson 升为 3.52.0
  • lettuce 升为 6.8.2.RELEASE
  • kafka 升为 3.9.2
  • reactor-netty-http 升为 1.3.5
  • netty 升为 4.1.134.Final
  • smartsocket 升为 2.0.0
  • smarthttp 升为 2.5.19
  • vert.x 升为 4.5.27
  • tomcat 升为 9.0.118
  • undertow 升为 2.2.39.Final
  • rocketmq5 升为 5.2.0
  • nacos3 升为 3.2.1
  • swagger 升为 1.6.16
  • swagger2 升为 2.2.50
  • undertow (for java17) 升为 2.3.24.Final
  • jetty (for java17) 升为 12.1.9
  • xxl-job-core3 (for java17) 升为 3.4.0
  • jackson3 (for java17) 升为 3.1.3
  • tomcat (for java17) 升为 11.0.22

for solon-ai 生成

  • 变更 solon skill “概念”改为 solon talent(避免与 agent skill 的冲突)
  • 新增 mcp-core(替换之前的 mcp-sdk,保持与官方相同命名)
  • 新增 mcp-json-jackson2
  • 新增 solon-ai-sandbox
  • 新增 solon-ai-mcp MCP_2025_11_25 协议支持(支持 ServerTransportSecurityValidator 签权)
  • 新增 solon-ai-talent-mount 才能插件(原 PoolManager 独立出来)
  • 添加 solon-ai-talent-openapi OpenApiSkill.removeApi 方法
  • 添加 solon-ai-talent-openapi ApiSource 超时配置支持
  • 添加 solon-ai-talent-gateway McpGatewaySkill 专门处理 mcp(ToolGatewaySkill 可以处理所有工具)
  • 添加 solon-ai-talent-cli TerminalTalent 系统级沙盒限制支持
  • 添加 solon-ai-core ChatOptions:httpCustomize 方法
  • 添加 solon-ai-core Talent::isEnabled 方法
  • 添加 solon-ai-core AiConfig::standard(替代 provider 之前的作用)
  • 添加 solon-ai-core ReActAgent::getModel 方法
  • 添加 solon-ai-agent ReActInterceptor.onReasonStart 事件方法
  • 添加 solon-ai-agent AgentTrace.getOriginalPrompt, getWorkingMemory 方法
  • 添加 solon-ai-agent AgentTrace.getRunId 方法
  • 添加 solon-ai-agent AgentChunk.getRunId 方法
  • 添加 solon-ai-agent TeamAgent 添加初心标记
  • 添加 solon-ai-agent ToolExchanger 类
  • 添加 solon-ai-mcp McpClientProvider allowedTools, disallowedTools 工具控制机制
  • 添加 solon-ai-harness bashAsyncEnabled 开关
  • 添加 solon-ai-harness HarnessEngine.removeApi 方法
  • 添加 solon-ai-harness HarnessProperties.mountPools 属性(替代 skillPools,后者标为弃用)
  • 添加 solon-ai-harness 用 McpGatewaySkill 替换 ToolGatewaySkill(更有争对性)
  • 优化 solon-ai-agent 初始化时(rest)添加快照持久化
  • 优化 solon-ai-harness AgentFactory edit 权限添加 readwrite 控制
  • 优化 solon-ai-agent ContextCompressionInterceptor 压缩时机(从 onObservation 改为 onReasonStart),并增加系统词大小
  • 优化 solon-ai-agent ContextCompressionInterceptor 增强上下文压缩拦截器中过期区 tool-use 原子序列的追溯保护,并完善文档注释
  • 优化 solon-ai-agent ContextCompressionInterceptor 算法,增加 tools token
  • 优化 solon-ai-dialect-openai OpenaiResponses 协议兼容性
  • 调整 solon-ai-core 取消 ChatConfig.reasoningFieldName 配置(这个配置不合理)
  • 调整 solon-ai-core 移除 SkillProvider 类
  • 调整 solon-ai-core 移除 toolAdd(Object) 方法(指向不明,容易出错)
  • 调整 solon-ai-core 移除 defaultToolAdd(Object) 方法(指向不明,容易出错)
  • 调整 solon-ai-agent 移除 toolAdd(Object) 方法(指向不明,容易出错)
  • 调整 solon-ai-agent 移除 defaultToolAdd(Object) 方法(指向不明,容易出错)
  • 调整 solon-ai-mcp McpClientProperties 默认不启用心跳(之前默认为 30 心跳一次)
  • 调整 solon-ai-mcp McpProviders 更名为 McpClientProviders
  • 调整 solon-ai-agent ActionChunk:ActionChunk 更名为 ObservationChunk;ActionStartChunk 更名为 ActionChunk
  • 调整 solon-ai-agent ReActInterceptor.onAction,onObservation: toolName,args,result 合并为 toolExchanger(并允许修改)
  • 调整 solon-ai-agent ReActInterceptor.onReason 更名为 onReasonEnd(和 onReasonStart 凑成一对)
  • 调整 solon-ai-agent ReActAgent.maxSteps 更名为 maxTurns(保持行业习惯)
  • 调整 solon-ai-agent SummarizationInterceptor 更名为 ContextCompressionInterceptor(更符合语义)
  • 调整 solon-ai-talent-cli PoolManager 实现细节,并添加 refresh(alias)
  • 调整 solon-ai-talent-cli 技能标识由 aliasPath 统一改为 name,并优化技能池加载逻辑及代码格式
  • 调整 solon-ai-talent-web WebfetchTool 更名为 WebfetchTalent; WebsearchTool 更名为 WebsearchTalent; CodeSearchTool 更名为 CodeSearchTalent
  • 调整 solon-ai-talent-diff ApplyDiffTool 更名为 ApplyDiffTalent;ApplyPatchTool 更名为 ApplyPatchTalent
  • 调整 solon-ai-harness HarnessEngine 打断与 HarnessProperties 关联(后者删除),避免耦合影响未来的调整
  • 调整 solon-ai-harness HarnessEngine 移除 mainModel 字段(减兴缓存麻烦)
  • 移除 solon-ai-skill-browser(包太大了,没必要)
  • 移除 solon-ai-skill-restapi (由 solon-ai-talent-gateway 替代)
  • 移除 solon-ai-skill-toolgateway (由 solon-ai-talent-gateway 替代)
  • 移除 mcp-sdk(由 mcp-core 替代)
  • 修复 solon-ai-mcp WebRxStreamableHttpTransport 没有 event 的消息会出错的问题(优化非规范兼容)
  • 修复 solon-ai-mcp WebRxStreamableHttpTransport 没有 contentType 的消息会出错的问题(优化非规范兼容)
  • 修复 solon-ai-agent ContextCompressionInterceptor 压缩后可能会引起 ToolMessage 无法对齐的问题
  • mcp-sdk 升为 1.1.3

4、附件:弃用配置移除对应表(要认真核对)

移除

应用或插件 移除配置名 替代配置名
solon-server server.session.state.domain server.session.cookieDomain
server.session.state.domain.auto server.session.cookieDomainAuto
solon-web-staticfiles solon.staticfiles.maxAge solon.staticfiles.cacheMaxAge
nacos2-solon-cloud-plugin solon.cloud.nacos2.* solon.cloud.nacos.*

5、附件:弃用插件移除对应表(要认真核对)

移除(以下插件已由项目官方仓库维护,或者直接使用即可)

移除插件 替代插件
solon-ai-skill-* solon-ai-talent-*
easy-trans-solon-plugin com.fhs-opensource:easy-trans-solon-plugin
sms4j-solon-plugin org.dromara.sms4j:sms4j-solon-plugin
beetlsql-solon-plugin com.ibeetl:sql-solon-plugin
dbvisitor-solon-plugin net.hasor:dbvisitor-solon
sqltoy-solon-plugin com.sagframe:sagacity-sqltoy-solon-plugin
mybatis-sqlhelper-solon-plugin com.github.fangjinuo.sqlhelper:sqlhelper-mybatis
mybatis-pagehelper-solon-plugin com.github.pagehelper:pagehelper
mybatis-plus-solon-plugin com.baomidou:mybatis-plus-solon-plugin
mybatis-plus-extension-solon-plugin 同上
mybatis-flex-solon-plugin com.mybatis-flex:mybatis-flex-solon-plugin
fastmybatis-solon-plugin net.oschina.durcframework:fastmybatis-solon-plugin
bean-searcher-solon-plugin cn.zhxu:bean-searcher-solon-plugin
mybatis-tkmapper-solon-plugin tk.mybatis:mapper-solon-plugin
sa-token-solon-plugin cn.dev33:sa-token-solon-plugin
sa-token-snack4 同上
sa-token-dao-redisson-jackson 同上
liteflow-solon-plugin com.yomahub:liteflow-solon-plugin
forest-solon-plugin com.dtflys.forest:forest-solon-plugin

6、附件:弃用注解或属性移除对应表(会有编译提醒)

移除注解或属性

应用或插件 弃用注解或属性 替代注解或属性
solon org.noear.solon.annotation::
@Bean:priority() @Condition:priority()
@Bean:injected() @Bean:autoInject()
solon-data org.noear.solon.data.annotation::
@Tran @Transaction
nami org.noear.nami.annotation::
@NamiBody:contentType() @NamiMapping:headers()

7、附件:Solon 生态弃用类或方法移除对应表(会有编译提醒)

  • solon 移除类或方法
应用或插件 移除类或方法名 替代类或方法名
solon 包(org.noear.solon
Solon:start(NvMap) /
SolonApp:add*() SolonApp:router():add*()
SolonApp:filter*() SolonApp:router():filter*()
SolonApp:get*() SolonApp:router():get*()
SolonApp:post*() SolonApp:router():post*()
SolonApp:head*() SolonApp:router():head*()
SolonApp:put*() SolonApp:router():put*()
SolonApp:patch*() SolonApp:router():patch*()
SolonApp:delete*() SolonApp:router():delete*()
SolonApp:socketd*() SolonApp:router():socketd*()
SolonApp:delete*() SolonApp:router():delete*()
SolonApp:converterManager() SolonApp:converters()
SolonApp:serializerManager() SolonApp:serializers()
SolonApp:renderManager() SolonApp:renders()
SolonApp:factoryManager() SolonApp:factories()
SolonApp:renderManager() SolonApp:renders()
SolonApp:chainManager() SolonApp:chains()
SolonProps:plugs*()...
Read more

Solon Java17 v3.10.0

23 Mar 22:58

Choose a tag to compare

  • jakarta.logback 升为 1.5.32
  • jackson3 升为 3.1.0

Solon Java17 v3.9.6

22 Mar 01:00

Choose a tag to compare

  • jakarta.logback 升为 1.5.32
  • jackson3 升为 3.1.0

Solon Java17 v3.9.0

26 Jan 01:31

Choose a tag to compare

  • 修复 solon.serialization.json.enumAsName: false 部分序列化框架不生效的问题
  • 优化 solon-serialization-jackson3 初始化处理

Solon Java17 v3.8.3

14 Jan 04:58

Choose a tag to compare

  • 添加 solon-server newVirtualThreadFactory 名字前缀支持
  • 调整 项目的默认 java 版本改为 11;需要 17 的模块则指定 17

Solon Java17 v3.8.0

23 Dec 16:31

Choose a tag to compare

  • 添加 solon-server-tomcat-jakarta ssl、vthread 支持
  • 添加 solon-server-undertow-jakarta jsp、ssl、vthread 支持
  • 添加 hibernate-jakarta-solon-plugin EntityManager 注入支持
  • 优化 solon-server-undertow-jakarta 请求大小控制
  • 优化 solon-web-servlet-jakarta 启用 ContextHolder:currentWith 替代 currentSet(兼容 ScopedValue 切换)
  • 修复 hibernate-jakarta-solon-plugin 无法自动建表的问题,修改SessionFactory初始化时机

http-server 情况汇总

插件 jsp ssl vthread
solon-server-tomcat-jakarta 1 1 1
solon-server-jetty-jakarta 1 1 1
solon-server-undertow-jakarta 1 1 1

Solon Jakarta v3.7.3

05 Dec 23:14

Choose a tag to compare

  • 新增 xxljob3-solon-cloud-plugin 插件
  • 修复 solon-server-jetty-jakarta jsp 支持
  • 添加 solon-server-tomcat-jakarta jsp 支持
  • 添加 solon-server-tomcat-jakarta websocket 支持

Solon Jakarta v3.7.2

22 Nov 12:19

Choose a tag to compare

Solon Jakarta v3.6.4

07 Nov 04:49

Choose a tag to compare

  • 优化 solon-server 不再默认输出 TEXT_PLAIN_UTF8_VALUE(允许空 content-type)

Solon Jakarta v3.7.0

07 Nov 04:49

Choose a tag to compare

  • 优化 solon-server 不再默认输出 TEXT_PLAIN_UTF8_VALUE(允许空 content-type)
  • 移除 solon.xxx 和 nami.xxx 风格的发布包
  • jakarta.logback 升为 1.5.20