领先一步
VMware 提供培训和认证,以加快您的进度。
了解更多dm Server 2.0 的开发工作已经进行了一段时间,我很高兴地宣布第一个里程碑版本现已可以下载。您可以从我们的主页下载。您可以在我的上一篇文章中找到有关此版本和即将发布的版本的更多信息。
在这篇博文中,我将概述
对于 2.0 版本的开发,dm Server 团队采用了 Scrum。您可以在我们的JIRA中查看我们当前的 sprint 和发布 backlog。和以往一样,dm Server 的开发由用户的需求驱动。如果您在 backlog 中看到您希望我们实现的项目,请花时间为其投票。同样,如果您希望 dm Server 能够完成 backlog 中目前未涵盖的功能,请创建一个新的用户故事来描述您希望实现的功能。
计划文件的语法非常简单。外部的<plan/>标签定义了名称和版本,以及范围和原子性要求。(对于此里程碑版本,只支持既有范围又有原子性的计划)。在
<?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 包含克隆支持的第一阶段。请参阅路线图以了解克隆的概述。
仍有相当多的用户故事需要实现,还有一些问题需要解决,但支持克隆的大部分基础设施已经到位并通过了基本测试。
当由于 uses 约束而导致范围应用程序(即 PAR 文件或范围计划)无法解析时,会自动触发克隆。指定失败 uses 约束的捆绑包将克隆到应用程序的范围中,尝试解析,并重复此过程,直到解析成功或没有更多候选捆绑包可供克隆,在这种情况下,应用程序的部署将失败。
也可以使用新的“共享”指令在 import-bundle 或 import-library 上手动触发克隆。例如
Import-Bundle: org.foo.mybundle;sharing:=clone
或
Import-Library: org.springframework.spring;sharing:=clone
如果自动或手动克隆导致 Spring DM 扩展器的任何依赖项被克隆,则扩展器也将被克隆到应用程序的范围中。一些直接处理 Spring 和 Spring DM 类型的 dm Server 代码需要更改,以便在 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 存储库,这些存储库现在是公开可访问的。
每个存储库都分为一个通用的文件夹结构,存储库的根目录下有三个目录。让我们以内核存储库为例
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
构建完成后,现在可以在 target/artifacts 中找到一个带时间戳的 dm Server 安装二进制文件(zip 文件形式)。它的名称将采用 springsource-dm-server-2.0.0.BUILD-