領先一步
VMware 提供培訓和認證,助您加速進步。
瞭解更多dm Server 2.0 的開發工作已經全面展開了一段時間,我很高興地宣佈第一個里程碑版本已可供下載。可從我們的主頁下載。您可以在我的上一篇文章中找到有關此版本和即將釋出的版本中功能的更多資訊。
在這篇部落格文章中,我將概述
為了開發 2.0 版本,dm Server 團隊採用了 Scrum 敏捷開發方法。您可以在我們的 JIRA 中檢視我們當前的衝刺和釋出積壓工作。一如既往,dm Server 的開發是由我們使用者的需求驅動的。如果您在積壓工作列表中看到您希望我們實現的專案,請花時間為它投票。同樣,如果您希望 dm Server 能夠實現目前積壓工作列表中未涵蓋的功能,請提出一個新的使用者故事來描述您希望實現的功能。
計劃檔案的語法非常簡單。外部的 <plan/> 標籤定義了 name 和 version,以及作用域和原子性要求。(在此里程碑中,僅支援同時具有作用域和原子性的計劃)。在
<?xml version="1.0" encoding="UTF-8"?>
<plan name="multi-artifact.plan" version="1.0.0" scoped="true" atomic="true"
xmlns="http://www.springsource.org/schema/dm-server/plan"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springsource.org/schema/dm-server/plan
http://www.springsource.org/schema/dm-server/plan/springsource-dm-server-plan.xsd">
<artifact type="bundle" name="simple.bundle.one" version="[1.0.0, 2.0.0)"/>
<artifact type="bundle" name="simple.bundle.two" version="[1.0.0, 2.0.0)"/>
</plan>
要使用計劃,請將構成計劃的捆綁包複製到 $DMS_HOME/repository/bundles/usr 目錄並重新啟動 dm Server。伺服器啟動後,將計劃檔案(帶有 .plan 副檔名)拖放到 $DMS_HOME/pickup 目錄中。這將使計劃以與 PAR 檔案相同的語義進行部署。從 pickup 目錄中刪除計劃檔案將導致計劃解除安裝。
M1 包含了克隆支援的第一階段。有關克隆的概述,請參閱路線圖。
仍然有相當多的使用者故事需要實現和一些問題需要解決,但支援克隆的大部分基礎設施已經到位並通過了基本測試。
當一個具有作用域的應用程式(即 PAR 檔案或具有作用域的計劃)由於使用約束而無法解析時,克隆會自動觸發。指定失敗使用約束的捆綁包被克隆到應用程式的作用域中,嘗試解析,並重復此過程直到解析成功或沒有更多候選捆綁包可供克隆,在這種情況下,應用程式的部署將失敗。
克隆也可以透過使用新的“sharing”指令在 import-bundle 或 import-library 上手動觸發。例如
Import-Bundle: org.foo.mybundle;sharing:=clone
或
Import-Library: org.springframework.spring;sharing:=clone
如果自動或手動克隆導致 Spring DM 擴充套件器(extender)的任何依賴項被克隆,那麼該擴充套件器也會被克隆到應用程式的作用域中。dm Server 的一些直接處理 Spring 和 Spring DM 型別的程式碼需要進行更改,以應對 Spring 捆綁包被克隆的情況。在某些情況下,使用此類型別的程式碼被打包成小型捆綁包,然後被克隆。在其他情況下,程式碼被更改為透過基於 OSGi 藍圖服務草案的(未克隆的)介面分派到此類型別。
M1 包含了共享儲存庫支援的第一階段。可以透過確保託管儲存庫 PAR 檔案位於 pickup 目錄中,並且 config/hostedRepository.config 中的配置適當來將 dm Server 節點配置為託管共享儲存庫。例如
{
"my-hosted-repo" : {
"type" : "external",
"searchPattern" : "repository/hosted/*"
}
}
此配置將建立一個名為 my-hosted-repo 的託管儲存庫,其中填充了 repository/hosted 目錄的內容。然後可以透過更新其 config/repository.config 檔案以新增遠端儲存庫條目來將 dm Server 節點配置為訪問此託管儲存庫。例如,假設託管儲存庫節點在 my-host 上執行,並且 Tomcat 配置為監聽 8080 埠
{
...
"remote-repo" : {
"type" : "remote",
"uri" : "http://my-host:8080/com.springsource.server.repository/my-hosted-repo",
"indexRefreshInterval" : 30,
},
"repositoryChain" : [
"bundles-subsystems",
"bundles-ext",
"bundles-usr",
"libraries-ext",
"libraries-usr",
"remote-repo"
]
}
共享儲存庫以及 dm Server 2.0 的儲存庫支援將在後續部落格文章中詳細介紹。
為了更好地反映 dm Server 的模組化特性,我們已將 dm Server 程式碼庫拆分為多個新的 Subversion 儲存庫,這些儲存庫現已公開可訪問
每個儲存庫都劃分為一個通用的資料夾結構,儲存庫根目錄有三個目錄。我們以 kernel 的儲存庫為例
svn ls https://anonsvn.springsource.org/svn/dm-server-kernel
development-branches/
main-branches/
tags/
最受關注的是 main-branches 和 tags 目錄。tags 目錄包含核心的每個標記版本(tagged release)的目錄,例如,它目前包含 M1 版本的一個標籤。main-branches 目錄包含我們當前正在開發的每個主要分支(即 release)的目錄。2.0 版本代號為 Jersey(以島嶼命名),如您所見,main-branches 目錄包含 jersey (2.0) 版本的目錄
svn ls https://anonsvn.springsource.org/svn/dm-server-kernel/main-branches
jersey/
如果您只是想建立 dm Server 安裝二進位制檔案,最簡單的方法是打包現有的二進位制檔案。或者,如果您有興趣修改或新增 dm Server 程式碼庫,也可以從原始碼編譯所有 dm Server 程式碼庫並將其打包成安裝二進位制檔案。
在從原始碼構建 dm Server 之前,您必須在機器上完成以下設定
完成此設定後,您就可以構建 dm Server 了。
打包現有的已釋出二進位制檔案很簡單。只需檢出打包儲存庫
svn co https://anonsvn.springsource.org/svn/dm-server/tags/2.0.0.M1
然後進入 build-dm-server 目錄並使用 Ant 執行 jar 和 package 目標
cd 2.0.0.M1/build-dm-server
ant jar package
構建將下載構成 dm Server 2.0.0.M1 版本的所有捆綁包,並將它們打包成安裝二進位制檔案。您可以在 target/artifacts 目錄中找到此二進位制檔案。
要完全從原始碼構建 dm Server,您需要檢出更多儲存庫,以便將整個程式碼庫放在您的機器上。各種儲存庫檢出到的目錄名稱及其相對位置很重要,因此請使用下面顯示的目錄名稱並從同一目錄執行所有檢出
svn co https://anonsvn.springsource.org/svn/dm-server-util/main-branches/jersey util
svn co https://anonsvn.springsource.org/svn/dm-server-repository/main-branches/jersey repository
svn co https://anonsvn.springsource.org/svn/dm-server-osgi/main-branches/jersey osgi-extensions
svn co https://anonsvn.springsource.org/svn/dm-server-kernel/main-branches/jersey kernel
svn co https://anonsvn.springsource.org/svn/dm-server-servlet/main-branches/jersey servlet
svn co https://anonsvn.springsource.org/svn/dm-server-web/main-branches/jersey web
svn co https://anonsvn.springsource.org/svn/dm-server-documentation/main-branches/jersey documentation
svn co https://anonsvn.springsource.org/svn/dm-server/main-branches/jersey packaging
接下來,進入 packaging/build-dm-server 目錄
cd packaging/build-dm-server
現在執行 src-build Ant 目標
ant src-build
構建完成後,帶有時間戳的 dm Server 安裝二進位制檔案(以 zip 檔案的形式)現在可以在 target/artifacts 中找到。其名稱將採用 springsource-dm-server-2.0.0.BUILD- 的形式