領先一步
VMware 提供培訓和認證,助力您快速進步。
瞭解更多dm Server 2.0 的開發工作已經全面展開一段時間了,我很高興地宣佈第一個里程碑版本已可供下載。您可以從我們的主頁下載。有關此版本和即將釋出版本的更多功能資訊,請參閱我的上一篇文章。
在這篇部落格文章中,我將概述
為了開發 2.0 版本,dm Server 團隊採用了 Scrum。您可以在我們的 JIRA 中檢視我們當前的衝刺和釋出待辦事項列表。一如既往,dm Server 的開發是由我們使用者的需求驅動的。如果您在待辦事項列表中看到您希望我們實現的專案,請花時間投票支援它。同樣,如果您希望 dm Server 能夠完成待辦事項列表中未涵蓋的功能,請開啟一個新的使用者故事來描述您希望實現的功能。
計劃檔案的語法非常簡單。外部的 <plan/> 標籤定義了名稱 (name) 和版本 (version),以及作用域 (scoping) 和原子性 (atomicity) 要求。(在此里程碑版本中,僅支援既有作用域又具有原子性的計劃)。在
<?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 檔案或具有作用域的計劃)由於 uses 約束而無法解析時,會自動觸發克隆。指定失敗 uses 約束的捆綁包會被克隆到應用程式的作用域中,然後嘗試解析,此過程會重複進行,直到解析成功,或者沒有更多可供克隆的候選捆綁包,此時應用程式的部署失敗。
也可以在使用新的 "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 blueprint service 草案的(非克隆的)介面分派給這些型別。
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 倉庫,這些倉庫現在可以公開訪問:
每個倉庫都劃分成一個通用的資料夾結構,倉庫根目錄下有三個目錄。讓我們以核心倉庫為例來看看:
svn ls https://anonsvn.springsource.org/svn/dm-server-kernel
development-branches/
main-branches/
tags/
最令人關注的是 main-branches 和 tags 目錄。tags 目錄包含核心每個標記釋出版本對應的目錄,例如,目前它包含 M1 釋出版本的單一標籤。main-branches 目錄包含我們當前正在開發的每個主分支(即釋出版本)對應的目錄。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-