
模块化Java简介
过去几年,Java模块化一直都是一个活跃的话题。从JSR 227(现已废止)到JSR 291,以及正在进行中的JSR 294,模块化看起来是Java进化过程中的必经一环。即便是基于JVM的未来语言,比如Scala,也考虑了模块化的问题。那么,模块化意味着什么?为什么要关注它呢?

过去几年,Java模块化一直都是一个活跃的话题。从JSR 227(现已废止)到JSR 291,以及正在进行中的JSR 294,模块化看起来是Java进化过程中的必经一环。即便是基于JVM的未来语言,比如Scala,也考虑了模块化的问题。那么,模块化意味着什么?为什么要关注它呢?

最近,Java模块系统受到了越来越多的关注。原因之一是关于JSR-277和OSGi部分重合的争议。另外就是Java 7的计划。在这篇文章中,Lukas Krecan为我们综合了当前的解决方案,并提出了对即将出现的像Jigsaw和JSR-294这样的方案的担忧。
Mark Reinhold前些天公布了Java模块化的第一份公开草案。由于这只是一份草案,有些问题仍然需要商讨,但它已经对什么是Java模块化进行了统一的定义。有IBM的参与,这份草案比以往更加关注与OSGi之间的互操作性。
自从上次的bundle.update发布以来,在OSGi与模块化Java领域中发生了一系列值得我们关注的事件:JSR 294被叫停、Enterprise Expert Group发布了第4个草案、WebSphere上可以直接运行OSGi应用以及即将到来的OSGi大会对预先报名者提供折扣优惠,同时演讲人招募的时间即将截止。
紧跟着早前发布的关于模块化JDK的声明(InfoQ之前曾报道过),Mark Reinhold宣布Jigsaw项目成为OpenJDK的一部分。难道这标志着JSR277已死?
上个月我们问到Sun是否在关注OSGi;从JavaOne大会上我们很清楚地看到很多人都在关注它。不仅所有主流J2EE引擎现在都支持OSGi,而且连Spring也发布了其基于OSGi的Spring Source应用平台。幸运的是,在JSR277幕后已经发生了大量积极的变化;请继续阅读后面的内容以了解这一切。
JSR 277背后的专家组一直比较安静,丝毫不理会来自社区关于其现状及与OSGi兼容的可能性问题。最近几周,要求提供信息及批评之声日渐高涨。
Spring Dynamic Modules for OSGi(也就是从前的Spring-OSGi)今天发布了1.0版本。InfoQ就这个版本的发布以及它能为Spring社区提供什么采访了 SpringSource的CTO——Adrian Colyer和Spring Dynamic Modules项目的领导人——Costin Leau。
最近,Alex Blewitt称Java Community Process(JCP)已经死了,将之喻为无头鸡:“自己还没有意识到,仍在四处奔跑,但实际已死了”。由此引发一场关于JCP作用,及其在Java的未来中将扮演什么角色的争论。