Bundle.update:NetBeans 与 OSGi

阅读数:1719 2010 年 2 月 28 日 11:53

自从上次发布的 Bundle.update 以来又有很多新变化:NetBeans 发布了一个新的里程碑版本,增加了对嵌入式 OSGi bundle 的支持、本周的 London OSGi DevCon 有不少地方值得我们关注、ECF 3.2 发布了、EGit/JGit 在 DVCS 的世界中飞速前进着。

NetBeans 6.9 M1 与 OSGi

NetBeans 6.9 M1 于近日发布,值得关注的地方是此前试验性的 Netigso 正式成为了核心平台的一部分。

现在的 NetBeans 嵌入了 Apache Felix 运行时,这样 OSGi bundle 就可以运行在 IDE 进程中了。借助于该特性, GlassFish (已经变成了 OSGi 应用)就可以运行在 NetBeans 本身的进程当中了。

Netisgo 还提供了一个薄层以便 NetBeans 模块能够包装并调用 OSGi 组件,反之亦然。然而,它并非是要替代 NetBeans 的模块化系统,现在的 NetBeans 上将有两个并行的模块化系统同时运作。

现在还有一个试验性的 NetBeansInOSGi 旨在使用 OSGi 作为底层的运行时以支撑 NetBeans 的模块化系统。代码无须重新编译,因为 NetBeans 模块依然还在使用当中,但现在使用的并非是私有的运行时;相反,每个 NetBeans 模块都将成为一个 OSGi 运行时。

由于整合了 IntelliJ 的 Osmorc 插件(向 IntelliJ 用户提供了 OSGi 开发的能力),现在所有的主流 Java IDE 都提供了开箱即用的 OSGi 支持,同时 Eclipse 3.6M5 也于近日发布了。

OSGi DevCon

本周将要召开 OGSi DevCon London ,一同举办的还有 JAX London 。目前大会议程已经确定,周二晚上20:00~22:15 将举办一场免费的 JAX Community Night ,然而对于那些不参加 JAX 的人来说需要注册才行

Kirk Knoernschild 的演讲“OSGi in the Enterprise”将拉开本次大会的序幕;演讲中将会提到代码行数每7 年将会增加一倍,对此Kirk 说到:

根据这些数据我们来看看未来 7 年将会发生哪些事情。在 2010~2017 年间,我们所编写的代码量将超过现有的所有代码总量!
  • 自从 2002 年 Spring framework 首度发布到 2008 年 Spring framework 2.5 发布以来,总的代码增长量超过了 500% 。
  • 2002 年的 FreeBSD 大约包含 800 万行代码,而到了 2009 年,其代码量接近 1600 万行。
  • 2004 年的 Linux Kernel 大约包含 600 万行代码,而到了 2009 年,其代码量达到了 1200 万行。

实际情况是代码还会继续增长,如果管理不好复杂性,这将成为一个越来越棘手的问题,解决之道就是模块化。

OSGi DevCon 还会提供一些指南向那些新手介绍 OSGi 的重要性,同时还有关于 Java Persistence API 与 dm Server 的最新消息。

ECF 3.2 发布,带有远程服务

Scott Lewis 在上周发布了 ECF 3.2,大家可以从 Eclipse 下载页面下载。Eclipse Communication Framework 为 Eclipse 与外界通信提供了基础,包括 P2 更新管理器的 HTTP 下载。

此次发布一个值得关注的地方就是提供了对OGSi 4.2 remote services API 的支持,这样OSGi 服务就可以在VM 之间通信了。这种通信无须额外编码,只要配置好属性 service.remote.interfaces 和 service.exported.configs 即可。稍后我们将会发布关于模块化Java 的系列文章,里面将会介绍如何使用OSGi 中的远程服务。

ECF 还提供了其他几个通信服务,包括对基于 REST 的 API 的异步访问、负载平衡的客户端请求以及对 Google Wave 协议的访问。

EGit/JGit early access

随着 DVCS 的兴起,Eclipse 将致力于 Git 和 Hg 的开发。虽然 Git Hg 都在频繁地进行更新,但 EGit 位于 Eclipse 上,拥有 Eclipse 更新站点(HgEclipse 也有一个更新站点,但却是JavaForge 而非Eclipse.org)。

虽然 EGit 提供了 Eclipse UI,但重要的事情都是由 JGit 实现的。JGit 是个 OSGi bundle,可以嵌入到其他 OSGi 运行时当中以支持 Git(比如说可以将其插入到 NetBeans 新的 OSGi 系统当中)。如果你有一个 OSGi 运行时,同时需要获取/共享分布式的配置信息,那么就可以使用 Git 了。

如果没有使用过 DVCS 但却想了解一下,我之前曾撰写了一篇博文,介绍了DVCS,尤其是Git,同时还解释了其与传统的CVCS 如SVN 与CVS 之间的差异,大家不妨读一下。Ekke 曾发表过一个关于Git 和Mercurial 的指南,Lars Voge 也发布了一个 Version control with Git 指南,这两个指南都使用到了 Eclipse。

查看英文原文: Bundle.update: NetBeans and OSGi

评论

发布