是时候发布另一个 Seam 版本了!这个版本并非我们原本的计划(我们希望从 CR2 直接跳到最终版本),然而由于一些最后一刻的 API 更改,我认为在正式批准它之前,让 Seam 再经过一次测试环节是最好的。好消息是,3.0 最终版本紧随其后,如果一切顺利,它将在我承诺的时间内在本月底之前发布。
首先让我们列出链接,然后再看看有什么变化。
CR3 变更
@SeamManaged 移动,重命名为 @ExtensionManaged我们首先更改的是@SeamManaged注解,它是由持久化模块提供的。在收到团队成员的各种反馈后,我们决定这是一个通用的注解,它不仅适用于持久化。考虑到这一点,我们将它移动到了 Seam Solder 模块中,这是一个包含一组通用的有用注解和实用功能的模块,许多其他模块都使用了这些功能。新的注解是@org.jboss.seam.solder.core.ExtensionManaged。请确保将您应用程序中的任何实例(最可能在 EntityManager 生成方法上找到)更新到新的@SeamManaged中@ExtensionManaged.
事务相关类的重构我们的下一个更改也是在持久化模块中。该模块处理两个主要问题,即 持久化 和 事务。在团队内部讨论后,我们决定该模块的 事务 部分将来可能值得成为一个独立的模块(显然将被称为 Seam 事务)。考虑到这一点,我们对所有与事务相关的类进行了重构,以便它们在单独的包中。
这对用户影响最大的是对于用@Transactional注解的豆或豆方法。如果您使用此注解为您的豆提供事务支持,则需要将此类的导入从org.jboss.seam.persistence.transaction.Transactional更改为org.jboss.seam.transaction.Transactional.
安全日志记录这是一个我们一直计划实现的功能,但由于注解处理的一些实现困难,在Seam 3.0版本发布时被暂时搁置。不过,我要非常高兴地说,负责这个功能的团队成员做出了巨大的努力,及时完成了这项工作。因此,我要向James Perkins和Ken Finnigan表示衷心的感谢,感谢他们使这一功能得以实现,并感谢David Lloyd在咨询方面的支持。这些人真的是开源社区的骄傲。我将在不久的将来鼓励其中一位撰写一篇关于这个非常酷的功能的博客文章。
Glassfish在本次版本发布之前,支持Glassfish对我们来说是一个巨大的挑战。然而,我很高兴地说,多亏Dan Allen的巨大努力,现在所有已知的问题都已得到解决。如果你正在使用Seam在Glassfish上,我强烈建议你将Dan关于该主题的博客文章加入书签,因为这是Seam/Glassfish兼容性问题的权威来源。
总结除了上述重大变更之外,还进行了许多其他错误修复以及对文档和示例的改进。我鼓励大家尝试这个版本,并在下面的评论部分告诉我们您的看法。目前,Seam API已经锁定,因此最终发布前不会有任何破坏性的API更改,我保证:)。在接下来的一个星期里,我们将完成最后几项剩余任务(例如完成文档、测试所有示例等),为3.0.0.Final版本发布做好准备。如果您认为我们遗漏了任何最后时刻的改进,我们非常乐意听取您的反馈。