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)
- IBM, Redhat & Oracle in the aftermath of the JCP vote.
- Java SE 9 - JPMS automatic modules (9 May 2017)
- Reddit: JSR 376 (Jigsaw) Public Review Ballot: EC has not approved
- Ballot on JSR 376 aka #JPMS closed: 10 yay, 13 nay
- JCP EC, Expert Group and Spec Lead statements on the state of Java 9
References: Other Overviews
- Yet another Jigsaw opinion piece (10 May 2017)
- EC Rejects Jigsaw (10 May 2017)
- JCP EC Votes against the Java Platform Module System (9 May 2017)
- Mark Reinhold Confirms JPMS (Jigsaw) Will Be Submitted for Public Review, Despite Community Concerns (4 May 2017)
- IBM and Red Hat to Vote "No" on Java Modules (Jigsaw) (1 May 2017)
- JSR 376 Ballot and Automatic Modules
References: Since the Vote
- IBM (Tim Ellison)
- Redhat (David M. Lloyd)
- Oracle (Mark Reinhold)
- Building Consensus on JSR 376: Java Platform Module System
Since the Vote: Java Platform Module System (JSR 376) EG minutes