宣布 GORM for Redis

工程 | Graeme Rocher | 2010年9月7日 | ...

云平台兴起而激发的主要运动之一,是对传统关系数据库的替代存储技术日益增长的兴趣。其中一种存储机制是 Redis,一种高性能键/值存储,它在未来的云基础设施中扮演着重要角色。

Grails 社区对 Redis 产生了浓厚的兴趣,紧随 Redis 2.0.0 发布之后,我们很高兴地宣布 GORM for Redis Milestone 1 的可用性。

什么是 GORM for Redis?很简单,它允许习惯于 动态查找器条件命名查询 等功能的 Grails 开发人员利用 Redis……

Virgo 里程碑 4 发布

工程 | Glyn Normington | 2010年9月03日 | ...

Virgo 里程碑 2.1.0.M04-incubation 现已可供下载

更改

  • 修复了Bug 323609:在某些情况下Windows下严重的日志性能问题
  • OSGi扩展更改,为Hristo Illiev贡献的Equinox 3.6升级做准备
  • Olivier Girardot贡献的新测试用例和测试覆盖率改进
  • 支持新的框架属性 org.eclipse.virgo.suppress.heap.dumps 并在用户指南中进行说明
  • 删除未使用的EquinoxConsoleManager
  • 各种构建和测试改进

更多详情请参见bug列表

VMware vFabric赋能云应用平台愿景

工程 | Rod Johnson | 2010年8月31日 | ...

在今年的VMworld大会上,VMware将揭示我们实现IT即服务的愿景。今天的公告概述了我们认为对提供IT即服务至关重要的IT堆栈的三个主要层——**云基础设施和管理**、**云应用平台**和**最终用户计算**——并阐述了我们解决这一问题的路线图。Spring开发技术和SpringSource中间件在我们的愿景中扮演着关键角色,我们相信我们正在为我们的社区开启激动人心的新机遇。

作为此战略的一部分,我们正在以新的**VMware vFabric**品牌发布我们的云应用平台。这个平台兑现了VMware收购SpringSource的承诺,将我们的资产整合到一个单一的、下一代基础设施中。虽然各个组件将继续单独提供,但我们相信这种集成产品将提供一个更简单、更高效的选择。

VMware vFabric平台将Spring开发框架和工具与VMware vFabric平台服务相结合,从而实现下一代应用程序的快速交付,这些应用程序可即时扩展并可在云中移植。

今天的公告是我们过去 5 年工作的自然延续。我们最初通过 Spring Framework 和 POJO 编程的创新来转变企业 Java 的生产力;将 Spring 编程模型扩展到解决安全性、批处理、集成和其他重要需求;通过 tc ServerHyperic 继续简化企业 Java 的部署;通过 SpringSource Tool SuiteGrailsSpring Roo 进一步提高了生产力;通过收购 Rabbit TechnologiesGemStone Systems 增加了云就绪的消息传递和数据网格功能;并与行业领先的 虚拟化解决方案 集成。基于这些同类最佳的组件,我们今天宣布推出一个统一的平台。

VMware vFabric

为什么需要一个新的应用平台?

虚拟化和云计算的兴起,加上Facebook和Salesforce.com等消费者和软件即服务应用的流行,正在推动应用架构发生重大转变——涉及基础设施、应用、数据访问以及终端用户与应用交互的方式。

现代应用程序需要易于使用、数据丰富,并能随时随地访问。开发者需要框架、工具和平台服务来构建出色的应用程序,并立即将这些应用程序部署到智能平台上,该平台按需提供资源并根据策略扩展应用程序。

IT需要一个适用于这一新一代应用程序的平台,该平台需摆脱前一代架构的复杂性、臃肿和局限性。

我们提供的独特价值

VMware vFabric云应用平台将数百万Java开发人员使用的Spring项目和工具与为下一代应用提供支持所需的VMware vFabric平台服务相结合。向云计算的转变往往将开发人员和运营方面的考量混杂在一起;我们相信理解和满足现代开发人员的需求至关重要。

通往云端的道路始于开发工具和功能,这些工具和功能使创建提供丰富现代用户体验并使用经过验证的EAI模式与其他应用程序集成的应用程序变得容易。Spring应用程序可以部署在任何Java平台上,包括WebSphere、WebLogic、JBoss、我们自己的tc Server以及公共云平台。最好的入门方法是下载SpringSource Tool Suite,它提供了一个丰富的开发环境和运行时平台,使创建Spring和Grails应用程序变得快速简便。

VMware vFabric通过tc Server和Hyperic等技术,提供了应用程序充分利用底层虚拟基础设施平台所需的轻量级占用空间和透明可见性。该平台直接解决了云计算的技术挑战,支持新的数据管理方法,使应用程序能够通过我们的GemFire和RabbitMQ技术在弹性、地理分布式云架构中扩展。

我们将走向何方?

VMworld,我们设有6个演示展台,将在那里展示VMware vFabric云应用平台的实际运行情况。我鼓励大家前来参观。

我们的Spring和vFabric工程师们正以惊人的速度继续创新,并将在2010年10月19日至22日在芝加哥举行的SpringOne 2GX大会上展示更多创新。为了支持我们与Salesforce.comGoogle的合作关系,我们一直努力扩展Spring编程模型和vFabric平台服务,以使开发人员能够将应用程序部署到VMforceGoogle AppEngine等云平台。我们鼓励您亲自来见证这些新进展。

我们觉得自己具备独特的能力,能够为数百万企业Java开发人员提供一条清晰且创新的云计算架构之路,这条路由现代编程模型与下一代平台服务相结合所驱动。这条道路没有被前一代架构的冗余和复杂性所侵占。这段旅程将充满乐趣,我期待与大家携手共进。

功能性 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 功能。

重用现有域模型的第一步是让类文件位于应用程序的类路径上。您可以通过将它们打包成 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,我很高兴地宣布它现在已经可用(在此下载)。自里程碑 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 -v -H 'Accept: application/json' -X GET https://:8080/petclinic/owners/ 这样的 curl 命令。
  • 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(数量太多……)提供一流的支持。

RabbitMQ Grails 插件 - 早期访问

工程 | 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 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有