Apache Wicket 1.3.1 版支持透明集群

  • R.J. Lorimer
  • 宋玮

2008 年 2 月 18 日

话题:JavaWeb框架开源DevOps语言 & 开发架构文化 & 方法

Wicket 团队已经宣布了 Wicket 1.3.1 发行版,这是 Wicket 1.3 的第一个维护版。Wicket 框架从 1.2 版到 1.3 版发生了很多变化。以下内容来自最初的 1.3 发行版公告

  • 最后一个兼容 JDK-1.4 的 Wicket 版本(下一版将基于 Java 5)
  • 第一个 Apache 发行版:将包重命名为 org.apache.wicket
  • 简化一些核心 API
  • 使用相对 URL,无需配置即可在代理服务器后工作
  • 增加 Google Guice 支持
  • 不用修改一行代码,就可直接在一个 portal 中使用你的 Wicket 页面(支持 JSR-168/JSR-286)
  • 将日志 API 从 commons-logging 切换到 slf4j
  • 集成 velocity 模板作为你页面中的 panel
  • 基于 YUI-calendar 和 Joda time 的 date picker(wicket-datetime)
  • 使用 Ajax 请求增加新的 javascript 依赖到 page header——例如,如果一个组件在客户端经由 Ajax 而被替换,替换所需的 script.aculo.us、 script.aculo.us 和其他依赖将会在需要的时候被下载。
  • 改进的、更健壮的 header 捐献品
  • 使用无状态页面和组件,可以扩展到非常大规模的用户数
  • 改进的 AjaxTree/AjaxTreeTable
  • 混合的 URL 编码可以让搜索引擎和你的用户都满意
  • 创建 form panel 并可到处使用它们,无需担心 form 标签的嵌套
  • 把组件层级结构存储到文件系统中(DiskPageStore),尽量减少 session 的使用
注意,尽管 Wicket 的 1.3 分支还是 JDK-1.4 兼容的,随 1.3 发行的许多特性只有在 Java 5 中才能使用,这完全是由其本质所决定的。这些特性包括Google Guice支持和 Spring 注解支持(这两者都依赖于 Java 5 注解),以及 Wicket JMX bean(需要 Java 5 JMX 管理工具)。

从最初的 Wicket 1.3 版发布到 Wicket 1.3.1 可以使用,时间刚刚过去一个来月,尽管这次发布的主要是维护版本,它也提供了一些增强的功能和特性:



这一版本扫除了许多 bug,实施了一些改进。最值得注意的改进是增加的开箱即用的特性——透明集群支持(WICKET-1272)。
1.3.1 中增加的透明集群支持利用了在 1.3 版所增加的 DiskPageStore 特性,最初的实现由 Matej Knopp在 Wicket 用户邮件列表上作了详细描述。摘录如下:

当一个页面实例从 NodeA 复制到 NodeB 时,它立即被存储到 NodeB 上的DiskPageStore中,而不是保持在 session 中。这意味着该实例在 NodeB 上稍后即可被访问,即使之后有另一个页面以同样的方式被复制到 NodeB——因为它已经被保存在DiskPageStore里了。而且它也不需要保存在内存中,显著地减少了 session 状态。

1.3.1 中其它问题修复和改进的完整列表可以从这里获得

对于那些希望迁移到 1.3.1 上的 Wicket 1.2 用户,有一个迁移文档可供使用,其中详细说明了各个 API 和功能变化。伴随着迁移到新的“apache”包结构,基于 1.2 的应用程序可能要做许多核心变化。以下只是一些示例:



  • IModel 的“getObject”和“setObject”方法的契约不再接受“Component”作为参数。
  • 由于许可证冲突,Wicket 1.2 的扩展项目所提供的 DatePicker 实现将不再可用。Wicket 团队已经提供了基于 YUI(Yahoo UI)日历控件的替代品。
  • 校验 API 现在从 form API 中剥离出来,以便单独使用。
  • Wicket 团队推荐将 ServletFilter 用作初始化,而不是 1.2 里所使用的 WicketServlet。
Wicket 项目可从Apache Wicket Site上获得。至于文档则可访问WikiReference documentation、以及Javadocs。最后,问题可被报告到Wicket issue tracker上。

查看英文原文:Apache Wicket 1.3.1 Release Supports Transparent Clustering

JavaWeb框架开源DevOps语言 & 开发架构文化 & 方法