Sun的JSR 294被叫停 应用服务器押宝OSGi

开发 后端
Java模块化曾经有数个JSR规范,其中有原来已经被叫停的JSR 277,原本基于JSR 8后来改进为JSR 291的OSGi,以及与JDK 7的Jigsaw项目密切相关的JSR 294。不过最近,根据JSR 294邮件列表接到的一则消息,JSR 294被叫停了。

本文来自InfoQ中文站,原文标题:《Bundle.update:Java EE中的OSGi、JSR 294被叫停》。http://www.infoq.com/cn/news/2010/01/state-of-osgi

自从上次的bundle.update发布以来,在OSGi与模块化Java领域中发生了一系列值得我们关注的事件:JSR 294被叫停、Enterprise Expert Group发布了第4个草案、WebSphere上可以直接运行OSGi应用以及即将到来的OSGi大会对预先报名者提供折扣优惠,同时演讲人招募的时间即将截止。

JSR 294被叫停

Sun领导的两个模块化JSR(分别是JSR 294——Java语言改进的模块化支持,以及JSR 277——Java模块化系统)都已被叫停。这样就剩下JCP批准的模块化系统JSR 291(虽然基于有些古老的OSGi 4.1)仍活跃在各种系统中了,其中也包括Sun新近发布的GlassFish v3应用服务器。

我们尚不清楚JSR 294为何会被叫停(JSR 277已经被叫停一年了)。小组收到的上一封邮件表明:

除了实现JSR以外,JDK 7还将提供特定于实现的特性,比如classpath(没有任何一个JSR提过这部分内容)以及Jigsaw模块化系统。

JDK模块化使用了Jigsaw模块化系统。模块化的可见性是由一个原型化的模块info.java文件控制的,这在未来可能会发生变化。模块的私有访问实际上并没有在模块化中使用到,这部分主要是起引导作用的。

关于Jigsaw的进一步讨论将在Jigsaw-dev列表中展开。

简单模块系统自从被提出后就没有什么新进展,尽管版本的事情是由JSR 294控制的,但事实却并非如此,因为其开发过程是在jigsaw-dev邮件列表上进行的,而该邮件列表却游离于JSR 294专家组的邮件列表之外。种种事实表明Jigsaw采取了特定于实现的特性来模块化JDK,虽然这本身是非常好的,但却无法实现编写一次,到处运行的模块。可能以后这都不算什么大事了,因为JDK 7最早也要到2011年才会发布,应用服务器已经将宝压在了OSGi上了。

更新:在本新闻发布后,Alex Buckley证实这种停止实际上是自动的,缘于提案发布的时间而不是说项目就停止开发了。

WebSphere、GlassFish、DM Server以及基于OSGi的服务器

Kirk Knoernschild发文表明一些企业正在构筑自己的OSGi,WebSphere V7 alpha最近就声明可以将OSGi bundle部署到WebSphere中(虽然从2006年开始WebSphere server就已经运行在OSGi内核上了)。

最近发布的GlassFish v3也将OSGi运行时引入到了Sun的Java应用服务器中。尽管GlassFish还不支持直接运行本地的OSGi bundle,但我们可以将其置于Equinox和Felix上,可以在运行着的GlassFish服务器上同时运行其他bundle。

SpringSource的dm Server 2.0.0.M6已经可以运行OSGi web bundle了,借助于其bundle仓库,dm Server指引着企业运行时的前进方向。

Maven 3与Tycho构建、仓库以及Eclipse Marketplace

随着Maven 3(其Tycho可以构建基于OSGi的应用)发布日期的临近,它将成为Eclipse构建EGit以及Tigerstripe的***。

相对于P2仓库来说,Maven仓库的查询能力受到了人们的质疑,但事实上,Maven仓库也可以进行查询。有事实可以证明,Maven仓库是整个Maven构建过程中最为成功的一个方面,它可以根据依赖关系自动下载所需的程序库。从Pack200压缩这个角度来看,P2可能更加高级一些,它还可以更新非JAR组件,然而Mave的über仓库在广度上轻而易举地就超越了Eclipse P2仓库。不仅如此,P2仓库经常被切分成多个独立的仓库,而Maven则具有一个所有项目都可共享的全局仓库。

最近,Eclipse基金会发布了Eclipse Marketplace,它源自于成功的Eclipse插件中心2站点。最初建立EPIC的目的是提供一个中央下载站点,为那些不在Eclipse.org站点上的流行插件提供下载服务,比如Findbugs和Checkstyle。

Eclipse基金会在2006年购买了EPIC的使用权,但后来就基本没再动过它,直到最近开发出了Eclipse Marketplace后这一点才有所改观。在这段时间内,由于缺乏统一的下载结构以及从Update Site到P2的转变极大地限制了中央下载站点(用于搜索及下载插件)的发展势头。

除了插件以外,新的Marketplace还托管了RCP应用(既有商业的,也有免费的)以及培训与咨询供应商。

***要说的是IntelliJ 9的发布,其社区版与商业版都提供了对OSGi应用的支持。由于该***Java IDE可以在本地构建OSGi应用,同时对OSGi应用又提供了巨大的支持,开发模块化Java应用变得***的简单。

OSGi 4.2 EEG草案发布

最近Enterprise Expert Group发布了第4个草案。EEG的目的是定义一套规范以便JEE风格的应用可以作为本地bundle运行在OSGi运行时中。

现在Web应用可以作为bundle使用了。这样不仅使得OSGi运行时能够托管WAR(与Jetty之类的服务器一样),同时WAR还可以在运行时中拥有版本依赖。Pax Web早就可以实现这一点了,但现在形成了标准,任何OSGi运行时都可以使用了。

OSGi框架中对bundle的JMX控制,对于核心OSGi服务的标准化绑定,比如Package Admin以及Cofniguration Admin等等。

事务已经作为JTA绑定的一部分,这样就可以从OSGi服务中获取事务了。

JNDI访问既可以从OSGi中获取,也可以在OSGi服务间得到。

兼容于OSGi的JDBC工厂(与Class.forName()不同)。

凭借这些服务,企业应用可以运行在OSGi环境中而无需完整的JEE栈。尽管JEE 6已经发布,但它有可能是***获得批准的几个JSR之一,Mark Reinhold如是说:

Q:现在为何不开启一个closures JSR,让专家组完成提案工作?

#t#A:到目前为止Project Coin还没有一个JSR,原因与此类似,直到JCP执行委员会内部的争论平息之后才有可能提出新的Java SE JSR。

即将到来的OSGi大会

伦敦将于今年1月23日举办OSGi DevCon London,同时还将举办JAX London。现在,大会的议程已经确定下来了,Kirk Knoernschild将进行主题演讲。

Santa Clara将于今年的3月22——25日举办OSGi DevCon,同时还有 EclipseCon 2010。Robert “Bob大叔” Martin将进行主题演讲。目前还在招募演讲者,如果你有这方面的想法,请递交你的提案。

责任编辑:yangsai 来源: InfoQ
相关推荐

2009-06-18 10:03:57

EquinoxOSGi应用服务器

2018-12-12 08:40:11

服务器TomcatJava

2009-01-10 19:32:36

2009-01-16 14:37:57

TomcatWeb服务器应用服务器

2012-02-23 10:02:08

Web服务器应用服务器

2012-02-02 10:24:08

JavaResin

2009-06-16 15:35:20

JBoss应用服务器

2021-05-28 05:18:08

PHP语言roadrunnner

2018-02-07 10:08:02

应用服务器网络数据库

2014-08-08 16:35:37

应用服务器

2012-03-23 09:32:48

应用服务器

2018-05-24 10:15:18

服务器Session问题

2009-02-27 14:25:00

Weblogic应用服务器服务器管理

2018-03-20 14:24:10

Web服务器HTTP

2015-08-14 09:31:55

开源Python服务器

2014-05-30 11:29:36

Java服务器

2009-06-16 12:02:37

JBoss IPv6

2009-05-08 16:38:54

SpringHyperic服务器

2017-10-17 09:15:06

Web服务器区别
点赞
收藏

51CTO技术栈公众号