Modularity in Java SE 8

mark.reinhold at oracle.com mark.reinhold at oracle.com
Tue Jul 17 08:57:24 PDT 2012


The Java SE 8 Umbrella Platform JSR, as submitted, proposes to integrate
a module system directly into the Platform [1].  This would ease the
construction and maintenance of large applications, finally allowing
developers to escape the "JAR hell" of the brittle and error-prone
class-path mechanism.  It would also enable the Platform itself to be
modularized, so as to support customizable configurations which scale
from large servers down to small embedded devices and, in the long term,
enable the convergence of Java SE with the higher-end Java ME Platforms.

Initial exploratory work toward these goals has been going on in Project
Jigsaw in the OpenJDK Community [2].  Steady progress is being made but
some significant technical challenges remain, and there is considerable
risk that these will not be resolved in time for the proposed Final
Release of Java SE 8 in August 2013.

There is, more importantly, not enough time left for the broad
evaluation, review, and feedback which such a profound change to the
Platform demands, both via this JSR (337) and, primarily, a forthcoming
JSR to define a standard Java Platform Module System.

I therefore propose to defer the addition of a module system and the
modularization of the Platform to Java SE 9.  This is by no means a
pleasant choice, but I think it's preferable to delaying Java SE 8 until
the modularity work is complete.

This change will slow the long-term effort to converge the Java SE and
Java ME Platforms.  I therefore further propose that in Java SE 8 we
consider defining a small number of Profiles which will, in the meantime,
allow compact configurations of the SE Platform to be defined and
deployed.

(More background on this proposal, if you're interested, is available on
 my blog: http://mreinhold.org/blog/late-for-the-train)

Comments?

- Mark


[1] http://jcp.org/en/jsr/detail?id=337
[2] http://openjdk.java.net/projects/jigsaw/



More information about the java-se-8-spec-observers mailing list