函式式 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 https://: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 社群的所有近期活動。

檢視全部