经过 Wicket 和 Terracotta 团队的努力,Wicket 已经能在 Open Terracotta 上运行了。虽然完全支持的目标还没有达成,但 Wicket 附带的大部分范例程序已经可以运行无误。在所有缺陷得到排除之后,Terracotta 将把这个配置放入 Terracotta 配置模块中。
Eelco Hillenius 撰文介绍在 Wicket 和 Terracotta 发生的使配置Wicket 变容易的变更,并详述了Wicket 所需要的配置。在Wicket 上所做的修改是为所有需要被Terracotta 跟踪的类加入了一个标识接口(Tagging Interface)。在Terracotta 中,一个以前曾经存在过但已被移除或从未被提交到主产品线的功能又被重新加入,以使得在某个类或接口被Terracotta 加入监控之后,它的子类型也能相应被匹配。
Hillenius 表示,剩下的最后一个问题是对 Wicket 的 EnumeratedType 的完全支持。
目前我们可以通过枚举 Terracotta 配置中的所有已知值来进行配置。能为之提供更自动化的支持自然更好了。与 EnumeratedType 有关的另一件事是,目前我们将它们看作不可变对象,并在 Wicket 代码中对它们使用等价操作符(==)。即使在序列化和反序列化之后,这也能正常工作,因为 EnumeratedType 合理地实现了 readResolve 方法,在这个方法中它解析成本地的单例对象。
他表示,Terracotta 现在还不支持 readResolve,因此他们将不得不转向 equals() 方法作为临时解决办法,或者等到 Terracotta 支持 readResolve 。
评论