# HG changeset patch # User lana # Date 1324687162 28800 # Node ID 8e546b2b9dd0950128e97ef5da5132f62eb0ba51 # Parent 75b4917ec570a3f910afd6a8bc023ea2f4b03ad0# Parent 6ee85f80967a01b624714c44e22f0ceb6db3e5c1 Merge diff -r 75b4917ec570 -r 8e546b2b9dd0 langtools/make/jprt.properties --- a/langtools/make/jprt.properties Thu Dec 22 19:00:58 2011 -0800 +++ b/langtools/make/jprt.properties Fri Dec 23 16:39:22 2011 -0800 @@ -25,23 +25,38 @@ # Properties for jprt -# The release to build +# Locked down to jdk8 jprt.tools.default.release=jdk8 # The different build flavors we want, we override here so we just get these 2 jprt.build.flavors=product,fastdebug # Standard list of jprt build targets for this source tree -jprt.build.targets= \ - solaris_sparc_5.10-{product|fastdebug}, \ - solaris_sparcv9_5.10-{product|fastdebug}, \ - solaris_i586_5.10-{product|fastdebug}, \ - solaris_x64_5.10-{product|fastdebug}, \ - linux_i586_2.6-{product|fastdebug}, \ - linux_x64_2.6-{product|fastdebug}, \ - windows_i586_5.1-{product|fastdebug}, \ +jprt.build.targets= \ + solaris_sparc_5.10-{product|fastdebug}, \ + solaris_sparcv9_5.10-{product|fastdebug}, \ + solaris_i586_5.10-{product|fastdebug}, \ + solaris_x64_5.10-{product|fastdebug}, \ + linux_i586_2.6-{product|fastdebug}, \ + linux_x64_2.6-{product|fastdebug}, \ + windows_i586_5.1-{product|fastdebug}, \ windows_x64_5.2-{product|fastdebug} +# Test target list (no fastdebug & limited c2 testing) +jprt.my.test.target.set= \ + solaris_sparc_5.10-product-c1-TESTNAME, \ + solaris_sparcv9_5.10-product-c2-TESTNAME, \ + solaris_i586_5.10-product-c1-TESTNAME, \ + solaris_x64_5.10-product-c2-TESTNAME, \ + linux_i586_2.6-product-{c1|c2}-TESTNAME, \ + linux_x64_2.6-product-c2-TESTNAME, \ + windows_i586_5.1-product-c1-TESTNAME, \ + windows_x64_5.2-product-c2-TESTNAME + +# Default test targets +jprt.make.rule.test.targets= \ + ${jprt.my.test.target.set:TESTNAME=jtreg} + # Directories to be excluded from the source bundles jprt.bundle.exclude.src.dirs=build dist webrev diff -r 75b4917ec570 -r 8e546b2b9dd0 langtools/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard.properties --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard.properties Thu Dec 22 19:00:58 2011 -0800 +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard.properties Fri Dec 23 16:39:22 2011 -0800 @@ -216,6 +216,7 @@ doclet.Same_package_name_used=Package name format used twice: {0} doclet.Serialization.Excluded_Class=Non-transient field {1} uses excluded class {0}. doclet.Serialization.Nonexcluded_Class=Non-transient field {1} uses hidden, non-included class {0}. +doclet.exception_encountered=Exception encountered while processing {1}\n{0} doclet.usage=Provided by Standard doclet:\n\ -d Destination directory for output files\n\ -use Create class and package usage pages\n\ diff -r 75b4917ec570 -r 8e546b2b9dd0 langtools/src/share/classes/com/sun/tools/javac/api/JavacTool.java --- a/langtools/src/share/classes/com/sun/tools/javac/api/JavacTool.java Thu Dec 22 19:00:58 2011 -0800 +++ b/langtools/src/share/classes/com/sun/tools/javac/api/JavacTool.java Fri Dec 23 16:39:22 2011 -0800 @@ -25,18 +25,15 @@ package com.sun.tools.javac.api; -import java.io.File; import java.io.InputStream; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.io.Writer; import java.nio.charset.Charset; -import java.util.ArrayList; import java.util.Collections; import java.util.EnumSet; import java.util.Iterator; -import java.util.List; import java.util.Locale; import java.util.Set; import javax.lang.model.SourceVersion; @@ -44,17 +41,15 @@ import com.sun.source.util.JavacTask; import com.sun.tools.javac.file.JavacFileManager; -import com.sun.tools.javac.main.JavacOption.OptionKind; -import com.sun.tools.javac.main.JavacOption; import com.sun.tools.javac.main.Main; -import com.sun.tools.javac.main.RecognizedOptions.GrumpyHelper; -import com.sun.tools.javac.main.RecognizedOptions; +import com.sun.tools.javac.main.Option; +import com.sun.tools.javac.main.OptionHelper; +import com.sun.tools.javac.main.OptionHelper.GrumpyHelper; import com.sun.tools.javac.util.ClientCodeException; import com.sun.tools.javac.util.Context; import com.sun.tools.javac.util.Log; import com.sun.tools.javac.util.Log.PrefixKind; import com.sun.tools.javac.util.Options; -import com.sun.tools.javac.util.Pair; /** * TODO: describe com.sun.tools.javac.api.Tool @@ -67,23 +62,10 @@ * @author Peter von der Ah\u00e9 */ public final class JavacTool implements JavaCompiler { - private final List> options - = new ArrayList>(); - private final Context dummyContext = new Context(); - - private final PrintWriter silent = new PrintWriter(new OutputStream(){ - public void write(int b) {} - }); - - private final Main sharedCompiler = new Main("javac", silent); - { - sharedCompiler.setOptions(Options.instance(dummyContext)); - } - /** - * Constructor used by service provider mechanism. The correct way to - * obtain an instance of this class is using create or the service provider - * mechanism. + * Constructor used by service provider mechanism. The recommended way to + * obtain an instance of this class is by using {@link #create} or the + * service provider mechanism. * @see javax.tools.JavaCompilerTool * @see javax.tools.ToolProvider * @see #create @@ -99,49 +81,6 @@ return new JavacTool(); } - private String argsToString(Object... args) { - String newArgs = null; - if (args.length > 0) { - StringBuilder sb = new StringBuilder(); - String separator = ""; - for (Object arg : args) { - sb.append(separator).append(arg.toString()); - separator = File.pathSeparator; - } - newArgs = sb.toString(); - } - return newArgs; - } - - private void setOption1(String name, OptionKind kind, Object... args) { - String arg = argsToString(args); - JavacOption option = sharedCompiler.getOption(name); - if (option == null || !match(kind, option.getKind())) - throw new IllegalArgumentException(name); - if ((args.length != 0) != option.hasArg()) - throw new IllegalArgumentException(name); - if (option.hasArg()) { - if (option.process(null, name, arg)) // FIXME - throw new IllegalArgumentException(name); - } else { - if (option.process(null, name)) // FIXME - throw new IllegalArgumentException(name); - } - options.add(new Pair(name,arg)); - } - - public void setOption(String name, Object... args) { - setOption1(name, OptionKind.NORMAL, args); - } - - public void setExtendedOption(String name, Object... args) { - setOption1(name, OptionKind.EXTENDED, args); - } - - private static boolean match(OptionKind clientKind, OptionKind optionKind) { - return (clientKind == (optionKind == OptionKind.HIDDEN ? OptionKind.EXTENDED : optionKind)); - } - public JavacFileManager getStandardFileManager( DiagnosticListener diagnosticListener, Locale locale, @@ -209,7 +148,9 @@ if (fileManager == null) fileManager = getStandardFileManager(diagnosticListener, null, null); fileManager = ccw.wrap(fileManager); + context.put(JavaFileManager.class, fileManager); + processOptions(context, fileManager, options); Main compiler = new Main("javacTask", context.get(Log.outKey)); return new JavacTaskImpl(compiler, options, context, classes, compilationUnits); @@ -225,11 +166,28 @@ if (options == null) return; - Options optionTable = Options.instance(context); + final Options optionTable = Options.instance(context); Log log = Log.instance(context); - JavacOption[] recognizedOptions = - RecognizedOptions.getJavacToolOptions(new GrumpyHelper(log)); + Option[] recognizedOptions = + Option.getJavacToolOptions().toArray(new Option[0]); + OptionHelper optionHelper = new GrumpyHelper(log) { + @Override + public String get(Option option) { + return optionTable.get(option.getText()); + } + + @Override + public void put(String name, String value) { + optionTable.put(name, value); + } + + @Override + public void remove(String name) { + optionTable.remove(name); + } + }; + Iterator flags = options.iterator(); while (flags.hasNext()) { String flag = flags.next(); @@ -247,19 +205,19 @@ } } - JavacOption option = recognizedOptions[j]; + Option option = recognizedOptions[j]; if (option.hasArg()) { if (!flags.hasNext()) { String msg = log.localize(PrefixKind.JAVAC, "err.req.arg", flag); throw new IllegalArgumentException(msg); } String operand = flags.next(); - if (option.process(optionTable, flag, operand)) + if (option.process(optionHelper, flag, operand)) // should not happen as the GrumpyHelper will throw exceptions // in case of errors throw new IllegalArgumentException(flag + " " + operand); } else { - if (option.process(optionTable, flag)) + if (option.process(optionHelper, flag)) // should not happen as the GrumpyHelper will throw exceptions // in case of errors throw new IllegalArgumentException(flag); @@ -283,9 +241,8 @@ } public int isSupportedOption(String option) { - JavacOption[] recognizedOptions = - RecognizedOptions.getJavacToolOptions(new GrumpyHelper(null)); - for (JavacOption o : recognizedOptions) { + Set