Bundle.update:NetBeans 与 OSGi

阅读数:1610 2010 年 2 月 28 日

话题:Java语言 & 开发架构

自从上次发布的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 的开发。虽然GitHg都在频繁地进行更新,但 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