--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/make/src/classes/build/tools/listjdkinternals/ListJDKInternals.java Thu Jul 14 16:21:39 2016 +0000
@@ -0,0 +1,195 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.listjdkinternals;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.io.UncheckedIOException;
+import java.lang.module.ModuleDescriptor;
+import java.lang.module.ModuleFinder;
+import java.lang.module.ModuleReference;
+import java.net.URI;
+import java.nio.file.FileSystem;
+import java.nio.file.FileSystems;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.attribute.BasicFileAttributes;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+import java.util.stream.Collectors;
+
+/**
+ * Run this tool to generate the JDK internal APIs in the previous releases
+ * including platform-specific internal APIs.
+ */
+public class ListJDKInternals {
+ // Filter non-interesting JAR files
+ private final static List<String> excludes = Arrays.asList(
+ "deploy.jar",
+ "javaws.jar",
+ "plugin.jar",
+ "cldrdata.jar",
+ "localedata.jar"
+ );
+ private static void usage() {
+ System.out.println("ListJDKInternals [-o <outfile>] <javaHome> [<javaHome>]*");
+ }
+
+ private static final Set<String> EXPORTED_PACKAGES = new HashSet<>();
+
+ public static void main(String... args) throws IOException {
+ List<Path> paths = new ArrayList<>();
+ Path outFile = null;
+ int i=0;
+ while (i < args.length) {
+ String arg = args[i++];
+ if (arg.equals("-o")) {
+ outFile = Paths.get(args[i++]);
+ } else {
+ Path p = Paths.get(arg);
+ if (Files.notExists(p))
+ throw new IllegalArgumentException(p + " not exist");
+ paths.add(p);
+ }
+ }
+ if (paths.isEmpty()) {
+ usage();
+ System.exit(1);
+ }
+
+ // Get the exported APIs from the current JDK releases
+ Path javaHome = Paths.get(System.getProperty("java.home"));
+ ModuleFinder.ofSystem().findAll()
+ .stream()
+ .map(ModuleReference::descriptor)
+ .filter(md -> !md.name().equals("jdk.unsupported"))
+ .map(ModuleDescriptor::exports)
+ .flatMap(Set::stream)
+ .filter(exp -> !exp.isQualified())
+ .map(ModuleDescriptor.Exports::source)
+ .forEach(EXPORTED_PACKAGES::add);
+
+ ListJDKInternals listJDKInternals = new ListJDKInternals(paths);
+ if (outFile != null) {
+ try (OutputStream out = Files.newOutputStream(outFile);
+ PrintStream pw = new PrintStream(out)) {
+ listJDKInternals.write(pw);
+ }
+ } else {
+ listJDKInternals.write(System.out);
+ }
+ }
+
+ private final Set<String> packages = new HashSet<>();
+ ListJDKInternals(List<Path> dirs) throws IOException {
+ for (Path p : dirs) {
+ packages.addAll(list(p));
+ }
+ }
+
+ private void write(PrintStream pw) {
+ pw.println("# This file is auto-generated by ListJDKInternals tool on " +
+ LocalDateTime.now().toString());
+ packages.stream().sorted()
+ .forEach(pw::println);
+ }
+
+ private Set<String> list(Path javaHome) throws IOException {
+ Path jrt = javaHome.resolve("lib").resolve("modules");
+ Path jre = javaHome.resolve("jre");
+
+ if (Files.exists(jrt)) {
+ return listModularRuntime(javaHome);
+ } else if (Files.exists(jre.resolve("lib").resolve("rt.jar"))) {
+ return listLegacyRuntime(javaHome);
+ }
+ throw new IllegalArgumentException("invalid " + javaHome);
+ }
+
+ private Set<String> listModularRuntime(Path javaHome) throws IOException {
+ Map<String, String> env = new HashMap<>();
+ env.put("java.home", javaHome.toString());
+ FileSystem fs = FileSystems.newFileSystem(URI.create("jrt:/"), env);
+ Path root = fs.getPath("packages");
+ return Files.walk(root, 1)
+ .map(Path::getFileName)
+ .map(Path::toString)
+ .filter(pn -> !EXPORTED_PACKAGES.contains(pn))
+ .collect(Collectors.toSet());
+ }
+
+ private Set<String> listLegacyRuntime(Path javaHome) throws IOException {
+ List<Path> dirs = new ArrayList<>();
+ Path jre = javaHome.resolve("jre");
+ Path lib = javaHome.resolve("lib");
+
+ dirs.add(jre.resolve("lib"));
+ dirs.add(jre.resolve("lib").resolve("ext"));
+ dirs.add(lib.resolve("tools.jar"));
+ dirs.add(lib.resolve("jconsole.jar"));
+ Set<String> packages = new HashSet<>();
+ for (Path d : dirs) {
+ Files.find(d, 1, (Path p, BasicFileAttributes attr)
+ -> p.getFileName().toString().endsWith(".jar") &&
+ !excludes.contains(p.getFileName().toString()))
+ .map(ListJDKInternals::walkJarFile)
+ .flatMap(Set::stream)
+ .filter(pn -> !EXPORTED_PACKAGES.contains(pn))
+ .forEach(packages::add);
+ }
+ return packages;
+ }
+
+ static Set<String> walkJarFile(Path jarfile) {
+ try (JarFile jf = new JarFile(jarfile.toFile())) {
+ return jf.stream()
+ .map(JarEntry::getName)
+ .filter(n -> n.endsWith(".class"))
+ .map(ListJDKInternals::toPackage)
+ .collect(Collectors.toSet());
+ } catch (IOException e) {
+ throw new UncheckedIOException(e);
+ }
+ }
+
+ static String toPackage(String name) {
+ int i = name.lastIndexOf('/');
+ if (i < 0) {
+ System.err.format("Warning: unnamed package %s%n", name);
+ }
+ return i >= 0 ? name.substring(0, i).replace("/", ".") : "";
+ }
+}
--- a/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeWriterImpl.java Thu Jul 14 15:47:47 2016 +0000
+++ b/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeWriterImpl.java Thu Jul 14 16:21:39 2016 +0000
@@ -458,17 +458,6 @@
}
/**
- * Add gap between navigation bar elements.
- *
- * @param liNav the content tree to which the gap will be added
- */
- protected void addNavGap(Content liNav) {
- liNav.addContent(getSpace());
- liNav.addContent("|");
- liNav.addContent(getSpace());
- }
-
- /**
* {@inheritDoc}
*/
@Override
--- a/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassWriterImpl.java Thu Jul 14 15:47:47 2016 +0000
+++ b/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassWriterImpl.java Thu Jul 14 16:21:39 2016 +0000
@@ -764,17 +764,6 @@
}
/**
- * Add gap between navigation bar elements.
- *
- * @param liNav the content tree to which the gap will be added
- */
- protected void addNavGap(Content liNav) {
- liNav.addContent(getSpace());
- liNav.addContent("|");
- liNav.addContent(getSpace());
- }
-
- /**
* Return the TypeElement being documented.
*
* @return the TypeElement being documented.
--- a/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java Thu Jul 14 15:47:47 2016 +0000
+++ b/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java Thu Jul 14 16:21:39 2016 +0000
@@ -908,6 +908,17 @@
}
/**
+ * Add gap between navigation bar elements.
+ *
+ * @param liNav the content tree to which the gap will be added
+ */
+ protected void addNavGap(Content liNav) {
+ liNav.addContent(getSpace());
+ liNav.addContent("|");
+ liNav.addContent(getSpace());
+ }
+
+ /**
* Get summary table header.
*
* @param header the header for the table
--- a/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleWriterImpl.java Thu Jul 14 15:47:47 2016 +0000
+++ b/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleWriterImpl.java Thu Jul 14 16:21:39 2016 +0000
@@ -26,23 +26,28 @@
package jdk.javadoc.internal.doclets.formats.html;
import java.io.*;
+import java.util.ArrayList;
+import java.util.EnumMap;
import java.util.List;
-import java.util.Set;
+import java.util.Map;
import javax.lang.model.element.ModuleElement;
+import javax.lang.model.element.ModuleElement.DirectiveKind;
import javax.lang.model.element.PackageElement;
+import javax.lang.model.element.TypeElement;
import com.sun.source.doctree.DocTree;
-
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlConstants;
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
import jdk.javadoc.internal.doclets.formats.html.markup.RawHtml;
+import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
import jdk.javadoc.internal.doclets.toolkit.Content;
import jdk.javadoc.internal.doclets.toolkit.ModuleSummaryWriter;
import jdk.javadoc.internal.doclets.toolkit.util.CommentHelper;
import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
+import jdk.javadoc.internal.doclets.toolkit.util.DocletAbortException;
/**
* Class to generate file for each module contents in the right-hand
@@ -74,17 +79,25 @@
*/
protected ModuleElement mdle;
+ private final Map<ModuleElement.DirectiveKind, List<ModuleElement.Directive>> directiveMap
+ = new EnumMap<>(ModuleElement.DirectiveKind.class);
+
/**
* The HTML tree for main tag.
*/
protected HtmlTree mainTree = HtmlTree.MAIN();
/**
+ * The HTML tree for section tag.
+ */
+ protected HtmlTree sectionTree = HtmlTree.SECTION();
+
+ /**
* Constructor to construct ModuleWriter object and to generate
* "moduleName-summary.html" file.
*
* @param configuration the configuration of the doclet.
- * @param module Module under consideration.
+ * @param mdle Module under consideration.
* @param prevModule Previous module in the sorted array.
* @param nextModule Next module in the sorted array.
*/
@@ -95,10 +108,13 @@
this.prevModule = prevModule;
this.nextModule = nextModule;
this.mdle = mdle;
+ generateDirectiveMap();
}
/**
- * {@inheritDoc}
+ * Get the module header.
+ *
+ * @param heading the heading for the section
*/
public Content getModuleHeader(String heading) {
HtmlTree bodyTree = getBody(true, getWindowTitle(mdle.getQualifiedName().toString()));
@@ -127,7 +143,7 @@
}
/**
- * {@inheritDoc}
+ * Get the content header.
*/
public Content getContentHeader() {
HtmlTree div = new HtmlTree(HtmlTag.DIV);
@@ -136,7 +152,7 @@
}
/**
- * {@inheritDoc}
+ * Get the summary section header.
*/
public Content getSummaryHeader() {
HtmlTree li = new HtmlTree(HtmlTag.LI);
@@ -145,7 +161,9 @@
}
/**
- * {@inheritDoc}
+ * Get the summary tree.
+ *
+ * @param summaryContentTree the content tree to be added to the summary tree.
*/
public Content getSummaryTree(Content summaryContentTree) {
HtmlTree ul = HtmlTree.UL(HtmlStyle.blockList, summaryContentTree);
@@ -153,18 +171,315 @@
}
/**
+ * Generate the directive map for the directives on the module.
+ */
+ public void generateDirectiveMap() {
+ for (ModuleElement.Directive d : mdle.getDirectives()) {
+ if (directiveMap.containsKey(d.getKind())) {
+ List<ModuleElement.Directive> dir = directiveMap.get(d.getKind());
+ dir.add(d);
+ directiveMap.put(d.getKind(), dir);
+ } else {
+ List<ModuleElement.Directive> dir = new ArrayList<>();
+ dir.add(d);
+ directiveMap.put(d.getKind(), dir);
+ }
+ }
+ }
+
+ /**
+ * Add the summary header.
+ *
+ * @param startMarker the marker comment
+ * @param markerAnchor the marker anchor for the section
+ * @param heading the heading for the section
+ * @param htmltree the content tree to which the information is added
+ */
+ public void addSummaryHeader(Content startMarker, SectionName markerAnchor, Content heading, Content htmltree) {
+ htmltree.addContent(startMarker);
+ htmltree.addContent(getMarkerAnchor(markerAnchor));
+ htmltree.addContent(HtmlTree.HEADING(HtmlTag.H3, heading));
+ }
+
+ /**
+ * Add the summary for the module.
+ *
+ * @param text the table caption
+ * @param tableSummary the summary for the table
+ * @param htmltree the content tree to which the table will be added
+ * @param tableStyle the table style
+ * @param tableHeader the table header
+ * @param dirs the list of module directives
+ */
+ public void addSummary(String text, String tableSummary, Content htmltree, HtmlStyle tableStyle,
+ List<String> tableHeader, List<ModuleElement.Directive> dirs) {
+ Content table = (configuration.isOutputHtml5())
+ ? HtmlTree.TABLE(tableStyle, getTableCaption(new RawHtml(text)))
+ : HtmlTree.TABLE(tableStyle, tableSummary, getTableCaption(new RawHtml(text)));
+ table.addContent(getSummaryTableHeader(tableHeader, "col"));
+ Content tbody = new HtmlTree(HtmlTag.TBODY);
+ addList(dirs, tbody);
+ table.addContent(tbody);
+ htmltree.addContent(table);
+ }
+
+ /**
+ * Add the list of directives for the module.
+ *
+ * @param dirs the list of module directives
+ * @params tbody the content tree to which the list is added
+ */
+ public void addList(List<ModuleElement.Directive> dirs, Content tbody) {
+ boolean altColor = true;
+ for (ModuleElement.Directive direct : dirs) {
+ DirectiveKind kind = direct.getKind();
+ switch (kind) {
+ case REQUIRES:
+ addRequiresList((ModuleElement.RequiresDirective) direct, tbody, altColor);
+ break;
+ case EXPORTS:
+ addExportedPackagesList((ModuleElement.ExportsDirective) direct, tbody, altColor);
+ break;
+ case USES:
+ addUsesList((ModuleElement.UsesDirective) direct, tbody, altColor);
+ break;
+ case PROVIDES:
+ addProvidesList((ModuleElement.ProvidesDirective) direct, tbody, altColor);
+ break;
+ default:
+ throw new AssertionError("unknown directive kind: " + kind);
+ }
+ altColor = !altColor;
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void addModulesSummary(Content summaryContentTree) {
+ List<ModuleElement.Directive> dirs = directiveMap.get(DirectiveKind.REQUIRES);
+ if (dirs != null && !dirs.isEmpty()) {
+ HtmlTree li = new HtmlTree(HtmlTag.LI);
+ li.addStyle(HtmlStyle.blockList);
+ addSummaryHeader(HtmlConstants.START_OF_MODULES_SUMMARY, SectionName.MODULES,
+ getResource("doclet.navModules"), li);
+ String text = configuration.getText("doclet.Requires_Summary");
+ String tableSummary = configuration.getText("doclet.Member_Table_Summary",
+ configuration.getText("doclet.Requires_Summary"),
+ configuration.getText("doclet.modules"));
+ addRequiresSummary(text, tableSummary, dirs, li);
+ HtmlTree ul = HtmlTree.UL(HtmlStyle.blockList, li);
+ summaryContentTree.addContent(ul);
+ }
+ }
+
+ /**
+ * Add the requires summary for the module.
+ *
+ * @param text the table caption
+ * @param tableSummary the summary for the table
+ * @param dirs the list of module directives
+ * @param htmltree the content tree to which the table will be added
+ */
+ public void addRequiresSummary(String text, String tableSummary, List<ModuleElement.Directive> dirs,
+ Content htmltree) {
+ addSummary(text, tableSummary, htmltree, HtmlStyle.requiresSummary, requiresTableHeader, dirs);
+ }
+
+ /**
+ * Add the requires directive list for the module.
+ *
+ * @param direct the requires directive
+ * @param tbody the content tree to which the directive will be added
+ * @param altColor true if altColor style should be used or false if rowColor style should be used
+ */
+ public void addRequiresList(ModuleElement.RequiresDirective direct, Content tbody, boolean altColor) {
+ ModuleElement m = direct.getDependency();
+ Content moduleLinkContent = getModuleLink(m, new StringContent(m.getQualifiedName().toString()));
+ Content tdPackage = HtmlTree.TD(HtmlStyle.colFirst, moduleLinkContent);
+ HtmlTree tdSummary = new HtmlTree(HtmlTag.TD);
+ tdSummary.addStyle(HtmlStyle.colLast);
+ addSummaryComment(m, tdSummary);
+ HtmlTree tr = HtmlTree.TR(tdPackage);
+ tr.addContent(tdSummary);
+ tr.addStyle(altColor ? HtmlStyle.altColor : HtmlStyle.rowColor);
+ tbody.addContent(tr);
+ }
+
+ /**
* {@inheritDoc}
*/
- public void addPackagesSummary(Set<PackageElement> packages, String text,
- String tableSummary, Content summaryContentTree) {
- Content table = (configuration.isOutputHtml5())
- ? HtmlTree.TABLE(HtmlStyle.overviewSummary, getTableCaption(new RawHtml(text)))
- : HtmlTree.TABLE(HtmlStyle.overviewSummary, tableSummary, getTableCaption(new RawHtml(text)));
- table.addContent(getSummaryTableHeader(packageTableHeader, "col"));
- Content tbody = new HtmlTree(HtmlTag.TBODY);
- addPackagesList(packages, tbody);
- table.addContent(tbody);
- summaryContentTree.addContent(table);
+ public void addPackagesSummary(Content summaryContentTree) {
+ List<ModuleElement.Directive> dirs = directiveMap.get(DirectiveKind.EXPORTS);
+ if (dirs != null && !dirs.isEmpty()) {
+ HtmlTree li = new HtmlTree(HtmlTag.LI);
+ li.addStyle(HtmlStyle.blockList);
+ addSummaryHeader(HtmlConstants.START_OF_PACKAGES_SUMMARY, SectionName.PACKAGES,
+ getResource("doclet.navPackages"), li);
+ String text = configuration.getText("doclet.Exported_Packages_Summary");
+ String tableSummary = configuration.getText("doclet.Member_Table_Summary",
+ configuration.getText("doclet.Exported_Packages_Summary"),
+ configuration.getText("doclet.packages"));
+ addExportedPackagesSummary(text, tableSummary, dirs, li);
+ HtmlTree ul = HtmlTree.UL(HtmlStyle.blockList, li);
+ summaryContentTree.addContent(ul);
+ }
+ }
+
+ /**
+ * Add the exported packages summary for the module.
+ *
+ * @param text the table caption
+ * @param tableSummary the summary for the table
+ * @param dirs the list of module directives
+ * @param htmltree the content tree to which the table will be added
+ */
+ public void addExportedPackagesSummary(String text, String tableSummary, List<ModuleElement.Directive> dirs,
+ Content htmltree) {
+ addSummary(text, tableSummary, htmltree, HtmlStyle.packagesSummary, exportedPackagesTableHeader, dirs);
+ }
+
+ /**
+ * Add the exported packages list for the module.
+ *
+ * @param direct the requires directive
+ * @param tbody the content tree to which the directive will be added
+ * @param altColor true if altColor style should be used or false if rowColor style should be used
+ */
+ public void addExportedPackagesList(ModuleElement.ExportsDirective direct, Content tbody, boolean altColor) {
+ PackageElement pkg = direct.getPackage();
+ Content pkgLinkContent = getPackageLink(pkg, new StringContent(utils.getPackageName(pkg)));
+ Content tdPackage = HtmlTree.TD(HtmlStyle.colFirst, pkgLinkContent);
+ HtmlTree tdModules = new HtmlTree(HtmlTag.TD);
+ tdModules.addStyle(HtmlStyle.colSecond);
+ List<? extends ModuleElement> targetModules = direct.getTargetModules();
+ if (targetModules != null) {
+ List<? extends ModuleElement> mElements = direct.getTargetModules();
+ for (int i = 0; i < mElements.size(); i++) {
+ if (i > 0) {
+ tdModules.addContent(new HtmlTree(HtmlTag.BR));
+ }
+ ModuleElement m = mElements.get(i);
+ tdModules.addContent(new StringContent(m.getQualifiedName().toString()));
+ }
+ } else {
+ tdModules.addContent(configuration.getText("doclet.All_Modules"));
+ }
+ HtmlTree tdSummary = new HtmlTree(HtmlTag.TD);
+ tdSummary.addStyle(HtmlStyle.colLast);
+ addSummaryComment(pkg, tdSummary);
+ HtmlTree tr = HtmlTree.TR(tdPackage);
+ tr.addContent(tdModules);
+ tr.addContent(tdSummary);
+ tr.addStyle(altColor ? HtmlStyle.altColor : HtmlStyle.rowColor);
+ tbody.addContent(tr);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void addServicesSummary(Content summaryContentTree) {
+ List<ModuleElement.Directive> usesDirs = directiveMap.get(DirectiveKind.USES);
+ List<ModuleElement.Directive> providesDirs = directiveMap.get(DirectiveKind.PROVIDES);
+ if ((usesDirs != null && !usesDirs.isEmpty()) || (providesDirs != null && !providesDirs.isEmpty())) {
+ HtmlTree li = new HtmlTree(HtmlTag.LI);
+ li.addStyle(HtmlStyle.blockList);
+ addSummaryHeader(HtmlConstants.START_OF_SERVICES_SUMMARY, SectionName.SERVICES,
+ getResource("doclet.navServices"), li);
+ String text;
+ String tableSummary;
+ if (usesDirs != null && !usesDirs.isEmpty()) {
+ text = configuration.getText("doclet.Uses_Summary");
+ tableSummary = configuration.getText("doclet.Member_Table_Summary",
+ configuration.getText("doclet.Uses_Summary"),
+ configuration.getText("doclet.types"));
+ addUsesSummary(text, tableSummary, usesDirs, li);
+ }
+ if (providesDirs != null && !providesDirs.isEmpty()) {
+ text = configuration.getText("doclet.Provides_Summary");
+ tableSummary = configuration.getText("doclet.Member_Table_Summary",
+ configuration.getText("doclet.Provides_Summary"),
+ configuration.getText("doclet.types"));
+ addProvidesSummary(text, tableSummary, providesDirs, li);
+ }
+ HtmlTree ul = HtmlTree.UL(HtmlStyle.blockList, li);
+ summaryContentTree.addContent(ul);
+ }
+ }
+
+ /**
+ * Add the uses summary for the module.
+ *
+ * @param text the table caption
+ * @param tableSummary the summary for the table
+ * @param dirs the list of module directives
+ * @param htmltree the content tree to which the table will be added
+ */
+ public void addUsesSummary(String text, String tableSummary, List<ModuleElement.Directive> dirs,
+ Content htmltree) {
+ addSummary(text, tableSummary, htmltree, HtmlStyle.usesSummary, usesTableHeader, dirs);
+ }
+
+ /**
+ * Add the uses list for the module.
+ *
+ * @param direct the requires directive
+ * @param tbody the content tree to which the directive will be added
+ * @param altColor true if altColor style should be used or false if rowColor style should be used
+ */
+ public void addUsesList(ModuleElement.UsesDirective direct, Content tbody, boolean altColor) {
+ TypeElement type = direct.getService();
+ Content typeLinkContent = getLink(new LinkInfoImpl(configuration, LinkInfoImpl.Kind.PACKAGE, type));
+ Content tdPackage = HtmlTree.TD(HtmlStyle.colFirst, typeLinkContent);
+ HtmlTree tdSummary = new HtmlTree(HtmlTag.TD);
+ tdSummary.addStyle(HtmlStyle.colLast);
+ addSummaryComment(type, tdSummary);
+ HtmlTree tr = HtmlTree.TR(tdPackage);
+ tr.addContent(tdSummary);
+ tr.addStyle(altColor ? HtmlStyle.altColor : HtmlStyle.rowColor);
+ tbody.addContent(tr);
+ }
+
+ /**
+ * Add the provides summary for the module.
+ *
+ * @param text the table caption
+ * @param tableSummary the summary for the table
+ * @param dirs the list of module directives
+ * @param htmltree the content tree to which the table will be added
+ */
+ public void addProvidesSummary(String text, String tableSummary, List<ModuleElement.Directive> dirs,
+ Content htmltree) {
+ addSummary(text, tableSummary, htmltree, HtmlStyle.providesSummary, providesTableHeader, dirs);
+ }
+
+ /**
+ * Add the exported packages list for the module.
+ *
+ * @param direct the requires directive
+ * @param tbody the content tree to which the directive will be added
+ * @param altColor true if altColor style should be used or false if rowColor style should be used
+ */
+ public void addProvidesList(ModuleElement.ProvidesDirective direct, Content tbody, boolean altColor) {
+ TypeElement impl = direct.getImplementation();
+ TypeElement srv = direct.getService();
+ Content implLinkContent = getLink(new LinkInfoImpl(configuration, LinkInfoImpl.Kind.PACKAGE, impl));
+ Content srvLinkContent = getLink(new LinkInfoImpl(configuration, LinkInfoImpl.Kind.PACKAGE, srv));
+ HtmlTree tdType = HtmlTree.TD(HtmlStyle.colFirst, srvLinkContent);
+ tdType.addContent(new HtmlTree(HtmlTag.BR));
+ tdType.addContent("(");
+ HtmlTree implSpan = HtmlTree.SPAN(HtmlStyle.implementationLabel, getResource("doclet.Implementation"));
+ tdType.addContent(implSpan);
+ tdType.addContent(getSpace());
+ tdType.addContent(implLinkContent);
+ tdType.addContent(")");
+ HtmlTree tdDesc = new HtmlTree(HtmlTag.TD);
+ tdDesc.addStyle(HtmlStyle.colLast);
+ addSummaryComment(srv, tdDesc);
+ HtmlTree tr = HtmlTree.TR(tdType);
+ tr.addContent(tdDesc);
+ tr.addStyle(altColor ? HtmlStyle.altColor : HtmlStyle.rowColor);
+ tbody.addContent(tr);
}
/**
@@ -196,29 +511,56 @@
}
/**
- * Adds list of packages in the package summary table. Generate link to each package.
+ * Add summary details to the navigation bar.
*
- * @param packages Packages to which link is to be generated
- * @param tbody the documentation tree to which the list will be added
+ * @param subDiv the content tree to which the summary detail links will be added
+ */
+ protected void addSummaryDetailLinks(Content subDiv) {
+ try {
+ Content div = HtmlTree.DIV(getNavSummaryLinks());
+ subDiv.addContent(div);
+ } catch (Exception e) {
+ throw new DocletAbortException(e);
+ }
+ }
+
+ /**
+ * Get summary links for navigation bar.
+ *
+ * @return the content tree for the navigation summary links
*/
- protected void addPackagesList(Set<PackageElement> packages, Content tbody) {
- boolean altColor = true;
- for (PackageElement pkg : packages) {
- if (pkg != null && !pkg.isUnnamed()) {
- if (!(configuration.nodeprecated && utils.isDeprecated(pkg))) {
- Content packageLinkContent = getPackageLink(pkg, getPackageName(pkg));
- Content tdPackage = HtmlTree.TD(HtmlStyle.colFirst, packageLinkContent);
- HtmlTree tdSummary = new HtmlTree(HtmlTag.TD);
- tdSummary.addStyle(HtmlStyle.colLast);
- addSummaryComment(pkg, tdSummary);
- HtmlTree tr = HtmlTree.TR(tdPackage);
- tr.addContent(tdSummary);
- tr.addStyle(altColor ? HtmlStyle.altColor : HtmlStyle.rowColor);
- tbody.addContent(tr);
- }
- }
- altColor = !altColor;
- }
+ protected Content getNavSummaryLinks() throws Exception {
+ Content li = HtmlTree.LI(moduleSubNavLabel);
+ li.addContent(getSpace());
+ Content ulNav = HtmlTree.UL(HtmlStyle.subNavList, li);
+ Content liNav = new HtmlTree(HtmlTag.LI);
+ liNav.addContent(!utils.getBody(mdle).isEmpty() && !configuration.nocomment
+ ? getHyperLink(SectionName.MODULE_DESCRIPTION, getResource("doclet.navModuleDescription"))
+ : getResource("doclet.navModuleDescription"));
+ addNavGap(liNav);
+ liNav.addContent(showDirectives(DirectiveKind.REQUIRES)
+ ? getHyperLink(SectionName.MODULES, getResource("doclet.navModules"))
+ : getResource("doclet.navModules"));
+ addNavGap(liNav);
+ liNav.addContent(showDirectives(DirectiveKind.EXPORTS)
+ ? getHyperLink(SectionName.PACKAGES, getResource("doclet.navPackages"))
+ : getResource("doclet.navPackages"));
+ addNavGap(liNav);
+ liNav.addContent((showDirectives(DirectiveKind.USES) || showDirectives(DirectiveKind.PROVIDES))
+ ? getHyperLink(SectionName.SERVICES, getResource("doclet.navServices"))
+ : getResource("doclet.navServices"));
+ ulNav.addContent(liNav);
+ return ulNav;
+ }
+
+ /**
+ * Return true if the directive should be displayed.
+ *
+ * @param dirKind the kind of directive for the module
+ * @return true if the directive should be displayed
+ */
+ private boolean showDirectives(DirectiveKind dirKind) {
+ return directiveMap.get(dirKind) != null && !directiveMap.get(dirKind).isEmpty();
}
/**
--- a/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SectionName.java Thu Jul 14 15:47:47 2016 +0000
+++ b/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SectionName.java Thu Jul 14 16:21:39 2016 +0000
@@ -54,6 +54,9 @@
METHODS_INHERITANCE("methods.inherited.from.class."),
METHOD_SUMMARY("method.summary"),
MODULE_DESCRIPTION("module.description"),
+ MODULES("modules.summary"),
+ PACKAGES("packages.summary"),
+ SERVICES("services.summary"),
NAVBAR_BOTTOM("navbar.bottom"),
NAVBAR_BOTTOM_FIRSTROW("navbar.bottom.firstrow"),
NAVBAR_TOP("navbar.top"),
--- a/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlConstants.java Thu Jul 14 15:47:47 2016 +0000
+++ b/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlConstants.java Thu Jul 14 16:21:39 2016 +0000
@@ -70,6 +70,24 @@
new Comment("============ MODULE DESCRIPTION ===========");
/**
+ * Marker to identify start of modules summary.
+ */
+ public static final Content START_OF_MODULES_SUMMARY =
+ new Comment("============ MODULES SUMMARY ===========");
+
+ /**
+ * Marker to identify start of packages summary.
+ */
+ public static final Content START_OF_PACKAGES_SUMMARY =
+ new Comment("============ PACKAGES SUMMARY ===========");
+
+ /**
+ * Marker to identify start of services summary.
+ */
+ public static final Content START_OF_SERVICES_SUMMARY =
+ new Comment("============ SERVICES SUMMARY ===========");
+
+ /**
* Marker to identify start of class data.
*/
public static final Content START_OF_CLASS_DATA =
--- a/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlStyle.java Thu Jul 14 15:47:47 2016 +0000
+++ b/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlStyle.java Thu Jul 14 16:21:39 2016 +0000
@@ -49,6 +49,7 @@
colFirst,
colLast,
colOne,
+ colSecond,
constantsSummary,
constantValuesContainer,
contentContainer,
@@ -65,6 +66,7 @@
header,
horizontal,
footer,
+ implementationLabel,
indexContainer,
indexNav,
inheritance,
@@ -87,7 +89,10 @@
overviewSummary,
packageHierarchyLabel,
packageLabelInClass,
+ packagesSummary,
paramLabel,
+ providesSummary,
+ requiresSummary,
returnLabel,
rightContainer,
rightIframe,
@@ -111,5 +116,6 @@
typeNameLabel,
typeNameLink,
typeSummary,
- useSummary
+ useSummary,
+ usesSummary
}
--- a/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlWriter.java Thu Jul 14 15:47:47 2016 +0000
+++ b/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlWriter.java Thu Jul 14 16:21:39 2016 +0000
@@ -77,6 +77,26 @@
protected final List<String> packageTableHeader;
/**
+ * Header for tables displaying modules and description..
+ */
+ protected final List<String> requiresTableHeader;
+
+ /**
+ * Header for tables displaying packages and description..
+ */
+ protected final List<String> exportedPackagesTableHeader;
+
+ /**
+ * Header for tables displaying types and description..
+ */
+ protected final List<String> usesTableHeader;
+
+ /**
+ * Header for tables displaying types and description..
+ */
+ protected final List<String> providesTableHeader;
+
+ /**
* Summary for use tables displaying class and package use.
*/
protected final String useTableSummary;
@@ -108,6 +128,8 @@
public final Content detailLabel;
+ public final Content moduleSubNavLabel;
+
public final Content framesLabel;
public final Content noframesLabel;
@@ -192,6 +214,19 @@
packageTableHeader = new ArrayList<>();
packageTableHeader.add(configuration.getText("doclet.Package"));
packageTableHeader.add(configuration.getText("doclet.Description"));
+ requiresTableHeader = new ArrayList<>();
+ requiresTableHeader.add(configuration.getText("doclet.Module"));
+ requiresTableHeader.add(configuration.getText("doclet.Description"));
+ exportedPackagesTableHeader = new ArrayList<>();
+ exportedPackagesTableHeader.add(configuration.getText("doclet.Package"));
+ exportedPackagesTableHeader.add(configuration.getText("doclet.Module"));
+ exportedPackagesTableHeader.add(configuration.getText("doclet.Description"));
+ usesTableHeader = new ArrayList<>();
+ usesTableHeader.add(configuration.getText("doclet.Type"));
+ usesTableHeader.add(configuration.getText("doclet.Description"));
+ providesTableHeader = new ArrayList<>();
+ providesTableHeader.add(configuration.getText("doclet.Type"));
+ providesTableHeader.add(configuration.getText("doclet.Description"));
useTableSummary = configuration.getText("doclet.Use_Table_Summary",
configuration.getText("doclet.packages"));
modifierTypeHeader = configuration.getText("doclet.0_and_1",
@@ -208,6 +243,7 @@
nextclassLabel = getNonBreakResource("doclet.Next_Class");
summaryLabel = getResource("doclet.Summary");
detailLabel = getResource("doclet.Detail");
+ moduleSubNavLabel = getResource("doclet.Module_Sub_Nav");
framesLabel = getResource("doclet.Frames");
noframesLabel = getNonBreakResource("doclet.No_Frames");
treeLabel = getResource("doclet.Tree");
--- a/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard.properties Thu Jul 14 15:47:47 2016 +0000
+++ b/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard.properties Thu Jul 14 16:21:39 2016 +0000
@@ -31,6 +31,11 @@
doclet.Href_Class_Or_Interface_Title=class or interface in {0}
doclet.Summary=Summary:
doclet.Detail=Detail:
+doclet.Module_Sub_Nav=Module:
+doclet.navModuleDescription=Description
+doclet.navModules=Modules
+doclet.navPackages=Packages
+doclet.navServices=Services
doclet.navNested=Nested
doclet.navAnnotationTypeOptionalMember=Optional
doclet.navAnnotationTypeRequiredMember=Required
--- a/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/ModuleSummaryWriter.java Thu Jul 14 15:47:47 2016 +0000
+++ b/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/ModuleSummaryWriter.java Thu Jul 14 16:21:39 2016 +0000
@@ -91,15 +91,25 @@
public abstract void addModuleTags(Content moduleContentTree);
/**
- * Adds the table of packages to the documentation tree.
+ * Adds the modules summary to the documentation tree.
*
- * @param packages the set of packages that should be added.
- * @param label the label for this table.
- * @param tableSummary the summary string for the table
* @param summaryContentTree the content tree to which the summary will be added
*/
- public abstract void addPackagesSummary(Set<PackageElement> packages, String label,
- String tableSummary, Content summaryContentTree);
+ public abstract void addModulesSummary(Content summaryContentTree);
+
+ /**
+ * Adds the packages summary to the documentation tree.
+ *
+ * @param summaryContentTree the content tree to which the summary will be added
+ */
+ public abstract void addPackagesSummary(Content summaryContentTree);
+
+ /**
+ * Adds the services summary to the documentation tree.
+ *
+ * @param summaryContentTree the content tree to which the summary will be added
+ */
+ public abstract void addServicesSummary(Content summaryContentTree);
/**
* Adds the module content tree to the documentation tree.
--- a/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/ModuleSummaryBuilder.java Thu Jul 14 15:47:47 2016 +0000
+++ b/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/ModuleSummaryBuilder.java Thu Jul 14 16:21:39 2016 +0000
@@ -167,23 +167,34 @@
}
/**
- * Build the module package summary.
+ * Build the modules summary.
*
* @param node the XML element that specifies which components to document
* @param summaryContentTree the content tree to which the summaries will
* be added
*/
- public void buildPackageSummary(XMLNode node, Content summaryContentTree) {
- Set<PackageElement> packages = configuration.modulePackages.get(mdle);
- if (!packages.isEmpty()) {
- String packageTableSummary
- = configuration.getText("doclet.Member_Table_Summary",
- configuration.getText("doclet.Package_Summary"),
- configuration.getText("doclet.packages"));
- moduleWriter.addPackagesSummary(
- packages, configuration.getText("doclet.Package_Summary"),
- packageTableSummary, summaryContentTree);
+ public void buildModulesSummary(XMLNode node, Content summaryContentTree) {
+ moduleWriter.addModulesSummary(summaryContentTree);
+ }
+
+ /**
+ * Build the package summary.
+ *
+ * @param node the XML element that specifies which components to document
+ * @param summaryContentTree the content tree to which the summaries will be added
+ */
+ public void buildPackagesSummary(XMLNode node, Content summaryContentTree) {
+ moduleWriter.addPackagesSummary(summaryContentTree);
}
+
+ /**
+ * Build the services summary.
+ *
+ * @param node the XML element that specifies which components to document
+ * @param summaryContentTree the content tree to which the summaries will be added
+ */
+ public void buildServicesSummary(XMLNode node, Content summaryContentTree) {
+ moduleWriter.addServicesSummary(summaryContentTree);
}
/**
--- a/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclet.xml Thu Jul 14 15:47:47 2016 +0000
+++ b/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclet.xml Thu Jul 14 16:21:39 2016 +0000
@@ -33,7 +33,9 @@
<ModuleDescription/>
<ModuleTags/>
<Summary>
- <PackageSummary/>
+ <ModulesSummary/>
+ <PackagesSummary/>
+ <ServicesSummary/>
</Summary>
</Content>
</ModuleDoc>
--- a/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets.properties Thu Jul 14 15:47:47 2016 +0000
+++ b/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets.properties Thu Jul 14 16:21:39 2016 +0000
@@ -69,6 +69,10 @@
doclet.tag_misuse=Tag {0} cannot be used in {1} documentation. It can only be used in the following types of documentation: {2}.
doclet.javafx_tag_misuse=Tags @propertyGetter, @propertySetter and @propertyDescription can only be used in JavaFX properties getters and setters.
doclet.Package_Summary=Package Summary
+doclet.Requires_Summary=Requires
+doclet.Exported_Packages_Summary=Exported Packages
+doclet.Uses_Summary=Uses
+doclet.Provides_Summary=Provides
doclet.Module_Summary=Module Summary
doclet.Interface_Summary=Interface Summary
doclet.Annotation_Types_Summary=Annotation Types Summary
@@ -93,6 +97,7 @@
doclet.Packages=Packages
doclet.packages=packages
doclet.modules=modules
+doclet.types=types
doclet.All_Classes=All Classes
doclet.All_Superinterfaces=All Superinterfaces:
doclet.All_Implemented_Interfaces=All Implemented Interfaces:
@@ -170,6 +175,7 @@
doclet.subinterfaces=subinterfaces
doclet.Modifier=Modifier
doclet.Type=Type
+doclet.Implementation=Implementation:
doclet.Types=Types
doclet.Members=Members
doclet.SearchTags=SearchTags
--- a/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/stylesheet.css Thu Jul 14 15:47:47 2016 +0000
+++ b/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/stylesheet.css Thu Jul 14 16:21:39 2016 +0000
@@ -412,18 +412,20 @@
/*
Table styles
*/
-.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
+.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary,
+.requiresSummary, .packagesSummary, .providesSummary, .usesSummary {
width:100%;
border-spacing:0;
border-left:1px solid #EEE;
border-right:1px solid #EEE;
border-bottom:1px solid #EEE;
}
-.overviewSummary, .memberSummary {
+.overviewSummary, .memberSummary, .requiresSummary, .packagesSummary, .providesSummary, .usesSummary {
padding:0px;
}
.overviewSummary caption, .memberSummary caption, .typeSummary caption,
-.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
+.useSummary caption, .constantsSummary caption, .deprecatedSummary caption,
+.requiresSummary caption, .packagesSummary caption, .providesSummary caption, .usesSummary caption {
position:relative;
text-align:left;
background-repeat:no-repeat;
@@ -439,16 +441,26 @@
}
.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
+.requiresSummary caption a:link, .packagesSummary caption a:link, providesSummary caption a:link,
+.usesSummary caption a:link,
.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
+.requiresSummary caption a:hover, .packagesSummary caption a:hover, providesSummary caption a:hover,
+.usesSummary caption a:hover,
.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
+.requiresSummary caption a:active, .packagesSummary caption a:active, providesSummary caption a:active,
+.usesSummary caption a:active,
.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
-.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
+.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited
+.requiresSummary caption a:visited, .packagesSummary caption a:visited, providesSummary caption a:visited,
+.usesSummary caption a:visited {
color:#FFFFFF;
}
.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
-.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
+.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span,
+.requiresSummary caption span, .packagesSummary caption span, .providesSummary caption span,
+.usesSummary caption span {
white-space:nowrap;
padding-top:5px;
padding-left:12px;
@@ -491,7 +503,8 @@
display:inline;
}
.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
-.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
+.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd,
+.requiresSummary .tabEnd, .packagesSummary .tabEnd, .providesSummary .tabEnd, .usesSummary .tabEnd {
display:none;
width:5px;
position:relative;
@@ -516,18 +529,19 @@
}
.overviewSummary td, .memberSummary td, .typeSummary td,
-.useSummary td, .constantsSummary td, .deprecatedSummary td {
+.useSummary td, .constantsSummary td, .deprecatedSummary td,
+.requiresSummary td, .packagesSummary td, .providesSummary td, .usesSummary td {
text-align:left;
padding:0px 0px 12px 10px;
}
-th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
-td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{
+th.colOne, th.colFirst, th.colSecond, th.colLast, .useSummary th, .constantsSummary th, .packagesSummary th,
+td.colOne, td.colFirst, td.colSecond, td.colLast, .useSummary td, .constantsSummary td {
vertical-align:top;
padding-right:0px;
padding-top:8px;
padding-bottom:3px;
}
-th.colFirst, th.colLast, th.colOne, .constantsSummary th {
+th.colFirst, th.colSecond, th.colLast, th.colOne, .constantsSummary th, .packagesSummary th {
background:#dee3e9;
text-align:left;
padding:8px 3px 3px 7px;
@@ -539,10 +553,19 @@
td.colLast, th.colLast {
font-size:13px;
}
-td.colOne, th.colOne {
+td.colOne, th.colOne, .constantsSummary th, .packagesSummary th {
+ font-size:13px;
+}
+.providesSummary th.colFirst, .providesSummary th.colLast, .providesSummary td.colFirst,
+.providesSummary td.colLast {
+ white-space:normal;
+ width:50%;
font-size:13px;
}
.overviewSummary td.colFirst, .overviewSummary th.colFirst,
+.requiresSummary td.colFirst, .requiresSummary th.colFirst,
+.packagesSummary td.colFirst, .packagesSummary td.colSecond, .packagesSummary th.colFirst, .packagesSummary th,
+.usesSummary td.colFirst, .usesSummary th.colFirst,
.useSummary td.colFirst, .useSummary th.colFirst,
.overviewSummary td.colOne, .overviewSummary th.colOne,
.memberSummary td.colFirst, .memberSummary th.colFirst,
@@ -551,7 +574,7 @@
width:25%;
vertical-align:top;
}
-td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
+td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colSecond a:link, td.colSecond a:active, td.colSecond a:visited, td.colSecond a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
font-weight:bold;
}
.tableSubHeadingColor {
@@ -611,7 +634,7 @@
margin:3px 10px 2px 0px;
color:#474747;
}
-.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink,
+.deprecatedLabel, .descfrmTypeLabel, .implementationLabel, .memberNameLabel, .memberNameLink,
.moduleLabelInClass, .overrideSpecifyLabel, .packageLabelInClass,
.packageHierarchyLabel, .paramLabel, .returnLabel, .seeLabel, .simpleTagLabel,
.throwsLabel, .typeNameLabel, .typeNameLink, .searchTagLink {
--- a/langtools/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/Analyzer.java Thu Jul 14 15:47:47 2016 +0000
+++ b/langtools/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/Analyzer.java Thu Jul 14 16:21:39 2016 +0000
@@ -25,20 +25,19 @@
package com.sun.tools.jdeps;
-import static com.sun.tools.jdeps.JdepsConfiguration.*;
+import com.sun.tools.classfile.Dependency.Location;
-import com.sun.tools.classfile.Dependency.Location;
+import java.io.BufferedReader;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
import java.io.UncheckedIOException;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
-import java.util.MissingResourceException;
import java.util.Objects;
-import java.util.Optional;
-import java.util.ResourceBundle;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -369,35 +368,29 @@
}
}
- static final JdkInternals REMOVED_JDK_INTERNALS = new JdkInternals();
+ static final Jdk8Internals REMOVED_JDK_INTERNALS = new Jdk8Internals();
- static class JdkInternals extends Module {
- private final String BUNDLE = "com.sun.tools.jdeps.resources.jdkinternals";
-
- private final Set<String> jdkinternals;
- private final Set<String> jdkUnsupportedClasses;
- private JdkInternals() {
+ static class Jdk8Internals extends Module {
+ private final String JDK8_INTERNALS = "/com/sun/tools/jdeps/resources/jdk8_internals.txt";
+ private final Set<String> jdk8Internals;
+ private Jdk8Internals() {
super("JDK removed internal API");
-
- try {
- ResourceBundle rb = ResourceBundle.getBundle(BUNDLE);
- this.jdkinternals = rb.keySet();
- } catch (MissingResourceException e) {
- throw new InternalError("Cannot find jdkinternals resource bundle");
+ try (InputStream in = JdepsTask.class.getResourceAsStream(JDK8_INTERNALS);
+ BufferedReader reader = new BufferedReader(new InputStreamReader(in))) {
+ this.jdk8Internals = reader.lines()
+ .filter(ln -> !ln.startsWith("#"))
+ .collect(Collectors.toSet());
+ } catch (IOException e) {
+ throw new UncheckedIOException(e);
}
-
- this.jdkUnsupportedClasses = getUnsupportedClasses();
}
public boolean contains(Location location) {
- if (jdkUnsupportedClasses.contains(location.getName() + ".class")) {
- return false;
- }
-
String cn = location.getClassName();
int i = cn.lastIndexOf('.');
String pn = i > 0 ? cn.substring(0, i) : "";
- return jdkinternals.contains(cn) || jdkinternals.contains(pn);
+
+ return jdk8Internals.contains(pn);
}
@Override
@@ -414,25 +407,5 @@
public boolean isExported(String pn) {
return false;
}
-
- private Set<String> getUnsupportedClasses() {
- // jdk.unsupported may not be observable
- Optional<Module> om = Profile.FULL_JRE.findModule(JDK_UNSUPPORTED);
- if (om.isPresent()) {
- return om.get().reader().entries();
- }
-
- // find from local run-time image
- SystemModuleFinder system = new SystemModuleFinder();
- if (system.find(JDK_UNSUPPORTED).isPresent()) {
- try {
- return system.getClassReader(JDK_UNSUPPORTED).entries();
- } catch (IOException e) {
- throw new UncheckedIOException(e);
- }
- }
-
- return Collections.emptySet();
- }
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/resources/jdk8_internals.txt Thu Jul 14 16:21:39 2016 +0000
@@ -0,0 +1,1029 @@
+# This file is auto-generated by ListJDKInternals tool on 2016-07-12T16:13:20.303865
+apple.applescript
+apple.laf
+apple.launcher
+apple.security
+com.apple.concurrent
+com.apple.eawt
+com.apple.eawt.event
+com.apple.eio
+com.apple.laf
+com.apple.laf.resources
+com.oracle.jrockit.jfr
+com.oracle.jrockit.jfr.client
+com.oracle.jrockit.jfr.management
+com.oracle.security.ucrypto
+com.oracle.util
+com.oracle.webservices.internal.api
+com.oracle.webservices.internal.api.databinding
+com.oracle.webservices.internal.api.message
+com.oracle.webservices.internal.impl.encoding
+com.oracle.webservices.internal.impl.internalspi.encoding
+com.oracle.xmlns.internal.webservices.jaxws_databinding
+com.sun.accessibility.internal.resources
+com.sun.activation.registries
+com.sun.awt
+com.sun.beans
+com.sun.beans.decoder
+com.sun.beans.editors
+com.sun.beans.finder
+com.sun.beans.infos
+com.sun.beans.util
+com.sun.codemodel.internal
+com.sun.codemodel.internal.fmt
+com.sun.codemodel.internal.util
+com.sun.codemodel.internal.writer
+com.sun.corba.se.impl.activation
+com.sun.corba.se.impl.copyobject
+com.sun.corba.se.impl.corba
+com.sun.corba.se.impl.dynamicany
+com.sun.corba.se.impl.encoding
+com.sun.corba.se.impl.interceptors
+com.sun.corba.se.impl.io
+com.sun.corba.se.impl.ior
+com.sun.corba.se.impl.ior.iiop
+com.sun.corba.se.impl.javax.rmi
+com.sun.corba.se.impl.javax.rmi.CORBA
+com.sun.corba.se.impl.legacy.connection
+com.sun.corba.se.impl.logging
+com.sun.corba.se.impl.monitoring
+com.sun.corba.se.impl.naming.cosnaming
+com.sun.corba.se.impl.naming.namingutil
+com.sun.corba.se.impl.naming.pcosnaming
+com.sun.corba.se.impl.oa
+com.sun.corba.se.impl.oa.poa
+com.sun.corba.se.impl.oa.toa
+com.sun.corba.se.impl.orb
+com.sun.corba.se.impl.orbutil
+com.sun.corba.se.impl.orbutil.closure
+com.sun.corba.se.impl.orbutil.concurrent
+com.sun.corba.se.impl.orbutil.fsm
+com.sun.corba.se.impl.orbutil.graph
+com.sun.corba.se.impl.orbutil.threadpool
+com.sun.corba.se.impl.presentation.rmi
+com.sun.corba.se.impl.protocol
+com.sun.corba.se.impl.protocol.giopmsgheaders
+com.sun.corba.se.impl.resolver
+com.sun.corba.se.impl.transport
+com.sun.corba.se.impl.util
+com.sun.corba.se.internal.CosNaming
+com.sun.corba.se.internal.Interceptors
+com.sun.corba.se.internal.POA
+com.sun.corba.se.internal.corba
+com.sun.corba.se.internal.iiop
+com.sun.corba.se.org.omg.CORBA
+com.sun.corba.se.pept.broker
+com.sun.corba.se.pept.encoding
+com.sun.corba.se.pept.protocol
+com.sun.corba.se.pept.transport
+com.sun.corba.se.spi.activation
+com.sun.corba.se.spi.activation.InitialNameServicePackage
+com.sun.corba.se.spi.activation.LocatorPackage
+com.sun.corba.se.spi.activation.RepositoryPackage
+com.sun.corba.se.spi.copyobject
+com.sun.corba.se.spi.encoding
+com.sun.corba.se.spi.extension
+com.sun.corba.se.spi.ior
+com.sun.corba.se.spi.ior.iiop
+com.sun.corba.se.spi.legacy.connection
+com.sun.corba.se.spi.legacy.interceptor
+com.sun.corba.se.spi.logging
+com.sun.corba.se.spi.monitoring
+com.sun.corba.se.spi.oa
+com.sun.corba.se.spi.orb
+com.sun.corba.se.spi.orbutil.closure
+com.sun.corba.se.spi.orbutil.fsm
+com.sun.corba.se.spi.orbutil.proxy
+com.sun.corba.se.spi.orbutil.threadpool
+com.sun.corba.se.spi.presentation.rmi
+com.sun.corba.se.spi.protocol
+com.sun.corba.se.spi.resolver
+com.sun.corba.se.spi.servicecontext
+com.sun.corba.se.spi.transport
+com.sun.crypto.provider
+com.sun.demo.jvmti.hprof
+com.sun.deploy.uitoolkit.impl.fx
+com.sun.deploy.uitoolkit.impl.fx.ui
+com.sun.deploy.uitoolkit.impl.fx.ui.resources
+com.sun.glass.events
+com.sun.glass.events.mac
+com.sun.glass.ui
+com.sun.glass.ui.delegate
+com.sun.glass.ui.gtk
+com.sun.glass.ui.mac
+com.sun.glass.ui.win
+com.sun.glass.utils
+com.sun.image.codec.jpeg
+com.sun.imageio.plugins.bmp
+com.sun.imageio.plugins.common
+com.sun.imageio.plugins.gif
+com.sun.imageio.plugins.jpeg
+com.sun.imageio.plugins.png
+com.sun.imageio.plugins.wbmp
+com.sun.imageio.spi
+com.sun.imageio.stream
+com.sun.istack.internal
+com.sun.istack.internal.localization
+com.sun.istack.internal.logging
+com.sun.istack.internal.tools
+com.sun.java.accessibility
+com.sun.java.accessibility.util.java.awt
+com.sun.java.browser.dom
+com.sun.java.browser.net
+com.sun.java.swing
+com.sun.java.swing.plaf.gtk
+com.sun.java.swing.plaf.gtk.resources
+com.sun.java.swing.plaf.motif
+com.sun.java.swing.plaf.motif.resources
+com.sun.java.swing.plaf.nimbus
+com.sun.java.swing.plaf.windows
+com.sun.java.swing.plaf.windows.resources
+com.sun.java.util.jar.pack
+com.sun.java_cup.internal.runtime
+com.sun.javafx
+com.sun.javafx.animation
+com.sun.javafx.applet
+com.sun.javafx.application
+com.sun.javafx.beans
+com.sun.javafx.beans.event
+com.sun.javafx.binding
+com.sun.javafx.charts
+com.sun.javafx.collections
+com.sun.javafx.css
+com.sun.javafx.css.converters
+com.sun.javafx.css.parser
+com.sun.javafx.cursor
+com.sun.javafx.effect
+com.sun.javafx.embed
+com.sun.javafx.event
+com.sun.javafx.font
+com.sun.javafx.font.coretext
+com.sun.javafx.font.directwrite
+com.sun.javafx.font.freetype
+com.sun.javafx.font.t2k
+com.sun.javafx.fxml
+com.sun.javafx.fxml.builder
+com.sun.javafx.fxml.expression
+com.sun.javafx.geom
+com.sun.javafx.geom.transform
+com.sun.javafx.geometry
+com.sun.javafx.iio
+com.sun.javafx.iio.bmp
+com.sun.javafx.iio.common
+com.sun.javafx.iio.gif
+com.sun.javafx.iio.ios
+com.sun.javafx.iio.jpeg
+com.sun.javafx.iio.png
+com.sun.javafx.image
+com.sun.javafx.image.impl
+com.sun.javafx.jmx
+com.sun.javafx.logging
+com.sun.javafx.media
+com.sun.javafx.menu
+com.sun.javafx.perf
+com.sun.javafx.print
+com.sun.javafx.property
+com.sun.javafx.property.adapter
+com.sun.javafx.robot
+com.sun.javafx.robot.impl
+com.sun.javafx.runtime
+com.sun.javafx.runtime.async
+com.sun.javafx.runtime.eula
+com.sun.javafx.scene
+com.sun.javafx.scene.control
+com.sun.javafx.scene.control.behavior
+com.sun.javafx.scene.control.skin
+com.sun.javafx.scene.control.skin.resources
+com.sun.javafx.scene.input
+com.sun.javafx.scene.layout.region
+com.sun.javafx.scene.paint
+com.sun.javafx.scene.shape
+com.sun.javafx.scene.text
+com.sun.javafx.scene.transform
+com.sun.javafx.scene.traversal
+com.sun.javafx.scene.web
+com.sun.javafx.scene.web.behavior
+com.sun.javafx.scene.web.skin
+com.sun.javafx.sg.prism
+com.sun.javafx.sg.prism.web
+com.sun.javafx.stage
+com.sun.javafx.text
+com.sun.javafx.tk
+com.sun.javafx.tk.quantum
+com.sun.javafx.util
+com.sun.javafx.webkit
+com.sun.javafx.webkit.drt
+com.sun.javafx.webkit.prism
+com.sun.javafx.webkit.prism.theme
+com.sun.javafx.webkit.theme
+com.sun.jmx.defaults
+com.sun.jmx.interceptor
+com.sun.jmx.mbeanserver
+com.sun.jmx.remote.internal
+com.sun.jmx.remote.protocol.iiop
+com.sun.jmx.remote.protocol.rmi
+com.sun.jmx.remote.security
+com.sun.jmx.remote.util
+com.sun.jmx.snmp
+com.sun.jmx.snmp.IPAcl
+com.sun.jmx.snmp.agent
+com.sun.jmx.snmp.daemon
+com.sun.jmx.snmp.defaults
+com.sun.jmx.snmp.internal
+com.sun.jmx.snmp.mpm
+com.sun.jmx.snmp.tasks
+com.sun.jndi.cosnaming
+com.sun.jndi.dns
+com.sun.jndi.ldap
+com.sun.jndi.ldap.ext
+com.sun.jndi.ldap.pool
+com.sun.jndi.ldap.sasl
+com.sun.jndi.rmi.registry
+com.sun.jndi.toolkit.corba
+com.sun.jndi.toolkit.ctx
+com.sun.jndi.toolkit.dir
+com.sun.jndi.toolkit.url
+com.sun.jndi.url.corbaname
+com.sun.jndi.url.dns
+com.sun.jndi.url.iiop
+com.sun.jndi.url.iiopname
+com.sun.jndi.url.ldap
+com.sun.jndi.url.ldaps
+com.sun.jndi.url.rmi
+com.sun.management.jmx
+com.sun.media.jfxmedia
+com.sun.media.jfxmedia.control
+com.sun.media.jfxmedia.effects
+com.sun.media.jfxmedia.events
+com.sun.media.jfxmedia.locator
+com.sun.media.jfxmedia.logging
+com.sun.media.jfxmedia.track
+com.sun.media.jfxmediaimpl
+com.sun.media.jfxmediaimpl.platform
+com.sun.media.jfxmediaimpl.platform.gstreamer
+com.sun.media.jfxmediaimpl.platform.ios
+com.sun.media.jfxmediaimpl.platform.java
+com.sun.media.jfxmediaimpl.platform.osx
+com.sun.media.sound
+com.sun.naming.internal
+com.sun.net.ssl
+com.sun.net.ssl.internal.ssl
+com.sun.net.ssl.internal.www.protocol.https
+com.sun.nio.file
+com.sun.nio.zipfs
+com.sun.openpisces
+com.sun.org.apache.bcel.internal
+com.sun.org.apache.bcel.internal.classfile
+com.sun.org.apache.bcel.internal.generic
+com.sun.org.apache.bcel.internal.util
+com.sun.org.apache.regexp.internal
+com.sun.org.apache.xalan.internal
+com.sun.org.apache.xalan.internal.extensions
+com.sun.org.apache.xalan.internal.lib
+com.sun.org.apache.xalan.internal.res
+com.sun.org.apache.xalan.internal.templates
+com.sun.org.apache.xalan.internal.utils
+com.sun.org.apache.xalan.internal.xslt
+com.sun.org.apache.xalan.internal.xsltc
+com.sun.org.apache.xalan.internal.xsltc.cmdline
+com.sun.org.apache.xalan.internal.xsltc.cmdline.getopt
+com.sun.org.apache.xalan.internal.xsltc.compiler
+com.sun.org.apache.xalan.internal.xsltc.compiler.util
+com.sun.org.apache.xalan.internal.xsltc.dom
+com.sun.org.apache.xalan.internal.xsltc.runtime
+com.sun.org.apache.xalan.internal.xsltc.runtime.output
+com.sun.org.apache.xalan.internal.xsltc.trax
+com.sun.org.apache.xalan.internal.xsltc.util
+com.sun.org.apache.xerces.internal.dom
+com.sun.org.apache.xerces.internal.dom.events
+com.sun.org.apache.xerces.internal.impl
+com.sun.org.apache.xerces.internal.impl.dtd
+com.sun.org.apache.xerces.internal.impl.dtd.models
+com.sun.org.apache.xerces.internal.impl.dv
+com.sun.org.apache.xerces.internal.impl.dv.dtd
+com.sun.org.apache.xerces.internal.impl.dv.util
+com.sun.org.apache.xerces.internal.impl.dv.xs
+com.sun.org.apache.xerces.internal.impl.io
+com.sun.org.apache.xerces.internal.impl.msg
+com.sun.org.apache.xerces.internal.impl.validation
+com.sun.org.apache.xerces.internal.impl.xpath
+com.sun.org.apache.xerces.internal.impl.xpath.regex
+com.sun.org.apache.xerces.internal.impl.xs
+com.sun.org.apache.xerces.internal.impl.xs.identity
+com.sun.org.apache.xerces.internal.impl.xs.models
+com.sun.org.apache.xerces.internal.impl.xs.opti
+com.sun.org.apache.xerces.internal.impl.xs.traversers
+com.sun.org.apache.xerces.internal.impl.xs.util
+com.sun.org.apache.xerces.internal.jaxp
+com.sun.org.apache.xerces.internal.jaxp.datatype
+com.sun.org.apache.xerces.internal.jaxp.validation
+com.sun.org.apache.xerces.internal.parsers
+com.sun.org.apache.xerces.internal.util
+com.sun.org.apache.xerces.internal.utils
+com.sun.org.apache.xerces.internal.xinclude
+com.sun.org.apache.xerces.internal.xni
+com.sun.org.apache.xerces.internal.xni.grammars
+com.sun.org.apache.xerces.internal.xni.parser
+com.sun.org.apache.xerces.internal.xpointer
+com.sun.org.apache.xerces.internal.xs
+com.sun.org.apache.xerces.internal.xs.datatypes
+com.sun.org.apache.xml.internal.dtm
+com.sun.org.apache.xml.internal.dtm.ref
+com.sun.org.apache.xml.internal.dtm.ref.dom2dtm
+com.sun.org.apache.xml.internal.dtm.ref.sax2dtm
+com.sun.org.apache.xml.internal.res
+com.sun.org.apache.xml.internal.resolver
+com.sun.org.apache.xml.internal.resolver.helpers
+com.sun.org.apache.xml.internal.resolver.readers
+com.sun.org.apache.xml.internal.resolver.tools
+com.sun.org.apache.xml.internal.security
+com.sun.org.apache.xml.internal.security.algorithms
+com.sun.org.apache.xml.internal.security.algorithms.implementations
+com.sun.org.apache.xml.internal.security.c14n
+com.sun.org.apache.xml.internal.security.c14n.helper
+com.sun.org.apache.xml.internal.security.c14n.implementations
+com.sun.org.apache.xml.internal.security.encryption
+com.sun.org.apache.xml.internal.security.exceptions
+com.sun.org.apache.xml.internal.security.keys
+com.sun.org.apache.xml.internal.security.keys.content
+com.sun.org.apache.xml.internal.security.keys.content.keyvalues
+com.sun.org.apache.xml.internal.security.keys.content.x509
+com.sun.org.apache.xml.internal.security.keys.keyresolver
+com.sun.org.apache.xml.internal.security.keys.keyresolver.implementations
+com.sun.org.apache.xml.internal.security.keys.storage
+com.sun.org.apache.xml.internal.security.keys.storage.implementations
+com.sun.org.apache.xml.internal.security.signature
+com.sun.org.apache.xml.internal.security.signature.reference
+com.sun.org.apache.xml.internal.security.transforms
+com.sun.org.apache.xml.internal.security.transforms.implementations
+com.sun.org.apache.xml.internal.security.transforms.params
+com.sun.org.apache.xml.internal.security.utils
+com.sun.org.apache.xml.internal.security.utils.resolver
+com.sun.org.apache.xml.internal.security.utils.resolver.implementations
+com.sun.org.apache.xml.internal.serialize
+com.sun.org.apache.xml.internal.serializer
+com.sun.org.apache.xml.internal.serializer.utils
+com.sun.org.apache.xml.internal.utils
+com.sun.org.apache.xml.internal.utils.res
+com.sun.org.apache.xpath.internal
+com.sun.org.apache.xpath.internal.axes
+com.sun.org.apache.xpath.internal.compiler
+com.sun.org.apache.xpath.internal.domapi
+com.sun.org.apache.xpath.internal.functions
+com.sun.org.apache.xpath.internal.jaxp
+com.sun.org.apache.xpath.internal.objects
+com.sun.org.apache.xpath.internal.operations
+com.sun.org.apache.xpath.internal.patterns
+com.sun.org.apache.xpath.internal.res
+com.sun.org.glassfish.external.amx
+com.sun.org.glassfish.external.arc
+com.sun.org.glassfish.external.probe.provider
+com.sun.org.glassfish.external.probe.provider.annotations
+com.sun.org.glassfish.external.statistics
+com.sun.org.glassfish.external.statistics.annotations
+com.sun.org.glassfish.external.statistics.impl
+com.sun.org.glassfish.gmbal
+com.sun.org.glassfish.gmbal.util
+com.sun.org.omg.CORBA
+com.sun.org.omg.CORBA.ValueDefPackage
+com.sun.org.omg.CORBA.portable
+com.sun.org.omg.SendingContext
+com.sun.org.omg.SendingContext.CodeBasePackage
+com.sun.pisces
+com.sun.prism
+com.sun.prism.d3d
+com.sun.prism.es2
+com.sun.prism.image
+com.sun.prism.impl
+com.sun.prism.impl.packrect
+com.sun.prism.impl.paint
+com.sun.prism.impl.ps
+com.sun.prism.impl.shape
+com.sun.prism.j2d
+com.sun.prism.j2d.paint
+com.sun.prism.j2d.print
+com.sun.prism.paint
+com.sun.prism.ps
+com.sun.prism.shader
+com.sun.prism.shape
+com.sun.prism.sw
+com.sun.rmi.rmid
+com.sun.rowset
+com.sun.rowset.internal
+com.sun.rowset.providers
+com.sun.scenario
+com.sun.scenario.animation
+com.sun.scenario.animation.shared
+com.sun.scenario.effect
+com.sun.scenario.effect.impl
+com.sun.scenario.effect.impl.es2
+com.sun.scenario.effect.impl.hw
+com.sun.scenario.effect.impl.hw.d3d
+com.sun.scenario.effect.impl.prism
+com.sun.scenario.effect.impl.prism.ps
+com.sun.scenario.effect.impl.prism.sw
+com.sun.scenario.effect.impl.state
+com.sun.scenario.effect.impl.sw
+com.sun.scenario.effect.impl.sw.java
+com.sun.scenario.effect.impl.sw.sse
+com.sun.scenario.effect.light
+com.sun.security.cert.internal.x509
+com.sun.security.ntlm
+com.sun.security.sasl
+com.sun.security.sasl.digest
+com.sun.security.sasl.gsskerb
+com.sun.security.sasl.ntlm
+com.sun.security.sasl.util
+com.sun.swing.internal.plaf.basic.resources
+com.sun.swing.internal.plaf.metal.resources
+com.sun.swing.internal.plaf.synth.resources
+com.sun.tools.classfile
+com.sun.tools.corba.se.idl
+com.sun.tools.corba.se.idl.constExpr
+com.sun.tools.corba.se.idl.som.cff
+com.sun.tools.corba.se.idl.som.idlemit
+com.sun.tools.corba.se.idl.toJavaPortable
+com.sun.tools.doclets.formats.html
+com.sun.tools.doclets.formats.html.markup
+com.sun.tools.doclets.formats.html.resources
+com.sun.tools.doclets.internal.toolkit
+com.sun.tools.doclets.internal.toolkit.builders
+com.sun.tools.doclets.internal.toolkit.resources
+com.sun.tools.doclets.internal.toolkit.taglets
+com.sun.tools.doclets.internal.toolkit.util
+com.sun.tools.doclets.internal.toolkit.util.links
+com.sun.tools.doclint
+com.sun.tools.doclint.resources
+com.sun.tools.example.debug.expr
+com.sun.tools.example.debug.tty
+com.sun.tools.extcheck
+com.sun.tools.hat
+com.sun.tools.hat.internal.model
+com.sun.tools.hat.internal.oql
+com.sun.tools.hat.internal.parser
+com.sun.tools.hat.internal.server
+com.sun.tools.hat.internal.util
+com.sun.tools.internal.jxc
+com.sun.tools.internal.jxc.ap
+com.sun.tools.internal.jxc.api
+com.sun.tools.internal.jxc.api.impl.j2s
+com.sun.tools.internal.jxc.gen.config
+com.sun.tools.internal.jxc.model.nav
+com.sun.tools.internal.ws
+com.sun.tools.internal.ws.api
+com.sun.tools.internal.ws.api.wsdl
+com.sun.tools.internal.ws.processor
+com.sun.tools.internal.ws.processor.generator
+com.sun.tools.internal.ws.processor.model
+com.sun.tools.internal.ws.processor.model.exporter
+com.sun.tools.internal.ws.processor.model.java
+com.sun.tools.internal.ws.processor.model.jaxb
+com.sun.tools.internal.ws.processor.modeler
+com.sun.tools.internal.ws.processor.modeler.annotation
+com.sun.tools.internal.ws.processor.modeler.wsdl
+com.sun.tools.internal.ws.processor.util
+com.sun.tools.internal.ws.resources
+com.sun.tools.internal.ws.spi
+com.sun.tools.internal.ws.util
+com.sun.tools.internal.ws.util.xml
+com.sun.tools.internal.ws.wscompile
+com.sun.tools.internal.ws.wscompile.plugin.at_generated
+com.sun.tools.internal.ws.wsdl.document
+com.sun.tools.internal.ws.wsdl.document.http
+com.sun.tools.internal.ws.wsdl.document.jaxws
+com.sun.tools.internal.ws.wsdl.document.mime
+com.sun.tools.internal.ws.wsdl.document.schema
+com.sun.tools.internal.ws.wsdl.document.soap
+com.sun.tools.internal.ws.wsdl.framework
+com.sun.tools.internal.ws.wsdl.parser
+com.sun.tools.internal.xjc
+com.sun.tools.internal.xjc.addon.accessors
+com.sun.tools.internal.xjc.addon.at_generated
+com.sun.tools.internal.xjc.addon.code_injector
+com.sun.tools.internal.xjc.addon.episode
+com.sun.tools.internal.xjc.addon.locator
+com.sun.tools.internal.xjc.addon.sync
+com.sun.tools.internal.xjc.api
+com.sun.tools.internal.xjc.api.impl.s2j
+com.sun.tools.internal.xjc.api.util
+com.sun.tools.internal.xjc.generator.annotation.spec
+com.sun.tools.internal.xjc.generator.bean
+com.sun.tools.internal.xjc.generator.bean.field
+com.sun.tools.internal.xjc.generator.util
+com.sun.tools.internal.xjc.model
+com.sun.tools.internal.xjc.model.nav
+com.sun.tools.internal.xjc.outline
+com.sun.tools.internal.xjc.reader
+com.sun.tools.internal.xjc.reader.dtd
+com.sun.tools.internal.xjc.reader.dtd.bindinfo
+com.sun.tools.internal.xjc.reader.gbind
+com.sun.tools.internal.xjc.reader.internalizer
+com.sun.tools.internal.xjc.reader.relaxng
+com.sun.tools.internal.xjc.reader.xmlschema
+com.sun.tools.internal.xjc.reader.xmlschema.bindinfo
+com.sun.tools.internal.xjc.reader.xmlschema.ct
+com.sun.tools.internal.xjc.reader.xmlschema.parser
+com.sun.tools.internal.xjc.runtime
+com.sun.tools.internal.xjc.util
+com.sun.tools.internal.xjc.writer
+com.sun.tools.javac.api
+com.sun.tools.javac.code
+com.sun.tools.javac.comp
+com.sun.tools.javac.file
+com.sun.tools.javac.jvm
+com.sun.tools.javac.main
+com.sun.tools.javac.model
+com.sun.tools.javac.nio
+com.sun.tools.javac.parser
+com.sun.tools.javac.processing
+com.sun.tools.javac.resources
+com.sun.tools.javac.sym
+com.sun.tools.javac.tree
+com.sun.tools.javac.util
+com.sun.tools.javadoc.api
+com.sun.tools.javadoc.resources
+com.sun.tools.javah
+com.sun.tools.javah.resources
+com.sun.tools.javap
+com.sun.tools.javap.resources
+com.sun.tools.jdeps
+com.sun.tools.jdeps.resources
+com.sun.tools.jdi
+com.sun.tools.jdi.resources
+com.sun.tools.script.shell
+com.sun.tracing
+com.sun.tracing.dtrace
+com.sun.webkit
+com.sun.webkit.dom
+com.sun.webkit.event
+com.sun.webkit.graphics
+com.sun.webkit.network
+com.sun.webkit.network.about
+com.sun.webkit.network.data
+com.sun.webkit.perf
+com.sun.webkit.plugin
+com.sun.webkit.text
+com.sun.xml.internal.bind
+com.sun.xml.internal.bind.annotation
+com.sun.xml.internal.bind.api
+com.sun.xml.internal.bind.api.impl
+com.sun.xml.internal.bind.marshaller
+com.sun.xml.internal.bind.unmarshaller
+com.sun.xml.internal.bind.util
+com.sun.xml.internal.bind.v2
+com.sun.xml.internal.bind.v2.bytecode
+com.sun.xml.internal.bind.v2.model.annotation
+com.sun.xml.internal.bind.v2.model.core
+com.sun.xml.internal.bind.v2.model.impl
+com.sun.xml.internal.bind.v2.model.nav
+com.sun.xml.internal.bind.v2.model.runtime
+com.sun.xml.internal.bind.v2.model.util
+com.sun.xml.internal.bind.v2.runtime
+com.sun.xml.internal.bind.v2.runtime.output
+com.sun.xml.internal.bind.v2.runtime.property
+com.sun.xml.internal.bind.v2.runtime.reflect
+com.sun.xml.internal.bind.v2.runtime.reflect.opt
+com.sun.xml.internal.bind.v2.runtime.unmarshaller
+com.sun.xml.internal.bind.v2.schemagen
+com.sun.xml.internal.bind.v2.schemagen.episode
+com.sun.xml.internal.bind.v2.schemagen.xmlschema
+com.sun.xml.internal.bind.v2.util
+com.sun.xml.internal.dtdparser
+com.sun.xml.internal.fastinfoset
+com.sun.xml.internal.fastinfoset.algorithm
+com.sun.xml.internal.fastinfoset.alphabet
+com.sun.xml.internal.fastinfoset.dom
+com.sun.xml.internal.fastinfoset.org.apache.xerces.util
+com.sun.xml.internal.fastinfoset.sax
+com.sun.xml.internal.fastinfoset.stax
+com.sun.xml.internal.fastinfoset.stax.events
+com.sun.xml.internal.fastinfoset.stax.factory
+com.sun.xml.internal.fastinfoset.stax.util
+com.sun.xml.internal.fastinfoset.tools
+com.sun.xml.internal.fastinfoset.util
+com.sun.xml.internal.fastinfoset.vocab
+com.sun.xml.internal.messaging.saaj
+com.sun.xml.internal.messaging.saaj.client.p2p
+com.sun.xml.internal.messaging.saaj.packaging.mime
+com.sun.xml.internal.messaging.saaj.packaging.mime.internet
+com.sun.xml.internal.messaging.saaj.packaging.mime.util
+com.sun.xml.internal.messaging.saaj.soap
+com.sun.xml.internal.messaging.saaj.soap.dynamic
+com.sun.xml.internal.messaging.saaj.soap.impl
+com.sun.xml.internal.messaging.saaj.soap.name
+com.sun.xml.internal.messaging.saaj.soap.ver1_1
+com.sun.xml.internal.messaging.saaj.soap.ver1_2
+com.sun.xml.internal.messaging.saaj.util
+com.sun.xml.internal.messaging.saaj.util.transform
+com.sun.xml.internal.org.jvnet.fastinfoset
+com.sun.xml.internal.org.jvnet.fastinfoset.sax
+com.sun.xml.internal.org.jvnet.fastinfoset.sax.helpers
+com.sun.xml.internal.org.jvnet.fastinfoset.stax
+com.sun.xml.internal.org.jvnet.mimepull
+com.sun.xml.internal.org.jvnet.staxex
+com.sun.xml.internal.rngom.ast.builder
+com.sun.xml.internal.rngom.ast.om
+com.sun.xml.internal.rngom.ast.util
+com.sun.xml.internal.rngom.binary
+com.sun.xml.internal.rngom.binary.visitor
+com.sun.xml.internal.rngom.digested
+com.sun.xml.internal.rngom.dt
+com.sun.xml.internal.rngom.dt.builtin
+com.sun.xml.internal.rngom.nc
+com.sun.xml.internal.rngom.parse
+com.sun.xml.internal.rngom.parse.compact
+com.sun.xml.internal.rngom.parse.host
+com.sun.xml.internal.rngom.parse.xml
+com.sun.xml.internal.rngom.util
+com.sun.xml.internal.rngom.xml.sax
+com.sun.xml.internal.rngom.xml.util
+com.sun.xml.internal.stream
+com.sun.xml.internal.stream.buffer
+com.sun.xml.internal.stream.buffer.sax
+com.sun.xml.internal.stream.buffer.stax
+com.sun.xml.internal.stream.dtd
+com.sun.xml.internal.stream.dtd.nonvalidating
+com.sun.xml.internal.stream.events
+com.sun.xml.internal.stream.util
+com.sun.xml.internal.stream.writers
+com.sun.xml.internal.txw2
+com.sun.xml.internal.txw2.annotation
+com.sun.xml.internal.txw2.output
+com.sun.xml.internal.ws
+com.sun.xml.internal.ws.addressing
+com.sun.xml.internal.ws.addressing.model
+com.sun.xml.internal.ws.addressing.policy
+com.sun.xml.internal.ws.addressing.v200408
+com.sun.xml.internal.ws.api
+com.sun.xml.internal.ws.api.addressing
+com.sun.xml.internal.ws.api.client
+com.sun.xml.internal.ws.api.config.management
+com.sun.xml.internal.ws.api.config.management.policy
+com.sun.xml.internal.ws.api.databinding
+com.sun.xml.internal.ws.api.fastinfoset
+com.sun.xml.internal.ws.api.ha
+com.sun.xml.internal.ws.api.handler
+com.sun.xml.internal.ws.api.message
+com.sun.xml.internal.ws.api.message.saaj
+com.sun.xml.internal.ws.api.message.stream
+com.sun.xml.internal.ws.api.model
+com.sun.xml.internal.ws.api.model.soap
+com.sun.xml.internal.ws.api.model.wsdl
+com.sun.xml.internal.ws.api.model.wsdl.editable
+com.sun.xml.internal.ws.api.pipe
+com.sun.xml.internal.ws.api.pipe.helper
+com.sun.xml.internal.ws.api.policy
+com.sun.xml.internal.ws.api.policy.subject
+com.sun.xml.internal.ws.api.server
+com.sun.xml.internal.ws.api.streaming
+com.sun.xml.internal.ws.api.wsdl.parser
+com.sun.xml.internal.ws.api.wsdl.writer
+com.sun.xml.internal.ws.assembler
+com.sun.xml.internal.ws.assembler.dev
+com.sun.xml.internal.ws.assembler.jaxws
+com.sun.xml.internal.ws.binding
+com.sun.xml.internal.ws.client
+com.sun.xml.internal.ws.client.dispatch
+com.sun.xml.internal.ws.client.sei
+com.sun.xml.internal.ws.commons.xmlutil
+com.sun.xml.internal.ws.config.management.policy
+com.sun.xml.internal.ws.config.metro.dev
+com.sun.xml.internal.ws.config.metro.util
+com.sun.xml.internal.ws.db
+com.sun.xml.internal.ws.db.glassfish
+com.sun.xml.internal.ws.developer
+com.sun.xml.internal.ws.dump
+com.sun.xml.internal.ws.encoding
+com.sun.xml.internal.ws.encoding.fastinfoset
+com.sun.xml.internal.ws.encoding.policy
+com.sun.xml.internal.ws.encoding.soap
+com.sun.xml.internal.ws.encoding.soap.streaming
+com.sun.xml.internal.ws.encoding.xml
+com.sun.xml.internal.ws.fault
+com.sun.xml.internal.ws.handler
+com.sun.xml.internal.ws.message
+com.sun.xml.internal.ws.message.jaxb
+com.sun.xml.internal.ws.message.saaj
+com.sun.xml.internal.ws.message.source
+com.sun.xml.internal.ws.message.stream
+com.sun.xml.internal.ws.model
+com.sun.xml.internal.ws.model.soap
+com.sun.xml.internal.ws.model.wsdl
+com.sun.xml.internal.ws.org.objectweb.asm
+com.sun.xml.internal.ws.policy
+com.sun.xml.internal.ws.policy.jaxws
+com.sun.xml.internal.ws.policy.jaxws.spi
+com.sun.xml.internal.ws.policy.privateutil
+com.sun.xml.internal.ws.policy.sourcemodel
+com.sun.xml.internal.ws.policy.sourcemodel.attach
+com.sun.xml.internal.ws.policy.sourcemodel.wspolicy
+com.sun.xml.internal.ws.policy.spi
+com.sun.xml.internal.ws.policy.subject
+com.sun.xml.internal.ws.protocol.soap
+com.sun.xml.internal.ws.protocol.xml
+com.sun.xml.internal.ws.resources
+com.sun.xml.internal.ws.runtime.config
+com.sun.xml.internal.ws.server
+com.sun.xml.internal.ws.server.provider
+com.sun.xml.internal.ws.server.sei
+com.sun.xml.internal.ws.spi
+com.sun.xml.internal.ws.spi.db
+com.sun.xml.internal.ws.streaming
+com.sun.xml.internal.ws.transport
+com.sun.xml.internal.ws.transport.http
+com.sun.xml.internal.ws.transport.http.client
+com.sun.xml.internal.ws.transport.http.server
+com.sun.xml.internal.ws.util
+com.sun.xml.internal.ws.util.exception
+com.sun.xml.internal.ws.util.pipe
+com.sun.xml.internal.ws.util.xml
+com.sun.xml.internal.ws.wsdl
+com.sun.xml.internal.ws.wsdl.parser
+com.sun.xml.internal.ws.wsdl.writer
+com.sun.xml.internal.ws.wsdl.writer.document
+com.sun.xml.internal.ws.wsdl.writer.document.http
+com.sun.xml.internal.ws.wsdl.writer.document.soap
+com.sun.xml.internal.ws.wsdl.writer.document.soap12
+com.sun.xml.internal.ws.wsdl.writer.document.xsd
+com.sun.xml.internal.xsom
+com.sun.xml.internal.xsom.impl
+com.sun.xml.internal.xsom.impl.parser
+com.sun.xml.internal.xsom.impl.parser.state
+com.sun.xml.internal.xsom.impl.scd
+com.sun.xml.internal.xsom.impl.util
+com.sun.xml.internal.xsom.parser
+com.sun.xml.internal.xsom.util
+com.sun.xml.internal.xsom.visitor
+java.awt.dnd.peer
+java.awt.peer
+javafx.embed.swt
+jdk
+jdk.internal.cmm
+jdk.internal.dynalink
+jdk.internal.dynalink.beans
+jdk.internal.dynalink.linker
+jdk.internal.dynalink.support
+jdk.internal.instrumentation
+jdk.internal.org.objectweb.asm
+jdk.internal.org.objectweb.asm.commons
+jdk.internal.org.objectweb.asm.signature
+jdk.internal.org.objectweb.asm.tree
+jdk.internal.org.objectweb.asm.tree.analysis
+jdk.internal.org.objectweb.asm.util
+jdk.internal.org.xml.sax
+jdk.internal.org.xml.sax.helpers
+jdk.internal.util.xml
+jdk.internal.util.xml.impl
+jdk.jfr.events
+jdk.management.resource.internal
+jdk.management.resource.internal.inst
+jdk.nashorn.internal
+jdk.nashorn.internal.codegen
+jdk.nashorn.internal.codegen.types
+jdk.nashorn.internal.ir
+jdk.nashorn.internal.ir.annotations
+jdk.nashorn.internal.ir.debug
+jdk.nashorn.internal.ir.visitor
+jdk.nashorn.internal.lookup
+jdk.nashorn.internal.objects
+jdk.nashorn.internal.objects.annotations
+jdk.nashorn.internal.parser
+jdk.nashorn.internal.runtime
+jdk.nashorn.internal.runtime.arrays
+jdk.nashorn.internal.runtime.events
+jdk.nashorn.internal.runtime.linker
+jdk.nashorn.internal.runtime.logging
+jdk.nashorn.internal.runtime.options
+jdk.nashorn.internal.runtime.regexp
+jdk.nashorn.internal.runtime.regexp.joni
+jdk.nashorn.internal.runtime.regexp.joni.ast
+jdk.nashorn.internal.runtime.regexp.joni.constants
+jdk.nashorn.internal.runtime.regexp.joni.encoding
+jdk.nashorn.internal.runtime.regexp.joni.exception
+jdk.nashorn.internal.scripts
+jdk.nashorn.tools
+oracle.jrockit.jfr
+oracle.jrockit.jfr.events
+oracle.jrockit.jfr.jdkevents
+oracle.jrockit.jfr.jdkevents.throwabletransform
+oracle.jrockit.jfr.openmbean
+oracle.jrockit.jfr.parser
+oracle.jrockit.jfr.settings
+oracle.jrockit.jfr.tools
+org.jcp.xml.dsig.internal
+org.jcp.xml.dsig.internal.dom
+org.omg.stub.javax.management.remote.rmi
+org.relaxng.datatype
+org.relaxng.datatype.helpers
+sun.applet
+sun.applet.resources
+sun.audio
+sun.awt
+sun.awt.X11
+sun.awt.datatransfer
+sun.awt.dnd
+sun.awt.event
+sun.awt.geom
+sun.awt.im
+sun.awt.image
+sun.awt.image.codec
+sun.awt.motif
+sun.awt.resources
+sun.awt.shell
+sun.awt.util
+sun.awt.windows
+sun.corba
+sun.dc
+sun.dc.path
+sun.dc.pr
+sun.font
+sun.instrument
+sun.invoke
+sun.invoke.anon
+sun.invoke.empty
+sun.invoke.util
+sun.io
+sun.java2d
+sun.java2d.cmm
+sun.java2d.cmm.kcms
+sun.java2d.cmm.lcms
+sun.java2d.d3d
+sun.java2d.jules
+sun.java2d.loops
+sun.java2d.opengl
+sun.java2d.pipe
+sun.java2d.pipe.hw
+sun.java2d.pisces
+sun.java2d.windows
+sun.java2d.x11
+sun.java2d.xr
+sun.jvmstat.monitor
+sun.jvmstat.monitor.event
+sun.jvmstat.monitor.remote
+sun.jvmstat.perfdata.monitor
+sun.jvmstat.perfdata.monitor.protocol.file
+sun.jvmstat.perfdata.monitor.protocol.local
+sun.jvmstat.perfdata.monitor.protocol.rmi
+sun.jvmstat.perfdata.monitor.v1_0
+sun.jvmstat.perfdata.monitor.v2_0
+sun.launcher
+sun.launcher.resources
+sun.lwawt
+sun.lwawt.macosx
+sun.management
+sun.management.counter
+sun.management.counter.perf
+sun.management.jdp
+sun.management.jmxremote
+sun.management.resources
+sun.management.snmp
+sun.management.snmp.jvminstr
+sun.management.snmp.jvmmib
+sun.management.snmp.util
+sun.misc
+sun.misc.resources
+sun.net
+sun.net.dns
+sun.net.ftp
+sun.net.ftp.impl
+sun.net.httpserver
+sun.net.idn
+sun.net.sdp
+sun.net.smtp
+sun.net.spi
+sun.net.spi.nameservice
+sun.net.spi.nameservice.dns
+sun.net.util
+sun.net.www
+sun.net.www.content.audio
+sun.net.www.content.image
+sun.net.www.content.text
+sun.net.www.http
+sun.net.www.protocol.file
+sun.net.www.protocol.ftp
+sun.net.www.protocol.http
+sun.net.www.protocol.http.logging
+sun.net.www.protocol.http.ntlm
+sun.net.www.protocol.http.spnego
+sun.net.www.protocol.https
+sun.net.www.protocol.jar
+sun.net.www.protocol.mailto
+sun.net.www.protocol.netdoc
+sun.nio
+sun.nio.ch
+sun.nio.ch.sctp
+sun.nio.cs
+sun.nio.cs.ext
+sun.nio.fs
+sun.print
+sun.print.resources
+sun.reflect
+sun.reflect.annotation
+sun.reflect.generics.factory
+sun.reflect.generics.parser
+sun.reflect.generics.reflectiveObjects
+sun.reflect.generics.repository
+sun.reflect.generics.scope
+sun.reflect.generics.tree
+sun.reflect.generics.visitor
+sun.reflect.misc
+sun.rmi.log
+sun.rmi.registry
+sun.rmi.rmic
+sun.rmi.rmic.iiop
+sun.rmi.rmic.newrmic
+sun.rmi.rmic.newrmic.jrmp
+sun.rmi.runtime
+sun.rmi.server
+sun.rmi.transport
+sun.rmi.transport.proxy
+sun.rmi.transport.tcp
+sun.security.acl
+sun.security.action
+sun.security.ec
+sun.security.internal.interfaces
+sun.security.internal.spec
+sun.security.jca
+sun.security.jgss
+sun.security.jgss.krb5
+sun.security.jgss.spi
+sun.security.jgss.spnego
+sun.security.jgss.wrapper
+sun.security.krb5
+sun.security.krb5.internal
+sun.security.krb5.internal.ccache
+sun.security.krb5.internal.crypto
+sun.security.krb5.internal.crypto.dk
+sun.security.krb5.internal.ktab
+sun.security.krb5.internal.rcache
+sun.security.krb5.internal.tools
+sun.security.krb5.internal.util
+sun.security.mscapi
+sun.security.pkcs
+sun.security.pkcs10
+sun.security.pkcs11
+sun.security.pkcs11.wrapper
+sun.security.pkcs12
+sun.security.provider
+sun.security.provider.certpath
+sun.security.provider.certpath.ldap
+sun.security.provider.certpath.ssl
+sun.security.rsa
+sun.security.smartcardio
+sun.security.ssl
+sun.security.ssl.krb5
+sun.security.timestamp
+sun.security.tools
+sun.security.tools.jarsigner
+sun.security.tools.keytool
+sun.security.tools.policytool
+sun.security.util
+sun.security.validator
+sun.security.x509
+sun.swing
+sun.swing.icon
+sun.swing.plaf
+sun.swing.plaf.synth
+sun.swing.plaf.windows
+sun.swing.table
+sun.swing.text
+sun.swing.text.html
+sun.text
+sun.text.bidi
+sun.text.normalizer
+sun.text.resources
+sun.text.resources.en
+sun.tools.asm
+sun.tools.attach
+sun.tools.jar
+sun.tools.jar.resources
+sun.tools.java
+sun.tools.javac
+sun.tools.jcmd
+sun.tools.jconsole
+sun.tools.jconsole.inspector
+sun.tools.jinfo
+sun.tools.jmap
+sun.tools.jps
+sun.tools.jstack
+sun.tools.jstat
+sun.tools.jstatd
+sun.tools.native2ascii
+sun.tools.native2ascii.resources
+sun.tools.serialver
+sun.tools.tree
+sun.tools.util
+sun.tracing
+sun.tracing.dtrace
+sun.usagetracker
+sun.util
+sun.util.calendar
+sun.util.cldr
+sun.util.locale
+sun.util.locale.provider
+sun.util.logging
+sun.util.logging.resources
+sun.util.resources
+sun.util.resources.en
+sun.util.spi
+sun.util.xml
--- a/langtools/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/resources/jdkinternals.properties Thu Jul 14 15:47:47 2016 +0000
+++ b/langtools/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/resources/jdkinternals.properties Thu Jul 14 16:21:39 2016 +0000
@@ -28,7 +28,7 @@
sun.security.x509.X500Name=Use javax.security.auth.x500.X500Principal @since 1.4
sun.tools.jar=Use java.util.jar or jar tool @since 1.2
# Internal APIs removed in JDK 9
-com.apple.eawt=Use java.awt.desktop and JEP 272 @since 9
+com.apple.eawt=Use java.awt.Desktop and JEP 272 @since 9
com.apple.concurrent=Removed. See https://bugs.openjdk.java.net/browse/JDK-8148187
com.sun.image.codec.jpeg=Use javax.imageio @since 1.4
sun.awt.image.codec=Use javax.imageio @since 1.4
--- a/langtools/test/ProblemList.txt Thu Jul 14 15:47:47 2016 +0000
+++ b/langtools/test/ProblemList.txt Thu Jul 14 16:21:39 2016 +0000
@@ -27,9 +27,6 @@
#
# javadoc
-com/sun/javadoc/testTypeAnnotations/TestTypeAnnotations.java 8006735 generic-all output type annotations in javadoc
-com/sun/javadoc/typeAnnotations/smoke/TestSmoke.java 8013406 generic-all Test cases fail in javadoc test TestSmoke.java
-
jdk/javadoc/tool/6176978/T6176978.java 8152049 generic-all no longer applicable, should delete
jdk/javadoc/tool/InlineTagsWithBraces.java 8152050 generic-all API, re-evaluate @bold, @maybe causes doclint to throw up.
jdk/javadoc/tool/LangVers.java 8152051 generic-all API, re-evaluate, unsure of this test.
--- a/langtools/test/com/sun/javadoc/testTypeAnnotations/TestTypeAnnotations.java Thu Jul 14 15:47:47 2016 +0000
+++ b/langtools/test/com/sun/javadoc/testTypeAnnotations/TestTypeAnnotations.java Thu Jul 14 16:21:39 2016 +0000
@@ -28,7 +28,6 @@
* @author Bhavesh Patel
* @library ../lib
* @modules jdk.javadoc
- * @ignore 8006735 output type annotations in javadoc
* @build JavadocTester
* @run main TestTypeAnnotations
*/
--- a/langtools/test/com/sun/javadoc/typeAnnotations/smoke/TestSmoke.java Thu Jul 14 15:47:47 2016 +0000
+++ b/langtools/test/com/sun/javadoc/typeAnnotations/smoke/TestSmoke.java Thu Jul 14 16:21:39 2016 +0000
@@ -29,7 +29,6 @@
* @author Mahmood Ali <mali>
* @library ../../lib
* @modules jdk.javadoc
- * @ignore
* @build JavadocTester
* @run main TestSmoke
*/
--- a/langtools/test/jdk/javadoc/doclet/testModules/TestModules.java Thu Jul 14 15:47:47 2016 +0000
+++ b/langtools/test/jdk/javadoc/doclet/testModules/TestModules.java Thu Jul 14 16:21:39 2016 +0000
@@ -23,7 +23,7 @@
/*
* @test
- * @bug 8154119 8154262 8156077 8157987
+ * @bug 8154119 8154262 8156077 8157987 8154261
* @summary Test modules support in javadoc.
* @author bpatel
* @library ../lib
@@ -110,6 +110,17 @@
testModuleTags();
}
+ @Test
+ void test7() {
+ javadoc("-d", "out-moduleSummary", "-use",
+ "-modulesourcepath", testSrc,
+ "-addmods", "module1,module2",
+ "testpkgmdl1", "testpkgmdl2", "testpkg2mdl2");
+ checkExit(Exit.OK);
+ testModuleSummary();
+ testNegatedModuleSummary();
+ }
+
@Test
void test8() {
javadoc("-d", "out-html5-nomodule", "-html5", "-use",
@@ -139,12 +150,16 @@
"<div class=\"contentContainer\">\n"
+ "<ul class=\"blockList\">\n"
+ "<li class=\"blockList\">\n"
- + "<table class=\"overviewSummary\" summary=\"Package Summary table, listing packages, and an explanation\">");
+ + "<ul class=\"blockList\">\n"
+ + "<li class=\"blockList\">\n"
+ + "<!-- ============ MODULES SUMMARY =========== -->");
checkOutput("module2-summary.html", found,
"<div class=\"contentContainer\">\n"
+ "<ul class=\"blockList\">\n"
+ "<li class=\"blockList\">\n"
- + "<table class=\"overviewSummary\" summary=\"Package Summary table, listing packages, and an explanation\">");
+ + "<ul class=\"blockList\">\n"
+ + "<li class=\"blockList\">\n"
+ + "<!-- ============ MODULES SUMMARY =========== -->");
}
void testHtml5Description(boolean found) {
@@ -171,12 +186,16 @@
"<div class=\"contentContainer\">\n"
+ "<ul class=\"blockList\">\n"
+ "<li class=\"blockList\">\n"
- + "<table class=\"overviewSummary\">");
+ + "<ul class=\"blockList\">\n"
+ + "<li class=\"blockList\">\n"
+ + "<!-- ============ MODULES SUMMARY =========== -->");
checkOutput("module2-summary.html", found,
"<div class=\"contentContainer\">\n"
+ "<ul class=\"blockList\">\n"
+ "<li class=\"blockList\">\n"
- + "<table class=\"overviewSummary\">");
+ + "<ul class=\"blockList\">\n"
+ + "<li class=\"blockList\">\n"
+ + "<!-- ============ MODULES SUMMARY =========== -->");
}
void testModuleLink() {
@@ -313,4 +332,114 @@
+ "<th class=\"colLast\" scope=\"col\">Description</th>\n"
+ "</tr>");
}
+
+ void testModuleSummary() {
+ checkOutput("module1-summary.html", true,
+ "<ul class=\"subNavList\">\n"
+ + "<li>Module: </li>\n"
+ + "<li><a href=\"#module.description\">Description</a> | <a "
+ + "href=\"#modules.summary\">Modules</a> | <a href=\"#packages.summary\">"
+ + "Packages</a> | Services</li>\n"
+ + "</ul>");
+ checkOutput("module1-summary.html", true,
+ "<!-- ============ MODULES SUMMARY =========== -->\n"
+ + "<a name=\"modules.summary\">\n"
+ + "<!-- -->\n"
+ + "</a>");
+ checkOutput("module1-summary.html", true,
+ "<tr class=\"altColor\">\n"
+ + "<td class=\"colFirst\"><a href=\"testpkgmdl1/package-summary.html\">testpkgmdl1</a></td>\n"
+ + "<td class=\"colSecond\">All Modules</td>\n"
+ + "<td class=\"colLast\"> </td>\n"
+ + "</tr>");
+ checkOutput("module1-summary.html", true,
+ "<!-- ============ PACKAGES SUMMARY =========== -->\n"
+ + "<a name=\"packages.summary\">\n"
+ + "<!-- -->\n"
+ + "</a>");
+ checkOutput("module1-summary.html", true,
+ "<tr class=\"rowColor\">\n"
+ + "<td class=\"colFirst\"><a href=\"module2-summary.html\">module2</a></td>\n"
+ + "<td class=\"colLast\">\n"
+ + "<div class=\"block\">This is a test description for the module2 module.</div>\n"
+ + "</td>\n"
+ + "</tr>");
+ checkOutput("module2-summary.html", true,
+ "<li><a href=\"#module.description\">Description</a> | <a "
+ + "href=\"#modules.summary\">Modules</a> | <a href=\"#packages.summary\">"
+ + "Packages</a> | <a href=\"#services.summary\">Services</a></li>");
+ checkOutput("module2-summary.html", true,
+ "<!-- ============ MODULES SUMMARY =========== -->\n"
+ + "<a name=\"modules.summary\">\n"
+ + "<!-- -->\n"
+ + "</a>");
+ checkOutput("module2-summary.html", true,
+ "<tr class=\"rowColor\">\n"
+ + "<td class=\"colFirst\">testpkg2mdl2</td>\n"
+ + "<td class=\"colSecond\">module1</td>\n"
+ + "<td class=\"colLast\"> </td>\n"
+ + "</tr>");
+ checkOutput("module2-summary.html", true,
+ "<!-- ============ PACKAGES SUMMARY =========== -->\n"
+ + "<a name=\"packages.summary\">\n"
+ + "<!-- -->\n"
+ + "</a>");
+ checkOutput("module2-summary.html", true,
+ "<tr class=\"altColor\">\n"
+ + "<td class=\"colFirst\"><a href=\"java.base-summary.html\">java.base</a></td>\n"
+ + "<td class=\"colLast\"> </td>\n"
+ + "</tr>");
+ checkOutput("module2-summary.html", true,
+ "<!-- ============ SERVICES SUMMARY =========== -->\n"
+ + "<a name=\"services.summary\">\n"
+ + "<!-- -->\n"
+ + "</a>");
+ checkOutput("module2-summary.html", true,
+ "<tr class=\"altColor\">\n"
+ + "<td class=\"colFirst\"><a href=\"testpkgmdl2/TestClassInModule2.html\" "
+ + "title=\"class in testpkgmdl2\">TestClassInModule2</a></td>\n"
+ + "<td class=\"colLast\"> </td>\n"
+ + "</tr>");
+ checkOutput("module2-summary.html", true,
+ "<tr class=\"altColor\">\n"
+ + "<td class=\"colFirst\">testpkg2mdl2.TestInterfaceInModule2<br>(<span "
+ + "class=\"implementationLabel\">Implementation:</span> <a "
+ + "href=\"testpkgmdl2/TestClassInModule2.html\" title=\"class in testpkgmdl2\">"
+ + "TestClassInModule2</a>)</td>\n"
+ + "<td class=\"colLast\"> </td>\n"
+ + "</tr");
+ checkOutput("module2-summary.html", true,
+ "<caption><span>Exported Packages</span><span class=\"tabEnd\"> </span></caption>\n"
+ + "<tr>\n"
+ + "<th class=\"colFirst\" scope=\"col\">Package</th>\n"
+ + "<th scope=\"col\">Module</th>\n"
+ + "<th class=\"colLast\" scope=\"col\">Description</th>\n"
+ + "</tr>");
+ checkOutput("module2-summary.html", true,
+ "<caption><span>Requires</span><span class=\"tabEnd\"> </span></caption>\n"
+ + "<tr>\n"
+ + "<th class=\"colFirst\" scope=\"col\">Module</th>\n"
+ + "<th class=\"colLast\" scope=\"col\">Description</th>\n"
+ + "</tr>");
+ checkOutput("module2-summary.html", true,
+ "<caption><span>Uses</span><span class=\"tabEnd\"> </span></caption>\n"
+ + "<tr>\n"
+ + "<th class=\"colFirst\" scope=\"col\">Type</th>\n"
+ + "<th class=\"colLast\" scope=\"col\">Description</th>\n"
+ + "</tr>");
+ checkOutput("module2-summary.html", true,
+ "<caption><span>Provides</span><span class=\"tabEnd\"> </span></caption>\n"
+ + "<tr>\n"
+ + "<th class=\"colFirst\" scope=\"col\">Type</th>\n"
+ + "<th class=\"colLast\" scope=\"col\">Description</th>\n"
+ + "</tr>");
+ }
+
+ void testNegatedModuleSummary() {
+ checkOutput("module1-summary.html", false,
+ "<!-- ============ SERVICES SUMMARY =========== -->\n"
+ + "<a name=\"services.summary\">\n"
+ + "<!-- -->\n"
+ + "</a>");
+ }
}
--- a/langtools/test/jdk/javadoc/doclet/testModules/module2/module-info.java Thu Jul 14 15:47:47 2016 +0000
+++ b/langtools/test/jdk/javadoc/doclet/testModules/module2/module-info.java Thu Jul 14 16:21:39 2016 +0000
@@ -28,4 +28,10 @@
*/
module module2 {
exports testpkgmdl2;
+
+ exports testpkg2mdl2 to module1;
+
+ uses testpkgmdl2.TestClassInModule2;
+
+ provides testpkg2mdl2.TestInterfaceInModule2 with testpkgmdl2.TestClassInModule2;
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/jdk/javadoc/doclet/testModules/module2/testpkg2mdl2/TestInterfaceInModule2.java Thu Jul 14 16:21:39 2016 +0000
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package testpkg2mdl2;
+
+public interface TestInterfaceInModule2 {
+ void testMethod();
+}
--- a/langtools/test/jdk/javadoc/doclet/testModules/module2/testpkgmdl2/TestClassInModule2.java Thu Jul 14 15:47:47 2016 +0000
+++ b/langtools/test/jdk/javadoc/doclet/testModules/module2/testpkgmdl2/TestClassInModule2.java Thu Jul 14 16:21:39 2016 +0000
@@ -24,5 +24,8 @@
*/
package testpkgmdl2;
-public class TestClassInModule2 {
+import testpkg2mdl2.TestInterfaceInModule2;
+
+public class TestClassInModule2 implements TestInterfaceInModule2 {
+ void testMethod() {}
}
--- a/langtools/test/jdk/javadoc/doclet/testStylesheet/TestStylesheet.java Thu Jul 14 15:47:47 2016 +0000
+++ b/langtools/test/jdk/javadoc/doclet/testStylesheet/TestStylesheet.java Thu Jul 14 16:21:39 2016 +0000
@@ -23,7 +23,7 @@
/*
* @test
- * @bug 4494033 7028815 7052425 8007338 8023608 8008164 8016549 8072461
+ * @bug 4494033 7028815 7052425 8007338 8023608 8008164 8016549 8072461 8154261
* @summary Run tests on doclet stylesheet.
* @author jamieh
* @library ../lib
@@ -81,7 +81,8 @@
+ " list-style-type:disc;\n"
+ "}",
".overviewSummary caption, .memberSummary caption, .typeSummary caption,\n"
- + ".useSummary caption, .constantsSummary caption, .deprecatedSummary caption {\n"
+ + ".useSummary caption, .constantsSummary caption, .deprecatedSummary caption,\n"
+ + ".requiresSummary caption, .packagesSummary caption, .providesSummary caption, .usesSummary caption {\n"
+ " position:relative;\n"
+ " text-align:left;\n"
+ " background-repeat:no-repeat;\n"
@@ -96,7 +97,9 @@
+ " white-space:pre;\n"
+ "}",
".overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,\n"
- + ".useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {\n"
+ + ".useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span,\n"
+ + ".requiresSummary caption span, .packagesSummary caption span, .providesSummary caption span,\n"
+ + ".usesSummary caption span {\n"
+ " white-space:nowrap;\n"
+ " padding-top:5px;\n"
+ " padding-left:12px;\n"
@@ -132,6 +135,9 @@
+ "}",
// Test the formatting styles for proper content display in use and constant values pages.
".overviewSummary td.colFirst, .overviewSummary th.colFirst,\n"
+ + ".requiresSummary td.colFirst, .requiresSummary th.colFirst,\n"
+ + ".packagesSummary td.colFirst, .packagesSummary td.colSecond, .packagesSummary th.colFirst, .packagesSummary th,\n"
+ + ".usesSummary td.colFirst, .usesSummary th.colFirst,\n"
+ ".useSummary td.colFirst, .useSummary th.colFirst,\n"
+ ".overviewSummary td.colOne, .overviewSummary th.colOne,\n"
+ ".memberSummary td.colFirst, .memberSummary th.colFirst,\n"
@@ -141,7 +147,8 @@
+ " vertical-align:top;\n"
+ "}",
".overviewSummary td, .memberSummary td, .typeSummary td,\n"
- + ".useSummary td, .constantsSummary td, .deprecatedSummary td {\n"
+ + ".useSummary td, .constantsSummary td, .deprecatedSummary td,\n"
+ + ".requiresSummary td, .packagesSummary td, .providesSummary td, .usesSummary td {\n"
+ " text-align:left;\n"
+ " padding:0px 0px 12px 10px;\n"
+ "}",
--- a/langtools/test/tools/jdeps/jdkinternals/RemovedJDKInternals.java Thu Jul 14 15:47:47 2016 +0000
+++ b/langtools/test/tools/jdeps/jdkinternals/RemovedJDKInternals.java Thu Jul 14 16:21:39 2016 +0000
@@ -71,7 +71,7 @@
assertTrue(CompilerUtils.compile(codecSrc, codecDest));
// patch jdk.unsupported and set -cp to codec types
- assertTrue(CompilerUtils.compile(Paths.get(TEST_SRC, "src"),
+ assertTrue(CompilerUtils.compile(Paths.get(TEST_SRC, "src", "p"),
CLASSES_DIR,
"-Xpatch:jdk.unsupported=" + patchDir,
"-cp", codecDest.toString()));
--- a/langtools/test/tools/jdeps/jdkinternals/ShowReplacement.java Thu Jul 14 15:47:47 2016 +0000
+++ b/langtools/test/tools/jdeps/jdkinternals/ShowReplacement.java Thu Jul 14 16:21:39 2016 +0000
@@ -59,14 +59,17 @@
public void compileAll() throws Exception {
CompilerUtils.cleanDir(CLASSES_DIR);
- assertTrue(CompilerUtils.compile(Paths.get(TEST_SRC, "p"),
+ Path tmp = Paths.get("tmp");
+ assertTrue(CompilerUtils.compile(Paths.get(TEST_SRC, "src", "apple"), tmp));
+ assertTrue(CompilerUtils.compile(Paths.get(TEST_SRC, "src", "q"),
CLASSES_DIR,
+ "-cp", tmp.toString(),
"-XaddExports:java.base/sun.security.util=ALL-UNNAMED"));
}
@Test
public void withReplacement() {
- Path file = Paths.get("p", "WithRepl.class");
+ Path file = Paths.get("q", "WithRepl.class");
String[] output = JdepsUtil.jdeps("-jdkinternals", CLASSES_DIR.resolve(file).toString());
int i = 0;
while (!output[i].contains("Suggested Replacement")) {
@@ -90,9 +93,29 @@
}
}
+ /*
+ * A JDK internal class has been removed while its package still exists.
+ */
@Test
public void noReplacement() {
- Path file = Paths.get("p", "NoRepl.class");
+ Path file = Paths.get("q", "NoRepl.class");
+ String[] output = JdepsUtil.jdeps("-jdkinternals", CLASSES_DIR.resolve(file).toString());
+ int i = 0;
+ // expect no replacement
+ while (i < output.length && !output[i].contains("Suggested Replacement")) {
+ i++;
+ }
+
+ // no replacement
+ assertEquals(output.length-i, 0);
+ }
+
+ /*
+ * A JDK internal package has been removed.
+ */
+ @Test
+ public void removedPackage() {
+ Path file = Paths.get("q", "RemovedPackage.class");
String[] output = JdepsUtil.jdeps("-jdkinternals", CLASSES_DIR.resolve(file).toString());
int i = 0;
// expect no replacement
--- a/langtools/test/tools/jdeps/jdkinternals/p/NoRepl.java Thu Jul 14 15:47:47 2016 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package p;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import sun.security.util.DerEncoder;
-
-public class NoRepl implements DerEncoder {
- public void derEncode(OutputStream out) throws IOException {
- throw new IOException();
- }
-}
--- a/langtools/test/tools/jdeps/jdkinternals/p/WithRepl.java Thu Jul 14 15:47:47 2016 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package p;
-
-import sun.security.util.HostnameChecker;
-
-public class WithRepl {
- public static void main(String[] argv) throws Exception {
- HostnameChecker hc = HostnameChecker.getInstance(HostnameChecker.TYPE_LDAP);
- }
-}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/jdeps/jdkinternals/src/apple/applescript/AppleScriptEngine.java Thu Jul 14 16:21:39 2016 +0000
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+package apple.applescript;
+
+import javax.script.ScriptEngine;
+
+public interface AppleScriptEngine extends ScriptEngine {
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/jdeps/jdkinternals/src/q/NoRepl.java Thu Jul 14 16:21:39 2016 +0000
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package q;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import sun.security.util.DerEncoder;
+
+public class NoRepl implements DerEncoder {
+ public void derEncode(OutputStream out) throws IOException {
+ throw new IOException();
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/jdeps/jdkinternals/src/q/RemovedPackage.java Thu Jul 14 16:21:39 2016 +0000
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package q;
+
+import apple.applescript.AppleScriptEngine;
+
+public class RemovedPackage {
+ AppleScriptEngine scriptEngine;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/jdeps/jdkinternals/src/q/WithRepl.java Thu Jul 14 16:21:39 2016 +0000
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package q;
+
+import sun.security.util.HostnameChecker;
+
+public class WithRepl {
+ public static void main(String[] argv) throws Exception {
+ HostnameChecker hc = HostnameChecker.getInstance(HostnameChecker.TYPE_LDAP);
+ }
+}