The Java Community Process has been undergoing a bit of reinvention over the last three years. Starting with JSR 348, the actual process of changing Java has been, itself, changing.
Finalized in October of 2011, this was the first JSR to address the JCP’s executive committees, formalizing their duty guidelines, and pushing for more open specification development processes. JSR 355 followed, completed in August of 2012. That JSR merged the executive committees. As a result, this October’s JCP election process requires everyone to be re-elected, not just those members whose terms are up.
Patrick Curran, chair of the JCP, said that the next focus for change within the JCP will be the Java Specification Participation Agreement (JSPA). The JSPA is the set of legal terms that JCP members and contributors must agree to. It governs the intellectual property rights of specifications and assets created when building a JSR.
Said Curran: “We want to modify [the JSPA] to increase the transparency, to simplify the IP rights, to embrace open-source licensing and development processes. All JSRs will be developed in an open-source development process in the future, and available under an open-source license. We’ll come up with a simpler contribution style.”
Java keeps growing
OpenJDK and Java SE 8 are on schedule for release in the spring of 2014. This new version of Java will include closures (also referred to as Lambdas). This capability allows developers to designate a unit of functionality as being ready for parallelization in the JVM during execution. Many talks at JavaOne focused on preparing developers for this major change to the language.
Java 8 also includes a new date-and-time API, generalized target-type inference, repeating annotations, and a half-dozen cryptographic changes, updates and improvements. In other updates, JDBC will move to version 4.2, Unicode support will hit version 6.2, and JAXP updates to 1.5.
What’s not in Java 8, however, is Project Jigsaw, the effort to modularize Java. While this project was specifically pushed back from the Java 8 release timeframe, the OpenJDK has seen a great reduction in interdependencies (meaning connections were removed between components so that they can be decoupled). This work will later allow for the modularization to take place, but for now, Java SE 8 and OpenJDK 8 will both include more manageably interconnected parts, instead of the tangled mess of earlier releases.