dm Server 2.0 M3

工程 | Andy Wilkinson | 2009 年 7 月 15 日 | ...

dm Server 2.0.0.M3 已发布,现可供下载

自 2.0.0.M3 以来的各个冲刺中,我们在新功能和缺陷修复方面都取得了重大进展,朝着最终发布版本迈进。如果您有兴趣了解我们一直在做的工作,请查看 M3 发布说明。请继续在我们的博客评论区、论坛以及 JIRA 上向我们提供反馈。

新增和值得关注的内容

集成 OSGi Web Container 参考实现

dm Server 现在包含 OSGi Web Container 参考实现,并在此基础上构建其所有 Web 支持。作为这项工作的一部分,我们还开始在 dm Server 中使用标准的 XML 格式来配置 Tomcat。

Admin Console 中的 Dump 分析

dm Server 的 admin console 中添加了一个新的 Dump Inspector。Dump Inspector 可用于检查 dm Server 可维护性组件生成的诊断 Dump。

dump-inspector

使用 Git 作为我们的版本控制系统

我们最近已将 dm Server 的源代码迁移到 Git,因为我们认为 Git 的分布式特性和其对分支的出色支持能带来显著优势。如果您有兴趣访问 dm Server 的源代码,并从源代码构建 dm Server,可以在下面找到在代码托管在 Git 后进行操作的说明。

文档更新

新增的一些功能现在已涵盖在 dm Server 的用户指南程序员指南中。

ConfigurationAdmin 的使用

dm Server 现在广泛使用 ConfigurationAdmin 来管理其配置。这导致 dm Server 的配置文件及其格式发生了变化。新的文件和格式在更新的用户指南中有所描述。

更新的应用开发指南

我们更新了关于使用 dm Server 创建企业 Java 应用的指南,使其与 2.0 版本保持同步。

使用 dm Server 的源代码

dm Server 的 Git 仓库

仓库 URL内容
git://git.springsource.org/dm-server/util.git通用工具代码
git://git.springsource.org/dm-server/artifact-repositoryArtifact 仓库
git://git.springsource.org/dm-server/osgi-extensions.gitOSGi 扩展和 Equinox Hook
git://git.springsource.org/dm-server/kernel.gitdm Kernel
git://git.springsource.org/dm-server/web.gitOSGi Web Container 集成和扩展
git://git.springsource.org/dm-server/servlet.gitAdmin console
git://git.springsource.org/dm-server/hosted-repository托管 Artifact 仓库
git://git.springsource.org/dm-server/documentation.git文档
git://git.springsource.org/dm-server/dm-server.git打包

从源代码构建 dm Server

设置
在从源代码构建 dm Server 之前,需要在您的机器上进行以下设置
  • 已安装 Java 6 并配置 JAVA_HOME 环境变量指向它
  • 已安装 Ant 1.7.1 或更高版本
  • 已配置 ANT_OPTS 环境变量,提供至少 512MB 的最大堆内存,例如 ANT_OPTS=Xmx512m
  • Git 客户端
  • 完成这些设置后,您就可以构建 dm Server 了。

    打包已发布的二进制文件
    构建打包好的 dm Server zip 文件最简单的方法是使用已发布的现有二进制文件进行构建
    git clone git://git.springsource.org/dm-server/dm-server.git
    cd dm-server
    git checkout --track 2.0.0.M3 -b 2.0.0.M3
    ant…

使用 SpringSource Slices 实现可插拔样式

工程 | Andy Wilkinson | 2009 年 7 月 10 日 | ...

自从我们宣布 SpringSource Slices 以来,许多用户和客户询问如何使用 Slices 使其网站的样式和品牌可插拔。在这篇博客中,我将展示使用 Slices 实现这一点是多么容易。

可插拔样式

我有一个标准的 war 文件,名为 styled.host.war,其中包含一个非常简单的 index.html 页面
<html>
	<head>
		<title>SpringSource Slices Pluggable Styling Demonstration</title>
		<link rel="StyleSheet" href="styles/main.css" type="text/css" />
	</head>
	<body>
		<div class="header">
			<div class="title">SpringSource Slices</div>
			<div class="subtitle">Pluggable Styling Demonstration</div>
		</div>
	</body>
</html>

如您所见,它正在寻找一个 CSS 文件…

使用 Yourkit 查找内存泄漏

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

今天使用 Yourkit 的体验非常棒,我想快速写一篇推荐。我上一次认真使用它还是几年前,那时它已经是能找到的最好的工具了,但现在它变得更加顺畅。我没有对市场进行详尽的调研,而且那也不是本次的目的:我只是想要一个能解决问题的工具。

这是我今天的故事;先是沮丧,然后是烦躁,最后是满意。我在 Spring Batch 中发现了一个疑似内存泄漏,需要快速追查。背景是我见过很多内存泄漏,但已经很久没有亲自解决过一个了。我最近一直“生活”在 STS 中(有时甚至在梦里也是),所以我需要一个能在 IDE 中良好工作的工具。我试了两个工具,但只是因为第一个不行。我试过的两个是 TPTPYourkit

在 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 Plugin 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 Modules,转而使用标准的 Web Container 文件,格式为.war

Messaging 在 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 团队开发过程中,我们发现在测试方面最大的问题之一在于 BundleActivators.  我们的BundleActivators向服务注册中心发布服务,并使用ServiceTracker消费服务。 这类任务涉及许多与BundleContexts、Bundles、ServiceRegistrations 和ServiceReferences 的交织调用。 最初,这些 activator 足够简单,没有进行太多单元测试,我们依赖于集成测试来捕获引入的任何 bug。 然而,随着时间的推移,activator 变得越来越复杂,单元测试成为一个更迫切的需求。 我们开始使用 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 返回其中包含的所有 artifact 的摘要。该 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,然后更新 dm Server 的配置文件以启动新的子系统。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 子系统并为该 profile 赋予一个合适的名称(我将其命名为 slices)。

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

探索 Roo 的架构

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

上个月我们发现使用 Spring Roo(我们为 Java 开发者打造的新生产力工具)只需几分钟就能轻松构建一个功能完善的企业应用。虽然许多 Java 开发者已经开始评估 Roo帮助节省项目时间,但我收到了很多对 Roo 实际工作方式感到好奇的人的提问。在这篇博客文章中,我将深入探讨 Roo 的架构,包括其目标、原型替代方案、设计原理和实现细节。到最后,您将对 Roo 的运作原理及其方法有一个很好的理解…

订阅 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

抢占先机

VMware 提供培训和认证,助您快速进步。

了解更多

获取支持

Tanzu Spring 通过简单的订阅即可提供对 OpenJDK™、Spring 和 Apache Tomcat® 的支持及二进制文件。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看全部