There has been an unusual level of drama, intrigue, and politics in the world of Java over the past few weeks that culminated in this week's JSR 376 Java Platform Module System Public Review Ballot. Java modularity [including the Java Platform Module System (JPMS)] has been arguably the most significant piece of JDK 9 and so it's not surprising that it has received so much attention. In addition to the typical publicly available mailing list traffic, there have been blog posts and open letters to further advertise the contention and debate surrounding JPMS (JSR 376), described as "a central component of Project Jigsaw."
The final vote was, according to the JSR #376 Java Platform Module System Public Review Ballot page, 10 votes for and 13 votes against, so "the EC has not approved this ballot." The comments that go along with the votes in the text area at the bottom of the ballot page are telling. In particular, I thought it interesting how many reviewers vote no mainly because they were uncomfortable with the other, more vocal reviewers not approving. It's also interesting that the Public Review Ballot for JSR #379 Java SE 9 Release Contents (an "umbrella" JSR) passed overwhelmingly on the same day this one failed.
It will be interesting to see how this continues to unfold over the coming days and weeks and what impact is has on the release date for JDK 9. Rather than rehash the arguments on both sides, I reference posts from key contributors to the discussion below.
References: Executive Committee Participants/Representatives
- JSR #376 Java Platform Module System Public Review Ballot (8 May 2017)
- The critical missing pieces and a path forward (5 May 2017)
- An Open Letter to the JCP Executive Committee (5 May 2017)
- Proposal: #AutomaticModuleNames (revised) (4 May 2017)
- Concerns with JPMS spec and Jigsaw implementation (2 May 2017)
- Concerns Regarding Jigsaw(JSR-376, Java Platform Module System) (14 April 2017)