< prev index next >

src/jdk.compiler/share/classes/com/sun/tools/javac/main/Option.java

Print this page
rev 48934 : 8198552: Multiple javac plugins do not work at the same time.
Summary: Fixing handling of multiple -Xplugin, -Xdoclint: and -Xdoclint/packages: parameters.
Reviewed-by: TBD


 117                                                 log.localize(PrefixKind.JAVAC,
 118                                                              "opt.Xlint.desc." + lc.option)));
 119             }
 120             log.printRawLines(WriterKind.STDOUT,
 121                               String.format(LINT_KEY_FORMAT,
 122                                             "none",
 123                                             log.localize(PrefixKind.JAVAC, "opt.Xlint.none")));
 124         }
 125     },
 126 
 127     XDOCLINT("-Xdoclint", "opt.Xdoclint", EXTENDED, BASIC),
 128 
 129     XDOCLINT_CUSTOM("-Xdoclint:", "opt.Xdoclint.subopts", "opt.Xdoclint.custom", EXTENDED, BASIC) {
 130         @Override
 131         public boolean matches(String option) {
 132             return DocLint.isValidOption(
 133                     option.replace(XDOCLINT_CUSTOM.primaryName, DocLint.XMSGS_CUSTOM_PREFIX));
 134         }
 135 
 136         @Override
 137         public void process(OptionHelper helper, String option) {
 138             String prev = helper.get(XDOCLINT_CUSTOM);
 139             String next = (prev == null) ? option : (prev + " " + option);
 140             helper.put(XDOCLINT_CUSTOM.primaryName, next);
 141         }
 142     },
 143 
 144     XDOCLINT_PACKAGE("-Xdoclint/package:", "opt.Xdoclint.package.args", "opt.Xdoclint.package.desc", EXTENDED, BASIC) {
 145         @Override
 146         public boolean matches(String option) {
 147             return DocLint.isValidOption(
 148                     option.replace(XDOCLINT_PACKAGE.primaryName, DocLint.XCHECK_PACKAGE));
 149         }
 150 
 151         @Override
 152         public void process(OptionHelper helper, String option) {
 153             String prev = helper.get(XDOCLINT_PACKAGE);
 154             String next = (prev == null) ? option : (prev + " " + option);
 155             helper.put(XDOCLINT_PACKAGE.primaryName, next);
 156         }
 157     },
 158 
 159     DOCLINT_FORMAT("--doclint-format", "opt.doclint.format", EXTENDED, BASIC, ONEOF, "html4", "html5"),
 160 
 161     // -nowarn is retained for command-line backward compatibility
 162     NOWARN("-nowarn", "opt.nowarn", STANDARD, BASIC) {
 163         @Override
 164         public void process(OptionHelper helper, String option) {
 165             helper.put("-Xlint:none", option);
 166         }
 167     },
 168 
 169     VERBOSE("-verbose", "opt.verbose", STANDARD, BASIC),
 170 
 171     // -deprecation is retained for command-line backward compatibility
 172     DEPRECATION("-deprecation", "opt.deprecation", STANDARD, BASIC) {
 173         @Override
 174         public void process(OptionHelper helper, String option) {


 495 
 496     XPRINTROUNDS("-XprintRounds", "opt.printRounds", EXTENDED, BASIC),
 497 
 498     XPRINTPROCESSORINFO("-XprintProcessorInfo", "opt.printProcessorInfo", EXTENDED, BASIC),
 499 
 500     XPREFER("-Xprefer:", "opt.prefer", EXTENDED, BASIC, ONEOF, "source", "newer"),
 501 
 502     XXUSERPATHSFIRST("-XXuserPathsFirst", "opt.userpathsfirst", HIDDEN, BASIC),
 503 
 504     // see enum PkgInfo
 505     XPKGINFO("-Xpkginfo:", "opt.pkginfo", EXTENDED, BASIC, ONEOF, "always", "legacy", "nonempty"),
 506 
 507     /* -O is a no-op, accepted for backward compatibility. */
 508     O("-O", null, HIDDEN, BASIC),
 509 
 510     /* -Xjcov produces tables to support the code coverage tool jcov. */
 511     XJCOV("-Xjcov", null, HIDDEN, BASIC),
 512 
 513     PLUGIN("-Xplugin:", "opt.arg.plugin", "opt.plugin", EXTENDED, BASIC) {
 514         @Override
 515         public void process(OptionHelper helper, String option) {
 516             String p = option.substring(option.indexOf(':') + 1).trim();
 517             String prev = helper.get(PLUGIN);
 518             helper.put(PLUGIN.primaryName, (prev == null) ? p : prev + '\0' + p);
 519         }
 520     },
 521 
 522     XDIAGS("-Xdiags:", "opt.diags", EXTENDED, BASIC, ONEOF, "compact", "verbose"),
 523 
 524     DEBUG("--debug:", null, HIDDEN, BASIC) {
 525         @Override
 526         public void process(OptionHelper helper, String option) throws InvalidValueException {
 527             HiddenGroup.DEBUG.process(helper, option);
 528         }
 529     },
 530 
 531     SHOULDSTOP("--should-stop:", null, HIDDEN, BASIC) {
 532         @Override
 533         public void process(OptionHelper helper, String option) throws InvalidValueException {
 534             HiddenGroup.SHOULDSTOP.process(helper, option);
 535         }
 536     },




 117                                                 log.localize(PrefixKind.JAVAC,
 118                                                              "opt.Xlint.desc." + lc.option)));
 119             }
 120             log.printRawLines(WriterKind.STDOUT,
 121                               String.format(LINT_KEY_FORMAT,
 122                                             "none",
 123                                             log.localize(PrefixKind.JAVAC, "opt.Xlint.none")));
 124         }
 125     },
 126 
 127     XDOCLINT("-Xdoclint", "opt.Xdoclint", EXTENDED, BASIC),
 128 
 129     XDOCLINT_CUSTOM("-Xdoclint:", "opt.Xdoclint.subopts", "opt.Xdoclint.custom", EXTENDED, BASIC) {
 130         @Override
 131         public boolean matches(String option) {
 132             return DocLint.isValidOption(
 133                     option.replace(XDOCLINT_CUSTOM.primaryName, DocLint.XMSGS_CUSTOM_PREFIX));
 134         }
 135 
 136         @Override
 137         public void process(OptionHelper helper, String option, String arg) {
 138             String prev = helper.get(XDOCLINT_CUSTOM);
 139             String next = (prev == null) ? arg : (prev + " " + arg);
 140             helper.put(XDOCLINT_CUSTOM.primaryName, next);
 141         }
 142     },
 143 
 144     XDOCLINT_PACKAGE("-Xdoclint/package:", "opt.Xdoclint.package.args", "opt.Xdoclint.package.desc", EXTENDED, BASIC) {
 145         @Override
 146         public boolean matches(String option) {
 147             return DocLint.isValidOption(
 148                     option.replace(XDOCLINT_PACKAGE.primaryName, DocLint.XCHECK_PACKAGE));
 149         }
 150 
 151         @Override
 152         public void process(OptionHelper helper, String option, String arg) {
 153             String prev = helper.get(XDOCLINT_PACKAGE);
 154             String next = (prev == null) ? arg : (prev + "," + arg);
 155             helper.put(XDOCLINT_PACKAGE.primaryName, next);
 156         }
 157     },
 158 
 159     DOCLINT_FORMAT("--doclint-format", "opt.doclint.format", EXTENDED, BASIC, ONEOF, "html4", "html5"),
 160 
 161     // -nowarn is retained for command-line backward compatibility
 162     NOWARN("-nowarn", "opt.nowarn", STANDARD, BASIC) {
 163         @Override
 164         public void process(OptionHelper helper, String option) {
 165             helper.put("-Xlint:none", option);
 166         }
 167     },
 168 
 169     VERBOSE("-verbose", "opt.verbose", STANDARD, BASIC),
 170 
 171     // -deprecation is retained for command-line backward compatibility
 172     DEPRECATION("-deprecation", "opt.deprecation", STANDARD, BASIC) {
 173         @Override
 174         public void process(OptionHelper helper, String option) {


 495 
 496     XPRINTROUNDS("-XprintRounds", "opt.printRounds", EXTENDED, BASIC),
 497 
 498     XPRINTPROCESSORINFO("-XprintProcessorInfo", "opt.printProcessorInfo", EXTENDED, BASIC),
 499 
 500     XPREFER("-Xprefer:", "opt.prefer", EXTENDED, BASIC, ONEOF, "source", "newer"),
 501 
 502     XXUSERPATHSFIRST("-XXuserPathsFirst", "opt.userpathsfirst", HIDDEN, BASIC),
 503 
 504     // see enum PkgInfo
 505     XPKGINFO("-Xpkginfo:", "opt.pkginfo", EXTENDED, BASIC, ONEOF, "always", "legacy", "nonempty"),
 506 
 507     /* -O is a no-op, accepted for backward compatibility. */
 508     O("-O", null, HIDDEN, BASIC),
 509 
 510     /* -Xjcov produces tables to support the code coverage tool jcov. */
 511     XJCOV("-Xjcov", null, HIDDEN, BASIC),
 512 
 513     PLUGIN("-Xplugin:", "opt.arg.plugin", "opt.plugin", EXTENDED, BASIC) {
 514         @Override
 515         public void process(OptionHelper helper, String option, String p) {

 516             String prev = helper.get(PLUGIN);
 517             helper.put(PLUGIN.primaryName, (prev == null) ? p : prev + '\0' + p);
 518         }
 519     },
 520 
 521     XDIAGS("-Xdiags:", "opt.diags", EXTENDED, BASIC, ONEOF, "compact", "verbose"),
 522 
 523     DEBUG("--debug:", null, HIDDEN, BASIC) {
 524         @Override
 525         public void process(OptionHelper helper, String option) throws InvalidValueException {
 526             HiddenGroup.DEBUG.process(helper, option);
 527         }
 528     },
 529 
 530     SHOULDSTOP("--should-stop:", null, HIDDEN, BASIC) {
 531         @Override
 532         public void process(OptionHelper helper, String option) throws InvalidValueException {
 533             HiddenGroup.SHOULDSTOP.process(helper, option);
 534         }
 535     },


< prev index next >