使用 Yourkit 查詢記憶體洩露

工程 | Dave Syer | 2009 年 7 月 5 日 | ...

今天使用 Yourkit 的體驗非常棒,所以我想快速寫一篇推薦。我上次真正深入使用它已經是幾年前的事了,即使在那時它也是我能找到的最好的工具,但現在它真的異常流暢。我沒有對市場上的工具進行詳盡的調查,那也不是這次的目的:我只是想要一個工具來解決一個問題。

這是我今天的故事;先是沮喪,然後是惱怒,最後是滿意。我懷疑 Spring Batch 存在記憶體洩露,我需要快速找到它。這背後的故事是,我見過很多記憶體洩露,但已經很久沒有親身處理過一個了。現在我生活STS 中(有時甚至在裡面做夢),所以我需要一個在 IDE 中執行良好的工具。我嘗試了兩個工具,只是因為第一個選擇沒有奏效。我嘗試的兩個是 TPTPYourkit

STS 2.1.0.RC1 已更新支援 Eclipse 3.5

釋出 | Adam Fitzgerald | 2009 年 6 月 26 日 | ...

SpringSource Tool Suite 的最新發布候選版本已更新,可在全新的 Eclipse Galileo 版本上執行。STS 2.1.0.RC1 包括對 Spring Roo、SpringSource dm Servertc Server、企業 OSGi 工具以及所有常用的優秀 Spring 開發工具的支援。這個最新版本還為 Mac OS X 64 位 Cocoa 客戶端提供支援。當然,SpringSource Tool Suite 的下載免費的,所以今天就開始使用這個最好的企業 Java 開發 IDE 吧。

下載 | 新特性列表 | 論壇 | JIRA

在 Eclipse 3.5 中安裝 STS

工程 | Christian Dupuis | 2009 年 6 月 24 日 | ...

今天是 Eclipse 和所有參與 Eclipse 生態系統的人們的大日子:祝賀 Eclipse 團隊釋出了 Eclipse 3.5,也稱為 Galileo。您可以在 http://www.eclipse.org/galileo/ 上閱讀更多關於此版本的資訊。我鼓勵大家今天就下載 Eclipse 3.5 並試用。

由於 SpringSource 堅決致力於 Eclipse,並且我們在 Eclipse 技術棧的基礎上構建 SpringSource Tool Suite,我很高興地報告 STS 可以安裝並與 3.5 一起使用。這裡有一些入門說明

更新:這篇帖子中的說明已經過時,可能對您不起作用。請參閱 STS 安裝說明

Maven PAR 外掛 1.0.0.M1

工程 | Ben Hale | 2009 年 6 月 24 日 | ...

在 SpringSource dm Server(當時稱為 Application Platform)推出後不久,Thorsten Maus 建立了一個用於建立 PAR 檔案的 Maven 外掛。這是一個很棒的社群貢獻,我們甚至在 dm Server 1.0.x 的入門指南中使用了它。

隨著 dm Server 2.0 里程碑的推進,我們一直在向 PAR 檔案新增新功能。最有趣的功能是,現在 PAR 檔案不僅可以包含 JAR 檔案。隨著 OSGi RFC 66 的引入,dm Server 已經棄用了 Web 模組,轉而使用標準的 Web 容器檔案,採用.war

OSGi DevCon Europe 上的訊息傳遞與 OSGi

工程 | Iwein Fuld | 2009 年 6 月 23 日 | ...

昨天我在 OSGi DevCon Europe 上發表演講,內容是關於如何使用 Spring Integration 和 dm Server 以務實的方式解決大型應用程式中的常見問題。在我的會議之前和之後,我與各種人士交談,他們希望瞭解更多關於這些想法的資訊。這篇部落格將概述我所談論的內容。

我將直接進入簡報的摘要。

任何專案在其活躍開發生命週期中都會不斷增長。通常開發人員透過新增程式碼來新增功能和修復產品負責人提出的問題。這個過程自然會使程式碼庫增長…

OSGi Test Stubs 1.0.0.M1

工程 | Ben Hale | 2009 年 6 月 23 日 | ...

我很高興地宣佈 SpringSource 的 OSGi Test Stubs 的 1.0.0.M1 版本釋出了。這些樁提供了一種在不需要完整 OSGi 容器的情況下對複雜的 OSGi Framework 互動進行單元測試的方法。

問題

隨著 dm Server 團隊的開發,我們發現對我們來說最大的測試問題領域在於 BundleActivator。我們的BundleActivators透過使用ServiceTracker執行了大量的服務釋出到服務登錄檔以及消費服務。這些任務涉及許多相互交織的對BundleContextBundleServiceRegistrationServiceReference的呼叫。起初,這些啟用器足夠簡單,沒有對它們進行太多單元測試,我們依賴於整合測試來捕獲引入的任何錯誤。然而隨著時間的推移,啟用器變得越來越複雜,單元測試變得更加緊迫。我們開始使用 EasyMock 進行這些測試,但發現它們非常複雜,難以維護,最重要的是難以理解。
@Test
public void startAndStop() throws Exception {
    BundleActivator bundleActivator = new DumpBundleActivator();
    BundleContext context = createMock(BundleContext.class);
    Filter filter = createMock(Filter.class);
    
    String filterString = "(objectClass=" + DumpContributor.class.getName() + ")";
    
    expect(context.createFilter(filterString)).andReturn(filter);
    context…

透過 JMX 訪問 dm Server 倉庫內容

工程 | Ben Hale | 2009 年 6 月 22 日 | ...

dm Server 2.0.0.M1 版本中,我們添加了對共享倉庫的支援。作為這一新功能的後續,我們添加了透過 JMX 瀏覽這些倉庫的支援。

使用 JMX 客戶端連線到正在執行的 dm Server 例項現在會顯示一個 Repository 組。在該組下,每個配置的倉庫(連結倉庫除外)都有一個 Bean,該 Bean 返回其中包含的所有工件的概要資訊。該 Bean 還公開了一個方法,用於根據給定 Bean 的型別、名稱和版本返回整個詳細的 ArtifactDescriptor。

JMX Repository Browsing

顯然,像 JConsole 這樣的工具主要用於顯示少量有針對性的資料。對於較大的資料集,AMS 團隊目前正在開發一種更易於視覺化的視覺化方式。

使用 SpringSource Slices 構建模組化 Web 應用

工程 | Rob Harrop | 2009 年 6 月 22 日 | ...

更新:添加了 Git 子模組說明。

我過去曾談到提供對真正模組化應用的支援,我很高興地宣佈,您現在可以訪問 SpringSource Slices 的早期原型程式碼了。

構建和安裝

您可以從我們的 Git 倉庫訪問原始碼

git clone git://git.springsource.org/slices/slices.git
git submodule init
git submodule update

要構建 Slices 的打包版本,只需從 build-slices 目錄執行 ant clean jar package

cd slices/build-slices
ant clean jar package

這將在 target/artifacts 中生成一個 zip 檔案,其中包含 Slices 子系統,然後可以將其安裝到 dm Server 2.0 上

安裝 Slices 非常簡單,只需將新的子系統新增到 dm Server,然後更新 dmServer 的配置檔案以啟動新的子系統即可。Slices 應該適用於任何最近的 dm Server 2.0 快照版本。我這裡使用的是 2.0.0.CI-R326-B274,我已經下載並解壓到了我的桌面

 unzip target/artifacts/springsource-slices-BUILD-20090622083953.zip -d ~/Desktop/springsource-dm-server-2.0.0.CI-R326-B274

接下來,必須更新 dm Server 的 kernel.properties 配置以包含新的 slices 子系統。開啟您的 dm Server 安裝目錄下的 config/kernel.properties 檔案,編輯 Profile Configuration 部分以列出 slices 子系統並給配置檔案一個合適的名稱(我稱之為 slices)

#######################
# Profile Configuration
#######################
profile.name=slices…

探索 Roo 的架構

工程 | Ben Alex | 2009 年 6 月 18 日 | ...

上個月我們發現了使用 Spring Roo(我們為 Java 開發人員提供的新生產力工具)在短短幾分鐘內構建一個功能齊全的企業應用程式有多容易。雖然許多 Java 開發人員已經開始評估Roo幫助節省他們專案時間,但我收到了很多關於 Roo 實際如何工作的疑問。在這篇部落格文章中,我將深入探討 Roo 的架構,包括其目標、原型替代方案、設計原理和實現細節。讀完後,您將對 Roo 的工作原理及其方法有一個很好的瞭解…

將 WAR 部署到 OSGi Web 容器現在更加容易

工程 | Andy Wilkinson | 2009 年 6 月 16 日 | ...

正如 Rob 在他關於OSGi Web 容器的介紹中提到的,dm Server 會自動將系統包匯入到 Web Bundle 中。這已被證明非常有用,尤其是在將現有 WAR 檔案部署到 OSGi 環境中時。我最近花了一些時間將此功能從 dm Server 的 Web 子系統遷移到 OSGi Web 容器 RI 中。這篇部落格描述了新功能以及如何使用它。

啟用系統包匯入

有兩種方法可以指示 RI 匯入所有匯出的系統包。

當您安裝 Web Bundle 時,您現在可以使用 SpringSource-SystemPackages…

訂閱 Spring 新聞通訊

訂閱 Spring 新聞通訊,保持連線

訂閱

搶先一步

VMware 提供培訓和認證,助您加速進步。

瞭解更多

獲取支援

Tanzu Spring 在一個簡單的訂閱中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案。

瞭解更多

即將到來的活動

檢視 Spring 社群所有即將到來的活動。

檢視全部