Ben Hale

Ben Hale

博客文章作者:Ben Hale

Bundlor 1.0.0.RC1 已发布

工程 | 2009年12月23日 | ...

我非常激动地宣布 Bundlor 1.0.0.RC1 现已发布。自 M6 版本以来,Bundlor 经历了许多变化,包括新增了检测和警告标准,并改进了 ANT 和 Maven 配置。

这个里程碑标志着 1.0.0 版本的特性已完成。除非出现重大问题,否则此候选版本将很快作为 1.0.0.RELEASE 发布。

检测和警告标准

Bundlor 现在可以在以下位置检测 Java 类型

Bundlor 还会扫描其生成的清单,查找以下问题并根据它们生成警告

标准化和简化的配置

在 RC1 版本发布之前,Bundlor 最明显的问题之一是各种前端(命令行、ANT、Maven)的特性和配置不一致。遗憾的是,RC1 不得不更改所有这些前端的配置参数,但最终结果是 Bundlor 配置的一致性和许多方面的简化。

请参阅 Bundlor 文档以了解您的配置选项…

dm Server 2.0.0.M6

工程 | 2009年10月27日 | ...

dm Server 2.0.0.M6 现已发布,可从此处下载。

此版本紧随 M5 版本之后发布,我们正在接近第一个 2.0.0 候选版本。此次我们非常着重于修复未解决的缺陷,并仅添加了少量新功能。请查看M6 发布说明,了解我们修复的缺陷和添加的功能的完整详情。请继续通过在我们的博客、论坛以及 JIRA 上发表评论来提供您的反馈。

新增和值得关注的

将 dm Kernel 和 dm Server 作为服务运行

dm Kernel 和 dm Server 现在可以在 Windows 和 UNIX 机器上作为服务启动。要在 Windows 上安装服务,您需要编辑$HOME/bin/service/conf/wrapper.conf文件以正确列出 kernel 或 server 的路径。然后运行$HOME/bin/service/windows.bat install。还有其他命令需要运行,dm Server 文档介绍了其他命令。

UNIX 用户甚至更方便,因为$HOME/bin/service目录包含许多init.d兼容的…

dm Server 2.0.0.M5

工程 | 2009年10月12日 | ...

dm Server 2.0.0.M5 现已发布,可从此处下载。

我们正接近 2.0.0 发布周期的尾声,因此此里程碑的大部分工作都集中在锁定用户交互模型。请查看 M5 发布说明,了解我们一直在努力的完整详情。请继续通过在我们的博客、论坛JIRA 上发表评论来提供您的反馈。

另请关注博客,了解本文新增和值得关注部分提及的许多新功能的详细文章。

新增和值得关注的

部署配置文件

属性文件现在可以部署在pickup目录或任何配置的仓库中。这些文件的内容随后可以在 OSGi 的ConfigurationAdmin中通过指定为文件名但不包含.properties扩展名的 PID 来访问。

计划属性和特性

计划现在可以拥有用于替换的全局定义属性。

<attributes>
	<attribute name="version" value="[1.0.0, 2.0.0)"/>
</attributes>

<artifact type="bundle" name="org.springframework.context.support" version="${version}"/>

计划中的 Artifacts 可以定义属性,这些属性在部署时会转换为 Bundle manifest 头部。

<artifact type="bundle" name="my.webapp" version="[1.0.0, 2.0.0)">
	<property name="Web-ContextPath" value="/foo"/>
</artifact>

管理控制台

管理控制台的 Artifacts 页面已进行了改进,可以将用户安装的 Artifacts 的依赖关系渲染为树状结构。此外,这些树的每一层都采用懒加载,从而提高了加载性能。

Admin Console

命令行 Shell

dm Server 现在附带了一个命令行 Shell,以替换之前使用的 Equinox 控制台。该控制台可以通过-shell启动命令在本地访问。

$ bin/startup.sh -shell
<KE0001I> Kernel starting.
<KE0002I> Kernel started.
<SH0001I> dm Kernel ssh shell available on port 2402.

     @@@ ***
    @@@ *****            .__.                  .__.            .__.  .__.
   @@@@ ******         __|  |  _____     _____.|  |__    ___…

Bundlor 新增对 Blueprint 服务的支持

工程 | 2009年9月26日 | ...

我很高兴地宣布,从最新发布的 1.0.0.M6 版本开始,Bundlor 现在支持 OSGi Blueprint Service 文件。

与对 Spring-DM 上下文的支持一样,Bundlor 会扫描默认位置 (OSGI-INF/blueprint/*.xml) 以及通过自定义Bundle-Blueprint清单头部指定的位置扫描 Blueprint Service 配置文件。找到这些文件后,会扫描其中的类和接口名称,并将这些类型的包添加到 Bundlor 创建的 OSGi 清单中。

有关 Bundlor 的信息和下载此最新里程碑版本,请访问 Bundlor 项目页面

Slices 菜单栏截屏视频

工程 | 2009年8月7日 | ...

我很高兴宣布 SpringSource Slices 的新截屏视频。该截屏视频演示了如何创建menu-bar示例应用程序。它展示了主机如何使用一组切片动态填充菜单栏而无需重新启动,并且可以完全与菜单栏中具体有哪些项目无关。此外,切片仅提供其特定内容,并包含来自主机 bundle 的格式和其他窗口内容。

Slice 菜单栏 (5:19)

源代码

Git 迁移

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

你们中有些人可能注意到,在最近的帖子中,dm Server 团队一直在引用 Git 仓库 URL。团队一直在迁移所有源代码,我现在很高兴宣布迁移已完成。以下列表包含了 dm Server 团队管理的代码的 Git URL。如果您之前在 SVN 中引用了等效的仓库,请改为克隆这些新仓库。

此公告仅涵盖 dm Server 团队管理的代码,不包括整个 Spring 产品组合。其他项目将按自己的进度进行转换,Subversion…

Maven PAR 插件 1.0.0.M1

工程 | 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,转而支持使用.war

OSGi 测试桩 1.0.0.M1

工程 | 2009年6月23日 | ...

我很高兴宣布 SpringSource OSGi 测试桩的 1.0.0.M1 版本发布。这些测试桩提供了一种无需完整 OSGi 容器即可单元测试复杂 OSGi Framework 交互的方法。

问题

在 dm Server 团队开发过程中,我们发现测试方面最大的问题领域之一是 BundleActivator。 我们的BundleActivators会向服务注册中心发布许多服务,并使用ServiceTrackers 消费服务。 这类任务涉及到许多交织的调用,包括对BundleContexts、Bundles、ServiceRegistrations 和ServiceReferences。 一开始,这些 activators 非常简单,没有进行太多单元测试,我们依靠集成测试来捕获引入的任何错误。 然而随着时间的推移,activators 变得更加复杂,单元测试变得更加紧迫。 我们开始使用 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 仓库内容

工程 | 2009年6月22日 | ...

dm Server 2.0.0.M1 版本中,我们新增了对共享仓库的支持。作为此新功能的后续,我们新增了通过 JMX 浏览这些仓库的支持。

现在使用 JMX 客户端连接到正在运行的 dm Server 实例时,会看到一个 Repository 组。在此组下,每个配置的仓库(链式仓库除外)都有一个 bean,该 bean 返回其中包含的所有 artifacts 的概要信息。该 bean 还暴露了一个方法,可以根据给定 bean 的类型、名称和版本返回完整的详细 ArtifactDescriptor。

JMX Repository Browsing

显然,像 JConsole 这样的工具主要用于显示少量目标数据。 对于更大的数据集,AMS 团队目前正在开发一种更易于查看的可视化工具。

将 OSGi Profile 与 Bundlor 一起使用

工程 | 2009年5月18日 | ...

在管理和转换SpringSource Enterprise Bundle Repository 中包含的如此多的 bundle 时,很难记住哪些包是 boot delegated 的,哪些是从系统 bundle 导出的,或者哪些是来自系统中其他 bundle 的。这些信息很重要,因为您可能不想导入 boot delegated 的包,您可能确实想导入版本为“0”的系统 bundle 包,并且您想为所有其他包定义自定义导入。记住每个类别中有哪些包最终会有点容易出错,并且定义模板…

领先一步

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

了解更多

获取支持

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

了解更多

近期活动

查看 Spring 社区所有近期活动。

查看全部