抢先一步
VMware提供培训和认证,助您快速提升。
了解更多我很高兴地宣布,我们刚刚发布了 Spring Roo 1.1.0.M2(在此下载)。我们还同时发布了 SpringSource Tool Suite 2.3.3.M2,它提供了与这个新的 Spring Roo 版本的最新集成。对于生产用途,我们建议您继续使用 Spring Roo 1.0.2,尽管我们知道有很多人也乐于使用 Roo 1.1.0 开发版本。
那么,新的 Spring Roo 1.1.0 里程碑 2 中包含了什么?好吧,自 里程碑 1 以来,有 140 个修复、改进和增强功能。一些亮点包括
Spring Roo 1.1.0.M2 还具有大量增强功能,为至关重要的插件发现和管理功能做准备。Roo 团队高度致力于帮助为 Roo 构建一个充满活力的插件生态系统,这将有利于许多希望获得核心 Roo 发行版中未包含的功能的用户。
作为这项工作的一部分,Roo 现在会自动从我们的新存储库 http://spring-roo-repository.springsource.org/repository.xml下载 OBR 索引。作为 Roo 用户,您不太可能看到太多 OBR 基础设施(因为它可以正常工作!),但了解 OBR 为 Roo 提供了一种 OSGi 标准化的方法来发现可用的插件、解析其依赖项、将它们下载到您的 Roo 环境并自动启动它们,这一点很重要。这意味着 Roo 用户受益于一种工业级的、OSGi 标准化的方法来管理插件,并且当越来越复杂的插件提供给 Roo 社区时,我们不会遇到障碍。
Roo 还通过将 OBR 元数据直接集成到 shell 命令解析中扩展了 OBR 功能。这意味着如果您键入一个属于当前未安装插件的命令,Roo 将自动建议您可以使用哪个插件来提供该命令!我很高兴地承认这个特定功能的灵感来自于我使用 Ubuntu 的经历,因为它非常有用,您只需键入任何随机命令,系统就会告诉您需要键入的单行安装命令来安装该命令。
虽然这个新的 OBR 支持和 shell 命令发现当然非常好,但我们也希望确保我们能够为 Roo 社区提供便捷的插件托管。但要正确地做到这一点,意味着我们需要仔细考虑安全隐患。
我们通过在 Roo 1.1.0.M2 中添加广泛的 PGP 密钥管理功能来解决插件安全性问题。这些功能允许您准确地指示您信任哪些开发者来签署 Roo 将下载到您计算机上的软件。Roo 本身现在也在每个版本中都使用 PGP 签名。为了支持这些功能,我们在 Roo 中引入了一个名为 httppgp:// 的新协议处理程序。这告诉 Roo 给定的 HTTP URL 还有一个可用的 PGP 装甲分离签名。
通过要求所有插件都使用 PGP 签名,我们能够方便且安全地为社区托管所有 Roo 插件。您可以决定是否信任给定的 PGP 密钥,如果不信任该密钥,Roo 甚至会拒绝花费时间下载 httppgp:// 资源。我们还实现了这种架构,因此我们不需要更改 Apache Felix 的 OBR 基础设施,也不需要强制每个人都使用我们的中央插件托管功能。这意味着我们受益于较新 Felix 版本中对 OBR 的未来改进,而且您完全可以在您自己的 OBR repository.xml 文件中使用 httppgp:// URL。Roo 的方法还意味着您也可以使用独立的 PGP 工具(如 GnuPG)执行与签名相关的操作,以独立验证 Roo 的正确操作。正如您所看到的,我对新的 PGP OBR 基础设施非常满意(但我猜我那段与 Acegi Security/Spring Security 相关的极客经历在这里闪耀!)。
当我们宣布里程碑 3 时,我将更多地讨论这个新基础设施是如何工作的,因为这将包含完整的插件最终用户界面。此外,我们还将介绍我们新的后端工具,该工具有助于将插件自动发布到中央存储库(称为 RooBot)。如果您等不及新的最终用户界面,请尝试“pgp list trusted keys”命令以查看 Roo 默认信任哪些密钥。还可以尝试在 Roo 提示符下键入“welcome property”以查看 Roo 如何建议当前未安装的提供“welcome property”命令的插件。如果您真的想查看 httppgp:// 基础设施的运行情况,请尝试取消信任我的 PGP 密钥(pgp untrust --keyId 00B5050F),然后尝试安装 welcome 插件(osgi obr start --bundleSymbolicName org.springframework.samples.roo.welcome)。
尽管 Roo 1.1.0.M2 中有所有这些新功能,但我们也一直在忙于准备其他未包含在里程碑 2 版本中的功能。
许多人热切期待的一个功能是 增量数据库反向工程。此功能请求现在已获得超过 113 票,并且该实现已支持 Java 编译单元生命周期管理、增量字段维护、复合主键和大多数关系类型(1:M、M:M、1:1)。我们预计此功能将包含在 Roo 1.1.0.M3 中,但如果您想走在技术前沿,可以通过 从 Git 构建 Roo 进行试验。
我们一直在研究的其他一些有趣的功能包括 Op4J 插件、一个非常棒的 自动 Git 插件,以及一些 Web 嵌入命令。Op4J 插件允许您大幅减少需要编写的代码量,同时不会失去 Java 的类型安全、代码辅助和性能优势。自动 Git 插件会将您执行的每个 Roo 命令都转换为单个 Git 提交,这对于查看 Roo 正在执行的操作以及能够选择性地回滚等非常有用。Web 嵌入命令非常棒,允许您将 YouTube 视频、SlideShare 演示文稿、Google 地图、Flikr 照片和类似媒体等资源包含到您的 Web 视图中,只需使用一个 Roo 命令即可(总共有 15 种不同的资源类型目前受支持,涵盖从照片共享到财务更新以及介于两者之间的一切)。
如果您好奇我们的发布日期,您可以通过访问 http://tinyurl.com/rooroadmap 来跟踪它们。当然,这些日期会随着我们开发的进展而修改(以及依赖项目类似地修改了它们的日期),但它们为您提供了一个很好的指示。
Roo 社区的一些其他有趣公告
希望您喜欢这个新版本!请通过@SpringRoo或社区论坛告诉我们您的想法。