Legacy mode to find modules for tools.jar (or other jars not in the bootclasspath)
Mandy Chung
mandy.chung at oracle.com
Tue Jun 8 13:11:46 PDT 2010
Latest webrev:
http://cr.openjdk.java.net/~mchung/jigsaw/legacy-mode/webrev.01/
I'm happy that the legacy mode support now passes the
SKIP_BOOT_CYCLE=false build and it gets rid of the java launcher
bootclasspath hack.
It also includes the mixed mode support that needs further testing.
Mandy
On 06/03/10 11:50, Mandy Chung wrote:
> I finally get a chance to revise the legacy mode support (III.B.2 as
> described in [1]) and add the mixed mode legacy application support
> (III.C.a as in [1]). I wanted to do more extensive testing before
> requesting a formal code review (the testing I have done so far is
> good). I'm not surprised if I have some strange unexpected issues.
>
> This webrev will give you a better idea how this works as described in
> [1].
> http://cr.openjdk.java.net/~mchung/jigsaw/legacy-mode/webrev.00/
>
> I'd like to start one discussion in this thread:
>
> With the tradition legacy image, to compile and run with classes from
> tools.jar (or other JDK jars that are not part of the default
> bootclasspath), the -classpath option is required to add it to the
> classpath.
>
> With the new module image, the question is: how should the legacy
> application find the jdk modules corresponding to tools.jar and other
> jars? See LegacyLauncher.java line 142.
>
> I considered 3 options and propose to use (3a):
> 1) Default is "jdk.jre" (i.e. entire JRE - see section 0 in [1])
> 2) Default is "jdk" (i.e. entire JDK including tools.jar and other)
> 3) Default is "jdk.legacy" that is an aggregator module that
> optionally requires all jdk modules.
> a) install jdk.legacy in jre-module-image and jdk-module-image (i.e.
> legacy mode is only supported in jre-module-image and jdk-module-image.)
> b) install jdk.legacy with the base image (i.e. legacy mode is
> supported in any module image provided that the classes the app
> depends on exist)
>
> 1) Default is "jdk.jre"
> We could extend this to check if $JAVA_HOME/lib/tools.jar is added in
> the classpath; if so, it will use "jdk" module.
>
> Pros:
> - No change is required in the command to compile or run java application
> - Legacy applications will run on jre-module-image or jdk-module-image
> Cons:
> - Require to continue to use -cp tools.jar even if tools.jar doesn't
> exist in the module image
> - Legacy applications will not run on jre-base-image (or with some
> other modules installed)
>
> (2) Default is "jdk"
>
> Pros:
> - No change in the command to compile or run java application
> Cons:
> - Legacy app must run on jdk-module-image (not jre-module-image in
> which "jdk" module is not installed)
>
> (3) Default is "jdk.legacy" (or call it "jdk.any")
>
> Pros:
> - No change is required in the command to compile or run java application
> - Legacy apps will run on jre-module-image or jdk-module-image
> Cons:
> - One additional aggregator module
>
> Comment, thoughts?
>
> Mandy
>
> [1]
> http://mail.openjdk.java.net/pipermail/jigsaw-dev/2010-June/001039.html
> [2]
> http://mail.openjdk.java.net/pipermail/jigsaw-dev/2010-February/000563.html
>
More information about the jigsaw-dev
mailing list