Maven PAR 外掛 1.0.0.M1

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

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

隨著 dm Server 2.0 里程碑的推進,我們一直在為 PAR 檔案新增新功能。最有趣的功能是現在 PAR 檔案不僅可以包含 JAR 檔案。隨著 OSGi RFC 66 的引入,dm Server 棄用了 Web Modules,轉而使用帶有.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 框架互動進行單元測試的方法。

問題

隨著 dm Server 團隊的開發,我們發現對我們來說最大的測試問題領域之一是BundleActivator。我們的BundleActivators做了很多將服務釋出到服務登錄檔以及使用ServiceTrackers 消費服務的工作。這些型別的任務涉及對BundleContexts、Bundles、ServiceRegistrations 和ServiceReferences 的許多交織呼叫。最初,這些啟用器足夠簡單,沒有對它們進行太多單元測試,我們依賴整合測試來捕獲引入的任何錯誤。然而,隨著時間的推移,啟用器變得越來越複雜,單元測試成為一個更緊迫的需求。我們開始使用 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 的型別、名稱和版本返回完整的詳細 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 檔案,並編輯配置檔案配置部分以列出 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 捆綁包。這被證明非常有用,尤其是在將現有的 WAR 檔案部署到 OSGi 環境時。我最近花了一些時間將此功能從 dm Server 的 Web 子系統遷移到 OSGi Web 容器 RI。這篇博文將介紹新功能,以及如何使用它。

啟用系統包的匯入

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

在安裝 Web 捆綁包時,您現在可以使用 SpringSource-SystemPackages...

使用 Spring BlazeDS Integration 1.0

工程 | Jeremy Grelle | 2009 年 6 月 11 日 | ...

今天,我們宣佈了 Spring BlazeDS Integration——Spring 開源專案組合的最新成員——1.0 GA 版本公開發布。與此事件相呼應,我認為是時候更新我 之前的入門文章了。回顧一下

該專案的目標是讓使用 Adobe Flex 作為前端客戶端構建 Spring 驅動的富網際網路應用程式更加容易。它旨在透過提供對使用開源 Adobe BlazeDS 專案及其強大的遠端和訊息傳遞功能與熟悉的 Spring 程式設計模型相結合的一流支援來實現這一目標。

試用 Spring BlazeDS Integration

自第一個 M1 版本以來,我們極大地擴充套件了功能集,包括
  • 完整的 Spring Security 整合
  • 非同步訊息支援(具有 3 種不同的訊息目標型別)
  • 完整的 XML 配置名稱空間
  • 用於遠端處理的基於註解的配置選項
  • 眾多高階定製鉤子

現在隨 專案分發版 一起提供的是與 Adobe 合作構建的詳盡的示例集合,這些示例演示了各種功能的使用,稱為 Spring BlazeDS Integration Test Drive。這些示例是快速上手該專案的絕佳方式,在這裡我將為您快速介紹...

dm Server 2.0 M3 中的克隆

工程 | Glyn Normington | 2009年6月10日 | ...

克隆是dm Server 2.0中的一個功能,它將某些捆綁包和庫複製到限定範圍的應用程式(即PAR或限定範圍的計劃)中,如路線圖中所述。

在過去的幾個衝刺中,dm Server對克隆的支援穩步發展。基本機制已在M1中到位:克隆可以透過以下方式觸發

  • 透過在import-library或import-bundle上指定指令sharing:=clone手動觸發
  • 當限定範圍的應用程式因用途約束衝突而無法解析時自動觸發。

此後,程式碼經過了一些整理,針對Spring框架被克隆的常見情況添加了主要的效能最佳化,添加了日誌訊息以指示哪些捆綁包已被克隆,改進了跟蹤,並修復了一些錯誤。

我們注意到手動克隆是一個相對安全的操作,因為它完全在使用者的控制之下。然而,自動克隆總是推測性的。它由OSGi解析器故障驅動,特別是用途約束的衝突(如早期部落格中所述)。有些用途約束衝突無法透過克隆避免,但我們無法在嘗試自動克隆並確定用途…之前判斷。

Spring Security 3.0.0.M1 釋出

工程 | Luke Taylor | 2009 年 6 月 3 日 | ...

我們很高興地宣佈 Spring Security 3.0 的第一個里程碑版本現已可供 下載。該版本也可透過 Maven 里程碑儲存庫獲得,地址為http://maven.springframework.org/milestone。與 Spring 3.0 一樣,這是第一個要求最低 JDK 1.5 才能執行的釋出版本,並且還需要 Spring 3.0,因此如果您還沒有使用 Spring 3.0,應該獲取 Spring 3.0.0.M3 版本。那麼,在這個版本中有哪些新功能和變化呢?

基於表示式的訪問控制

此版本首次包含我們 Spring-EL 的授權支援預覽。您現在可以在方法註解和 Web 安全中使用表示式。與熟悉的屬性和投票者機制相比,這開闢了許多新的可能性。一個簡單的例子可能是一個好的開始。這裡有一個針對 Web 應用程式的例子,使用了安全名稱空間

  <http use-expressions="true">
     <intercept-url pattern="/secure/**" access="hasRole('ROLE_SUPERVISOR') and hasIpAddress…

獲取 Spring 新聞通訊

透過 Spring 新聞通訊保持聯絡

訂閱

領先一步

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

瞭解更多

獲得支援

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案,只需一份簡單的訂閱。

瞭解更多

即將舉行的活動

檢視 Spring 社群所有即將舉行的活動。

檢視所有