Review request 8136930: Simplify use of module-system options by custom launchers

Jonathan Gibbons jonathan.gibbons at
Tue Aug 9 15:25:03 UTC 2016

On 08/09/2016 06:12 AM, Jan Lahoda wrote:
> I took a pass through langtools changes. Overall seems OK to me. Some 
> minor comments:
> -src/jdk.compiler/share/classes/com/sun/tools/javac/main/ 
> commented-out code in hasArg(). (Some more in Option.ArgKind, but that 
> seems mostly OK.)
> -src/jdk.javadoc/share/classes/com/sun/tools/javadoc/resources/ 
> the help is not listing --class-path, while it does list 
> --source-path, and some other help texts list --class-path - is that 
> intentional?

Good catch, and no, not intentional.  However, the intent was to clean 
up javadoc option handling after the patch for new module-related 
options for javadoc arives.

> -test/jdk/javadoc/tool/6964914/ (and some other 
> tests): the references to jdk.launcher.patch.* where there probably to 
> support standalone testing; I note that standalone testing is probably 
> not going to work anymore for these tests.

These will need to go at some point.  The tools currently support both 
old and new option forms, and there will need to be a follow up patch to 
clean up remaining use of all old-style options, and system properties, 
once the transition period is over.

> Jan
> On 5.8.2016 22:11, Mandy Chung wrote:
>> This patch renames the module-system options to GNU-style as specified
>> in JEP 293 [1] (see below for the new proposed option names). This
>> addresses the problems discussed in [2] that the launcher will pass
>> the module-system options down to the VM in the form of 
>> <option>=<value>.
>> This provides a consistent way to configure the module system and
>> simplify use of module-system options by custom launcher.  This patch
>> also updates several JDK tools including jlink, jmod, jimage, jar,
>> javac, javap, javadoc, javah, jdeps such that the GNU-style
>> module-system options are consistent across all tools.
>> Webrev:
>> Harold has posted a separate code review for the hotspot change [3].
>> webrev.00 includes changes in all repos except hotspot. 
>> webrev-langtools.00
>> includes the changes in langtools repo (this may be convenient for
>> those who wants to review langtools change only).
>> Note that existing -cp and -classpath have no change and continue to
>> be supported.  New long form option `--class-path` and `--help` are
>> added to java, javac, and other tools where applicable.
>> For transition, all old options except -listmods continue to be
>> supported by the java launcher, javac, javadoc, javap, javah.
>> I propose to remove the old options in two weeks after this patch
>> is promoted (i.e. two promoted builds to go through the transition).
>> Mandy
>> [1]
>> [2] 
>> [3] 
>> Existing Options                    New Options
>> -addmods                            --add-modules
>> -classpath | -cp | --classpath      -classpath | -cp | --class-path
>> -limitmods                          --limit-modules
>> -listmods                           --list-modules
>> -m                                  --module | -m
>> -modulepath | -mp | --modulepath    --module-path | -p
>> -modulesourcepath                   --module-source-path
>> --plugin-module-path                (no change)
>> -processormodulepath                --processor-module-path
>> -upgrademodulepath                  --upgrade-module-path
>> -XaddExports                        --add-exports
>> -XaddReads                          --add-reads
>> -Xpatch                             --patch-module
>> -bootclasspath                      --boot-class-path | -bootclasspath
>> -processorpath                      --processor-path  | -processor-path
>> -sourcepath                         --source-path | -sourcepath
>> -system                             --system
>> -release                            --release

More information about the compiler-dev mailing list