Git 迁移
你们中的一些人可能已经注意到,在最近的帖子中,dm Server 团队一直在引用 Git 仓库 URL。该团队一直在迁移其所有源代码,我很高兴地宣布此迁移已完成。以下列表包含由 dm Server 团队管理的代码的 Git URL。如果您之前在 SVN 中引用了等效的仓库,请转而克隆这些新仓库。
此公告仅涵盖由 dm Server 团队管理的代码,而不包括 Spring 组合的全部。其他项目将以自己的速度进行转换,并且 Subversion……
dm Server 2.0 M3
dm Server 2.0.0.M3 已发布,现已可供 下载。
在 2.0.0.M3 发布后的冲刺阶段,我们在新功能和缺陷修复方面都取得了重大进展。如果您有兴趣了解我们所做的工作,请查看 M3 发行说明。请继续通过博客评论、论坛和 JIRA 提供您的反馈。
新功能和值得关注的改进
集成 OSGi Web 容器参考实现
dm Server 现在包含 OSGi Web 容器参考实现,并利用它来支持所有 Web 功能。在此工作的基础上,我们还迁移到使用标准的 XML 格式来配置 dm Server 中的 Tomcat。管理控制台中的转储分析
dm Server 的管理控制台中新增了一个转储检查器 (Dump Inspector)。转储检查器可用于检查 dm Server 可服务性组件生成的诊断转储。使用 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-repository | 工件存储库 |
| git://git.springsource.org/dm-server/osgi-extensions.git | OSGi 扩展和 Equinox 钩子 |
| git://git.springsource.org/dm-server/kernel.git | dm Kernel |
| git://git.springsource.org/dm-server/web.git | OSGi Web 容器集成和扩展 |
| git://git.springsource.org/dm-server/servlet.git | 管理控制台 |
| git://git.springsource.org/dm-server/hosted-repository | 托管的工件存储库 |
| 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 进行可插拔样式
自从我们 宣布 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 查找内存泄漏
我今天在使用 Yourkit 时获得了非常棒的体验,因此我想写一篇快速的推荐。自从我上次认真使用它以来已经有几年了,即使在那时它也是我能找到的最好的工具,但现在它确实超级流畅。我没有对市场进行详尽的调查,那也不是本次练习的目的:我只想用一个工具来解决问题。
这是我一天中的故事;沮丧,然后恼火,最后满意。我怀疑 Spring Batch 中存在内存泄漏,而且我需要快速找到它。这背后的故事是我见过很多内存泄漏,但已经很久没有亲自处理过了。我这些天生活在 STS 中(有时甚至在里面做梦),所以我需要一个在 IDE 中运行良好的工具。我尝试了两种工具,但只因为第一个选择不起作用。我尝试的是 TPTP 和 Yourkit…
STS 2.1.0.RC1 已更新以支持 Eclipse 3.5
最新的 SpringSource Tool Suite 发布候选版本已更新,支持全新的 Eclipse Galileo 版本。STS 2.1.0.RC1 包括对 Spring Roo、SpringSource dm Server 和 tc Server、企业 OSGi 工具以及所有一如既往的强大 Spring 开发工具的支持。此最新版本还支持 Mac OS X 64 位 Cocoa 客户端。当然,SpringSource Tool Suite 的 下载 是免费的,今天就开始使用最佳的企业 Java 开发 IDE 吧。
将 STS 安装到 Eclipse 3.5
今天对于 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 插件 1.0.0.M1
在 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的结合
昨天我在OSGi DevCon Europe上发表演讲,内容是关于如何使用Spring Integration和dm Server以务实的方式解决大型应用程序中的常见问题。在我的演讲前后,我与许多人进行了交流,他们希望获得更多关于这些想法的信息。这篇博客将概述我所谈论的内容。
我将直接概述演示内容。
任何项目在其活跃开发生命周期中都会不断发展。通常,开发人员通过添加代码来增加功能并修复产品负责人提出的问题。这个过程自然会使代码库增长……
OSGi Test Stubs 1.0.0.M1
我很高兴地宣布 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…