Apache Wicket 是一个开源的面向 Java 组件的 Web 应用框架,为政府、商店、大学、城市、银行、电子邮件提供商等成千上万的 Web 应用和网站提供支持。Wicket 的开发中使用了语义版本,因此与 9.0.0 相比,9.12 版本没有出现 API 中断。
Apache Wicket 10.0.0-M1 现已发布,此版本标志着 Wicket 10 的另一个次要版本。具体更新内容包括:
新的和值得注意的
Java 17 支持
新的里程碑需要 Java 17 作为最低版本。
自动迁移工具
Apache Wicket 10 提供了基于 OpenRewrite 的自动迁移。有关详细信息,可参阅迁移指南。
新功能
- [WICKET-6886] - LambdaChoiceRenderer
- [WICKET-7029] - 将迁移方法添加到 Wicket 10
- [WICKET-7033] - 添加对上传到资源的支持
改进
- [WICKET-6836] - 用 ByteBuddy 和/或 Javassist 替换 CGLib
- [WICKET-6889] - 提供可以加载 Spring 配置类的 SpringWebApplicationFactory 的特殊化
- [WICKET-6890] - 渲染调试设置“outputMarkupContainerClassName”为属性
- [WICKET-6893] - 通过委托给 DefaultListableBeanFactory 使 ApplicationContextMock 更智能
- [WICKET-6899] - 将 setExceptionMapperProvider 添加到应用程序
- [WICKET-6901] - PropertyValidator 改进配置文档
- [WICKET-6911] - 当 spring bean 使用 ctor 注入时,wicket-spring 抛出错误
- [WICKET-6920] - 改进示例以使用浏览器的亮/暗模式
- [WICKET-6924] - 在 SecurePackageResourceGuard 中允许 image/avif
- [WICKET-6927] - 移除 java.security.AccessController
- [WICKET-6933] - 简化 InSessionPageStore 作为持久性存储的使用
- [WICKET-6943] - 应该能够检查当前会话的语言环境是否为 RTL
- [WICKET-6946] - isVisibleInHierarchy/isEnabledInHierarchy 被 isVisible/isEnabled override 破坏
- [WICKET-6949] - 使 AjaxDownloadBehavior 更加动态
- [WICKET-6950] - wicket web-sockets 实现不允许在 onOpen 上配置/访问 web socket 会话
- [WICKET-6952] - Strings.isEmpty 的性能改进
- [WICKET-6958] - 允许在 OSGi 运行时使用 Slf4j 1.7.x
- ......
Bug
- [WICKET-6895] - 文档中示例的链接指向旧版本的 8x
- [WICKET-6896] - AutoCompleteTextField 在选择项目后重新打开下拉项目列表
- [WICKET-6902] - 更改 onAfterResponse 和 writePriorityEvaluations 的 PartialPageUpdate 顺序使 IListener.onAfterResponde 忽略了 prepended javascript
- [WICKET-6913] - Java 17 与 cglib 的兼容性
- [WICKET-6914] - 通过 ajax 更改“File Upload”的可见性导致“丢失”表单数据
- [WICKET-6921] - MultipartFormComponentListener 在隐藏组件上中断
- [WICKET-6936] - FilePageStore 在 Windows 上失败
- [WICKET-6944] - WicketEndpoint 内存泄漏
- [WICKET-6945] - MultipartFormComponentListener 修改不可见表单上的 enctype,导致 javascript 错误
- [WICKET-6947] - IndicatingAjaxButton 不适用于 Bootstrap 4
- [WICKET-6953] - JavaScriptDeferHeaderResponse 对于 AJAX 请求无法正常工作
- [WICKET-6955] - Wicket 使用不稳定的 slf4j 版本
- [WICKET-6965] - WicketEndpoint 内存泄漏
- [WICKET-6966] - InSessionPageStore 中的 IndexOutOfBounds
- [WICKET-6970] - AssociatedMarkupSourcingStrategy 中不必要的字符串构建
- [WICKET-6971] - ModificationWatcher 中的 NullPointerException
- [WICKET-6974] - JavaxUpgradeHttpRequest 返回一个空的 contextPath
- [WICKET-6975] - Behavior.renderHead 可能被调用多次
- ......
更多详情可查看官方公告。