函数式 Web 测试的未来?

工程技术 | Peter Ledbrook | 2010年8月28日 | ...

Groovy 社区是一个充满活力的群体,这意味着有大量框架、库和工具可以让你事半功倍。测试领域似乎尤其肥沃,我最近一直在研究一些工具,它们结合起来使用,有望在你编写函数式 Web 测试时显著提升效率。

虽然我通常关注 Grails,但你无需使用 Grails 就能从这些工具中受益:它们适用于任何 Web 应用程序,并且能与任何基于 Java 的项目/构建很好地集成。碰巧的是,它们都有相关的插件……

在 Grails 中复用你的 Hibernate/JPA 领域模型

工程技术 | Peter Ledbrook | 2010年8月26日 | ...

这是一个常见的情况。你有一个现有的数据库,现在想为其添加一个尽可能简单易用的 Web 应用程序。Grails 能胜任这项任务吗?当然可以!更棒的是,如果你已经有一个基于 JPA 或 Hibernate 配置文件构建的领域模型,你可以复用它,并且仍然能享受到你习以为常的 GORM 的强大特性。

复用现有领域模型的第一步是将类文件放到应用程序的 classpath 中。你可以通过将它们打包成一个 JAR 文件并将其包含在应用程序中(通常是将其放入 'lib' 目录),或者……

Spring Roo 1.1.0.M3 发布

工程技术 | Ben Alex | 2010年8月25日 | ...

更新:SpringSource Tool Suite 3.5.0.M3 现已可供下载。它包含了最新的 Spring Roo 1.1.0.M3 和 GWT 2.1.0.M3 支持。

许多社区成员一直热切期盼着Spring Roo 1.1.0.M3,我很高兴地宣布它现已可用(在此下载)。自 Milestone 2 以来,此版本包含了超过 150 项新特性、增强和其他改进,使得 1.1.0 里程碑系列的总计问题数量达到约 500 个。Spring Roo 1.1.0.M3 中的许多改进反映了我们与 Spring Framework、Google Web Toolkit、AspectJ 和 SpringSource Tool Suite 团队持续的紧密协作,您可以在一些主要的新特性中看到成果
  • 增量数据库逆向工程(或在办公室亲切地称为 DBRE):这是 Spring Roo 项目历史上获得投票最多的 Jira 票,代表了大约 130 个独立的投票。这项新功能使得内省现有关系型数据库并生成一系列 JPA 实体成为可能。然而,与传统的数据库逆向工程工具不同,DBRE 可以在同一个项目上重复运行而不会产生不希望的副作用(因此该功能名称中包含“增量”一词)。所有内省产生的成员都存储在 AspectJ ITD 中,这与 Roo 的其余部分一致。这使得您的 .java 文件保持整洁并清晰地揭示意图(就像它们应该做的那样)。虽然内省现在运行良好(即使对于复合主键和所有基数类型等复杂情况),并允许您以正常的 Java 风格编程使用生成的实体,但在 Roo 1.1.0.M4 中,我们将为内省的数据库添加 Web 层支持。
  • 最新的 Google Web Toolkit 2.1.0.M3 特性:我们与 GWT 的协作使 Roo 能够生成使用 GWT 2.1.0.M3(也于今天发布)最新特性的应用程序。最受期待的新功能之一是 RequestFactory 基础设施下的关系支持。您可以使用“script expenses.roo”命令然后“mvn gwt:run”并通​​过 GWT UI 创建相关的员工对象来试用此功能。您可以在 GWT 博客文章中阅读有关 GWT 2.1.0.M3 新功能的更多信息。
  • 自动 JSON 支持,包括在 Spring MVC 应用程序中:Spring Roo 生成的所有领域对象现在都将包含自动JSON 相关方法。这些方法允许你在 JSON 表示和对象之间进行双向转换。我们以正常的 Roo 风格通过 ITD 引入这些新的 JSON 相关方法。Roo 管理的 Spring MVC 控制器现在也会自动使用这些方法。要查看实际效果,请使用“script clinic.roo”,然后“mvn tomcat:run”,通过Web 用户界面创建一个新的 Owner,然后尝试一个 curl 命令,例如 curl -v -H 'Accept: application/json' -X GET http://localhost:8080/petclinic/owners/
  • 16 项社交媒体嵌入功能:现在只需一个 Roo 命令,即可将来自 16 个社交媒体网站的内容添加到您的基于 Spring MVC 的前端!这包括 YouTube、Google Video、Vimeo、Viddler、Screenr、UStream、LiveStream、Flikr、Picasa、Google Presentations、Scribd、SlideShare、Google Maps、Google Wave、Twitter 和 Wikinvest。所有这些都可通过新的“web mvc embed”命令获得。
  • 库升级:我们更新了 Roo 在项目中自动使用的库。一些值得注意的更新包括迁移到Spring Framework 3.0.4(通过移除 URL 重写过滤器增强了资源服务)和Spring Web Flow 2.1.1
  • 自动 Roo 注解 JAR 升级:现在,当你升级到新版本 Roo 时,无需编辑项目中的 pom.xml 文件来更改 Roo 注解库的版本。Roo 会为你自动处理此事
  • 可用性增强:我们现在添加了许多新功能以改进可用性。您可能会注意到的一项是屏幕顶部新的“闪烁消息”区域。这会显示长时间运行操作的进度(您可以尝试“flash test”命令进行快速演示)。我们建议您使用 Linux、Windows 或iTerm(对于 OSX 用户)以获得最佳的闪烁消息体验。其他一些不太明显的改进包括更好的日志记录、对“#”注释的支持、“hint”命令的 Tab 自动补全、在 AspectJ ITD 顶部添加注释以提醒您不要编辑它们,以及许多其他改进。

一如既往,Spring Roo 参考指南包含已在使用 Roo 的用户的升级说明,以及对有兴趣了解更多信息的人员的背景阅读材料和入门教程。该参考指南可以在线查看,并且也包含在下载 ZIP 中。在接下来的几个月中,您还可以通过参加SpringOneJavaOneDevoxxGoogle Developer DaysYOW!2010 来了解更多关于 Spring Roo 的信息。

Spring Roo 的下一个版本将是 1.1.0.M4。这将是该系列的最后一个里程碑,我们预计在 2010 年 10 月中旬发布 1.1.0.RELEASE 版本。我们在 Jira 中维护我们的完整路线图日期,以便……

(安全)文件传输,唯一的方式……嗯,复制

工程技术 | Josh Long | 2010年8月23日 | ...

解决问题的方法有很多种。如今,许多应用程序依赖消息传递(AMQP、JMS)来弥合不同系统和数据之间的差距。其他应用程序则依赖 RPC(通常是 Web 服务或 REST)。然而,对于许多应用程序来说,文件传输是必不可少的方式!有几种常见的方法来支持它,但最常见的三种是使用共享挂载或文件夹、使用 FTP 服务器,以及——对于更安全的交换——使用 SSH(或 SFTP)。虽然众所周知 Spring 一直为消息传递(JMS、AMQP)和 RPC 提供一流的支持(还有很多……

适用于 Grails 的 RabbitMQ 插件 - 早期访问

工程技术 | Peter Ledbrook | 2010年8月23日 | ...

RabbitMQ 是一款轻量级、可靠、可伸缩且可移植的消息代理,基于高级消息队列协议 (AMQP)。它非常适合异构系统和云平台,但它几乎可以用于任何消息传递需求,无论大小。你通常不会通过 JMS API 访问它,事实上 JMS 插件也帮不上忙,但现在有一个新的插件可用,专门用于轻松地在 Grails 应用程序中使用 RabbitMQ。

当前版本的插件 (0.2) 功能相对有限,但你已经可以发送和接收消息了。我鼓励你尝试一下……

使用 Python 构建 RabbitMQ 应用程序

工程技术 | Greg L. Turnquist | 2010年8月19日 | ...

RabbitMQ 是一个基于高级消息队列协议 (AMQP) 的强大消息代理。由于 AMQP 规范的中立性,可以很容易地从包括 Python 在内的许多平台连接到它。在这篇博客文章中,我们将

  • 创建一个简单的股票行情自动收录 Python 应用程序
  • 创建一个决定何时买卖的经纪 Python 应用程序。
  • 比较由 RabbitMQ 团队创建的 AMQP 库 pikapy-amqplib
您可以在 http://github.com/gregturn/amqp-demo 上找到本博客的所有源代码。这假设您已经根据您平台的说明安装并启动了 RabbitMQ。就我个人而言,它在我的 Mac OS X 机器 (snow leopard) 上运行。

顺便一提

本博客文章中编写的代码仅用于演示目的。请勿依赖这些算法进行财务建议。
话不多说,我们来写代码吧!

构建股票行情自动收录

消息传递解决方案的一个很好的例子是股票行情系统。证券交易所向代理发布消息,指明股票名称、价格和时间。
import pickle
import random
import time

class Ticker(object):
    def __init__(self, publisher, qname):
        self.publisher = publisher

        # This quickly creates four random stock symbols
        chars = range(ord("A"), ord("Z")+1)
        def random_letter(): return chr(random.choice(chars))
        self.stock_symbols = [random_letter…

Spring 3.0.4 现已可用

发布 | Adam Fitzgerald | 2010年8月19日 | ...

Arjen Poutsma 刚刚宣布 Spring 3.0.4 现已可用。此版本解决了 80 多个小问题,并更新了 Spring 对包括 Hibernate Core 3.6、Hibernate Validator 4.1、EclipseLink 2.1 和 EHCache 2.2 在内的一些近期第三方发布的版本支持。

下载 | 文档 | Javadoc API | 变更日志 | JIRA

所有 Spring 的最新功能以及高级技术会议和路线图讨论将在 10 月 19 日至 21 日于芝加哥举行的SpringOne 2GX 2010 上进行。请务必立即注册以锁定早鸟注册折扣。

别忘了 Spring 用户可以在社区论坛中提问,并在JIRA 中报告问题。

使用 Grails 简化 Spring Security

工程技术 | Peter Ledbrook | 2010年8月11日 | ...

Spring Security 是一个功能强大的库,用于保护您的应用程序,它提供了令人眼花缭乱的选项。基于 Spring,它可以轻松集成到 Grails 应用程序中。但为什么不省去麻烦,使用新改进的 Grails 插件呢?

该插件经历了从 Acegi 插件开始的几个演进阶段。其最新版本是针对 Spring Security 3 和 Spring 3 的完全重写。其结果之一是该插件仅适用于 Grails 1.2.2 及以上版本。另一个重大变化是,不再只有一个 Spring……

Virgo 里程碑 M03 发布

工程技术 | Christopher Frost | 2010年8月10日 | ...

Virgo 2.1.0.M03-incubator 可从 Virgo 网站获取。更改包括

  • 进一步的性能改进,特别是针对 Windows 用户。
  • 将 Logback 版本更新至 0.9.24,将 SLF4J 版本更新至 1.6.1
  • 次要错误修复

性能改进是通过调整进出跟踪的日志级别来实现的。

由于 Logback 的新版本,配置文件 'serviceability.xml' 的语法略有变化。更多信息可以在这里找到。

我们现在已经发布了 Virgo 未来发展的计划大纲,以便您更好地了解我们的方向。

获取 Spring 新闻资讯

订阅 Spring 新闻资讯,保持联系

订阅

领先一步

VMware 提供培训和认证,助您快速提升。

了解更多

获取支持

Tanzu Spring 通过一个简单的订阅,为 OpenJDK™、Spring 和 Apache Tomcat® 提供支持和二进制文件。

了解更多

近期活动

查看 Spring 社区的所有近期活动。

查看全部