使用 Yourkit 查找内存泄露

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

今天使用 Yourkit 的体验非常棒,所以我想快速写一篇推荐。我上次真正深入使用它已经是几年前的事了,即使在那时它也是我能找到的最好的工具,但现在它真的异常流畅。我没有对市场上的工具进行详尽的调查,那也不是这次的目的:我只是想要一个工具来解决一个问题。

这是我今天的故事;先是沮丧,然后是恼怒,最后是满意。我怀疑 Spring Batch 存在内存泄露,我需要快速找到它。这背后的故事是,我见过很多内存泄露,但已经很久没有亲身处理过一个了。现在我生活STS 中(有时甚至在里面做梦),所以我需要一个在 IDE 中运行良好的工具。我尝试了两个工具,只是因为第一个选择没有奏效。我尝试的两个是 TPTPYourkit

STS 2.1.0.RC1 已更新支持 Eclipse 3.5

发布 | Adam Fitzgerald | 2009 年 6 月 26 日 | ...

SpringSource Tool Suite 的最新发布候选版本已更新,可在全新的 Eclipse Galileo 版本上运行。STS 2.1.0.RC1 包括对 Spring Roo、SpringSource dm Servertc Server、企业 OSGi 工具以及所有常用的优秀 Spring 开发工具的支持。这个最新版本还为 Mac OS X 64 位 Cocoa 客户端提供支持。当然,SpringSource Tool Suite 的下载免费的,所以今天就开始使用这个最好的企业 Java 开发 IDE 吧。

下载 | 新特性列表 | 论坛 | JIRA

在 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 插件 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 模块,转而使用标准的 Web 容器文件,采用.war

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 团队的开发,我们发现对我们来说最大的测试问题领域在于 BundleActivator。我们的BundleActivators通过使用ServiceTracker执行了大量的服务发布到服务注册表以及消费服务。这些任务涉及许多相互交织的对BundleContextBundleServiceRegistrationServiceReference的调用。起初,这些激活器足够简单,没有对它们进行太多单元测试,我们依赖于集成测试来捕获引入的任何错误。然而随着时间的推移,激活器变得越来越复杂,单元测试变得更加紧迫。我们开始使用 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 返回其中包含的所有工件的概要信息。该 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,然后更新 dmServer 的配置文件以启动新的子系统即可。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 子系统并给配置文件一个合适的名称(我称之为 slices)

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

探索 Roo 的架构

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

上个月我们发现了使用 Spring Roo(我们为 Java 开发人员提供的新生产力工具)在短短几分钟内构建一个功能齐全的企业应用程序有多容易。虽然许多 Java 开发人员已经开始评估Roo帮助节省他们项目时间,但我收到了很多关于 Roo 实际如何工作的疑问。在这篇博客文章中,我将深入探讨 Roo 的架构,包括其目标、原型替代方案、设计原理和实现细节。读完后,您将对 Roo 的工作原理及其方法有一个很好的了解…

将 WAR 部署到 OSGi Web 容器现在更加容易

工程 | Andy Wilkinson | 2009 年 6 月 16 日 | ...

正如 Rob 在他关于OSGi Web 容器的介绍中提到的,dm Server 会自动将系统包导入到 Web Bundle 中。这已被证明非常有用,尤其是在将现有 WAR 文件部署到 OSGi 环境中时。我最近花了一些时间将此功能从 dm Server 的 Web 子系统迁移到 OSGi Web 容器 RI 中。这篇博客描述了新功能以及如何使用它。

启用系统包导入

有两种方法可以指示 RI 导入所有导出的系统包。

当您安装 Web Bundle 时,您现在可以使用 SpringSource-SystemPackages…

订阅 Spring 新闻通讯

订阅 Spring 新闻通讯,保持连接

订阅

抢先一步

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

了解更多

获取支持

Tanzu Spring 在一个简单的订阅中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将到来的活动

查看 Spring 社区所有即将到来的活动。

查看全部