BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Jigsaw终于添加到JDK 9中了

| 作者 Alex Blewitt 关注 4 他的粉丝 ,译者 张卫滨 关注 13 他的粉丝 发布于 2016年3月16日. 估计阅读时间: 4 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

发往jdk9-dev邮件列表的一封邮件中,Alan Bateman宣布Jigsaw模块系统的一个快照版本将会合并到JDK9开发分支的主线中。模块系统的状态文档最近进行了更新来表明它的进展,这是从Jigsaw项目启动以来,它的变更第一次合并回来。

在历史上,Java的开发在不同的分支下进行,因为它们是Mercurial工具下不同的tree。Hotspot编译器(以及底层的VM内容)是在Hotspot tree中开发的,而Java开发的主线是在jdk tree中完成的。在Open JDK的集合中,还有不同的tree用于nashorn甚至corba。这样造成的结果就是,每个分组就被称为forest,因为它们是相互关联的tree。(这种结构很大程度上是因为在创建项目的时候,Mercurial没有轻量级的分支功能,并且它没有很好的跨分支push的功能,所以它们都被分割为不同的repository,这也是为什么会有jdk8和jdk8u forest的原因,jdk8实际上是主开发分支,而jdk8u包含了其他repository的fork,而且带上了特定的标签,如8u40和8u60。幸好,所有的这些内容能够全部放到一个Git repository之中,这其实是非常有价值的。)

Jigsaw所引入的变化是很明显的,底层的包被划分成了不同的模块,每个模块包含一个或多个包。java.base模块包含了标准库的主要内容(java.langjava.util以及java.time等)。这种划分会带来一定的破坏性,java.beans包因为它与AWT和Applets的密切关联,被转移到了java.desktop模块中,这就意味着在java.base包中,为PropertyChangeListener实现监听器注册的类被移除掉了。

为了保证JDK 9和Jigsaw的开发不会遇到太多的困难,Jigsaw实现是位于它自己的forest之中的。这样的话,通过OracleAzul Zulu得到的主线OpenJDK Java构建版本是不包含Jigsaw的,开发人员也无法进行尝试。而我们可以得到一个特殊的“早期可访问(early access)”构建版本,这个版本提供了Jigsaw的内容,但是并不包含JDK 9分支的一些其他变更。

所以,这封邮件确认Oracle将会尝试将并行开发的Jigsaw forest合并到JDK9 forest之中。一些重要的变更(如移除PropertyChangeListeners)已经完成了,自动化的差异对比显示没有其他的功能移除了,不过包含了几百项对API的添加/变更。为了尽可能减少额外出现的问题,JDK9 forest将会锁定两周的时间,以便于将Jigsaw相关的变更合并到主线的JDK9 forest中。预期将会只有一个构建版本——也就是3月21日的JDK9+111——不过,Jigsaw团队也申请预留了3月27日的JDK9+112构建版本,以应对Jigsaw可能出现的变化。

Jigsaw模块后续的变更将会继续在Jigsaw forest中进行,因此针对JDK9主线的开发人员将不会处理由此导致的不稳定。但是,这个构建版本是第一次把Java的基础库划分为不同的模块,并且会在一个能够感知模块的系统中进行编译,因此希望能够避免将来在模块间添加功能所导致的问题。同时,Jigsaw forest未来将会完全合并到 JDK9中,它本身会被移除,不过这可能需要等到年底才会进行。

在合并之前,已经进行了一些评估,InfoQ将会持续关注模块系统和Jigsaw合并到JDK9事宜的进展。

查看英文原文:Jigsaw Finally Arrives in JDK 9

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT