Git迁移
你们中的一些人可能已经注意到,在最近的帖子中,dm Server团队一直在引用Git仓库URL。该团队一直在迁移其所有源代码,我现在很高兴地宣布此迁移已完成。以下列表包含dm Server团队管理的代码的Git URL。如果您正在引用SVN中的等效存储库,请改用克隆这些新存储库。
此公告仅涵盖dm Server团队管理的代码,而不是Spring产品组合的全部内容。其他项目将以自己的速度进行转换,而Subversion……
dm Server 2.0 M3
在自2.0.0.M3以来的冲刺中,我们在最终版本方面取得了重大进展,无论是在新功能方面,还是在缺陷修复方面。如果您有兴趣了解我们一直在做的所有工作,请查看M3发行说明。请继续将您的反馈作为评论发布到我们的博客、论坛和JIRA上。
新增亮点
集成OSGi Web容器参考实现
dm Server现在包含OSGi Web容器参考实现,并将其用于所有Web支持。作为这项工作的一部分,我们还改用标准XML格式来配置dm Server中的Tomcat。管理控制台中的转储分析
已向dm Server的管理控制台添加新的转储检查器。转储检查器可用于检查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内核 |
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……
针对Eclipse 3.5更新的STS 2.1.0.RC1
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创建了一个用于创建PAR文件的Maven插件。这是一个伟大的社区贡献,我们甚至在dm Server 1.0.x的入门指南中使用了它。
随着dm Server 2.0里程碑的进展,我们一直在向PAR文件添加新功能。最有趣的功能是,现在PAR文件可以包含不仅仅是JAR文件。随着OSGi RFC 66的推出,dm Server已弃用Web模块,转而支持使用以下内容的标准Web容器文件:.war……
OSGi DevCon Europe上的消息传递与OSGi相遇
昨天我在OSGi DevCon Europe上发表演讲,主题是如何以务实的方式使用Spring Integration和dm Server来解决大型应用程序中的常见问题。在我的会议之前和之后,我和各种人交谈过,他们希望获得更多关于这些想法的信息。本博客将概述我所谈论的内容。
我将直接从演示文稿的摘要开始。
任何项目在其活跃开发期间都会增长。通常,开发人员会通过添加代码来添加产品所有者提出的功能和修复问题。此过程会自然地增加代码库……
OSGi测试存根1.0.0.M1
我很高兴地宣布SpringSource的OSGi测试存根的1.0.0.M1版本。这些存根提供了一种无需完整的OSGi容器即可对复杂的OSGi框架交互进行单元测试的方法。
问题
随着dm服务器团队的不断发展,我们发现测试过程中最大的问题之一在于:BundleActivator。我们的BundleActivators执行大量服务发布到服务注册中心以及使用ServiceTracker消费服务。这些任务涉及许多与BundleContext、Bundle、ServiceRegistration和ServiceReference交织的调用。最初,这些激活器很简单,无需进行大量的单元测试,我们依靠集成测试来捕获任何引入的错误。然而,随着时间的推移,激活器变得越来越复杂,单元测试的需求也越来越迫切。我们开始使用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…