领先一步
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 过去正在那里闪耀!)。
当 Milestone 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 中包含所有这些漂亮的新功能,但我们也一直忙于准备其他未包含在 Milestone 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 嵌入命令非常好,允许您只需一个 Roo 命令即可将 YouTube 视频、SlideShare 演示文稿、Google 地图、Flikr 照片和类似媒体等资源整合到您的 Web 视图中(总共有 15 种不同的资源类型目前受支持,涵盖从照片共享到财务更新以及介于两者之间的所有内容)。
如果您对我们的发布日期感到好奇,可以通过访问 http://tinyurl.com/rooroadmap 来跟踪它们。当然,这些日期会随着我们的开发进度进行修改(并且依赖项目也会相应地修改其日期),但它们能给您一个很好的指示。
Roo 社区的一些其他有趣公告
我们希望您喜欢这个新版本!请通过 @SpringRoo 或 社区论坛 告诉我们您的想法。