Maven PAR 插件 1.0.0.M1

工程 | Ben Hale | 2009 年 6 月 24 日 | ...

在 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的结合

工程 | 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 框架交互进行单元测试的方法。

问题

随着 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…

通过 JMX 访问 dm Server 仓库内容

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

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

现在,使用 JMX 客户端连接到正在运行的 dm Server 实例会显示一个 Repository 组。在此组下,每个已配置的仓库(链式仓库除外)都有一个 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 文件,并编辑配置文件配置部分以列出 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 捆绑包。这被证明非常有用,尤其是在将现有的 WAR 文件部署到 OSGi 环境时。我最近花了一些时间将此功能从 dm Server 的 Web 子系统迁移到 OSGi Web 容器 RI。这篇博文将介绍新功能,以及如何使用它。

启用系统包的导入

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

在安装 Web 捆绑包时,您现在可以使用 SpringSource-SystemPackages...

使用 Spring BlazeDS Integration 1.0

工程 | Jeremy Grelle | 2009 年 6 月 11 日 | ...

今天,我们宣布了 Spring BlazeDS Integration——Spring 开源项目组合的最新成员——1.0 GA 版本公开发布。与此事件相呼应,我认为是时候更新我 之前的入门文章了。回顾一下

该项目的目标是让使用 Adobe Flex 作为前端客户端构建 Spring 驱动的富互联网应用程序更加容易。它旨在通过提供对使用开源 Adobe BlazeDS 项目及其强大的远程和消息传递功能与熟悉的 Spring 编程模型相结合的一流支持来实现这一目标。

试用 Spring BlazeDS Integration

自第一个 M1 版本以来,我们极大地扩展了功能集,包括
  • 完整的 Spring Security 集成
  • 异步消息支持(具有 3 种不同的消息目标类型)
  • 完整的 XML 配置命名空间
  • 用于远程处理的基于注解的配置选项
  • 众多高级定制钩子

现在随 项目分发版 一起提供的是与 Adobe 合作构建的详尽的示例集合,这些示例演示了各种功能的使用,称为 Spring BlazeDS Integration Test Drive。这些示例是快速上手该项目的绝佳方式,在这里我将为您快速介绍...

dm Server 2.0 M3 中的克隆

工程 | Glyn Normington | 2009年6月10日 | ...

克隆是dm Server 2.0中的一个功能,它将某些捆绑包和库复制到限定范围的应用程序(即PAR或限定范围的计划)中,如路线图中所述。

在过去的几个冲刺中,dm Server对克隆的支持稳步发展。基本机制已在M1中到位:克隆可以通过以下方式触发

  • 通过在import-library或import-bundle上指定指令sharing:=clone手动触发
  • 当限定范围的应用程序因用途约束冲突而无法解析时自动触发。

此后,代码经过了一些整理,针对Spring框架被克隆的常见情况添加了主要的性能优化,添加了日志消息以指示哪些捆绑包已被克隆,改进了跟踪,并修复了一些错误。

我们注意到手动克隆是一个相对安全的操作,因为它完全在用户的控制之下。然而,自动克隆总是推测性的。它由OSGi解析器故障驱动,特别是用途约束的冲突(如早期博客中所述)。有些用途约束冲突无法通过克隆避免,但我们无法在尝试自动克隆并确定用途…之前判断。

Spring Security 3.0.0.M1 发布

工程 | Luke Taylor | 2009 年 6 月 3 日 | ...

我们很高兴地宣布 Spring Security 3.0 的第一个里程碑版本现已可供 下载。该版本也可通过 Maven 里程碑存储库获得,地址为http://maven.springframework.org/milestone。与 Spring 3.0 一样,这是第一个要求最低 JDK 1.5 才能运行的发布版本,并且还需要 Spring 3.0,因此如果您还没有使用 Spring 3.0,应该获取 Spring 3.0.0.M3 版本。那么,在这个版本中有哪些新功能和变化呢?

基于表达式的访问控制

此版本首次包含我们 Spring-EL 的授权支持预览。您现在可以在方法注解和 Web 安全中使用表达式。与熟悉的属性和投票者机制相比,这开辟了许多新的可能性。一个简单的例子可能是一个好的开始。这里有一个针对 Web 应用程序的例子,使用了安全命名空间

  <http use-expressions="true">
     <intercept-url pattern="/secure/**" access="hasRole('ROLE_SUPERVISOR') and hasIpAddress…

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

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

查看所有