# HG changeset patch # User bpatel # Date 1526587193 25200 # Node ID cc705c956798025da12fb27cc79d629cfa826588 # Parent 1d683e243d8d8c595f61200f161b9bffe2a41d6a 8196201: Generate pages to list all classes and all packages in javadoc output Reviewed-by: jjg diff -r 1d683e243d8d -r cc705c956798 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractIndexWriter.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractIndexWriter.java Thu May 17 08:41:01 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractIndexWriter.java Thu May 17 12:59:53 2018 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2018, 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 @@ -437,8 +437,20 @@ createSearchIndexFile(DocPaths.MODULE_SEARCH_INDEX_JSON, DocPaths.MODULE_SEARCH_INDEX_ZIP, DocPaths.MODULE_SEARCH_INDEX_JS, configuration.moduleSearchIndex, "moduleSearchIndex"); } + if (!configuration.packages.isEmpty()) { + SearchIndexItem si = new SearchIndexItem(); + si.setCategory(resources.getText("doclet.Packages")); + si.setLabel(configuration.getText("doclet.All_Packages")); + si.setUrl(DocPaths.ALLPACKAGES_INDEX.getPath()); + configuration.packageSearchIndex.add(si); + } createSearchIndexFile(DocPaths.PACKAGE_SEARCH_INDEX_JSON, DocPaths.PACKAGE_SEARCH_INDEX_ZIP, DocPaths.PACKAGE_SEARCH_INDEX_JS, configuration.packageSearchIndex, "packageSearchIndex"); + SearchIndexItem si = new SearchIndexItem(); + si.setCategory(resources.getText("doclet.Types")); + si.setLabel(configuration.getText("doclet.All_Classes")); + si.setUrl(DocPaths.ALLCLASSES_INDEX.getPath()); + configuration.typeSearchIndex.add(si); createSearchIndexFile(DocPaths.TYPE_SEARCH_INDEX_JSON, DocPaths.TYPE_SEARCH_INDEX_ZIP, DocPaths.TYPE_SEARCH_INDEX_JS, configuration.typeSearchIndex, "typeSearchIndex"); createSearchIndexFile(DocPaths.MEMBER_SEARCH_INDEX_JSON, DocPaths.MEMBER_SEARCH_INDEX_ZIP, diff -r 1d683e243d8d -r cc705c956798 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllClassesIndexWriter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllClassesIndexWriter.java Thu May 17 12:59:53 2018 -0700 @@ -0,0 +1,207 @@ +/* + * Copyright (c) 2018, 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 jdk.javadoc.internal.doclets.formats.html; + +import java.util.ArrayList; +import java.util.List; + +import javax.lang.model.element.Element; +import javax.lang.model.element.TypeElement; + +import com.sun.source.doctree.DocTree; +import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder; +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.Navigation; +import jdk.javadoc.internal.doclets.formats.html.markup.Navigation.PageMode; +import jdk.javadoc.internal.doclets.formats.html.markup.Table; +import jdk.javadoc.internal.doclets.formats.html.markup.TableHeader; +import jdk.javadoc.internal.doclets.toolkit.Content; +import jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException; +import jdk.javadoc.internal.doclets.toolkit.util.DocPath; +import jdk.javadoc.internal.doclets.toolkit.util.DocPaths; +import jdk.javadoc.internal.doclets.toolkit.util.IndexBuilder; + +/** + * Generate the file with list of all the classes in this run. + */ +public class AllClassesIndexWriter extends HtmlDocletWriter { + + /** + * Index of all the classes. + */ + protected IndexBuilder indexbuilder; + + /** + * The HTML tree for main tag. + */ + protected HtmlTree mainTree = HtmlTree.MAIN(); + + private final Navigation navBar; + + /** + * Construct AllClassesFrameWriter object. Also initializes the indexbuilder variable in this + * class. + * + * @param configuration The current configuration + * @param filename Path to the file which is getting generated. + * @param indexbuilder Unicode based Index from {@link IndexBuilder} + */ + public AllClassesIndexWriter(HtmlConfiguration configuration, + DocPath filename, IndexBuilder indexbuilder) { + super(configuration, filename); + this.indexbuilder = indexbuilder; + this.navBar = new Navigation(null, configuration, fixedNavDiv, PageMode.ALLCLASSES, path); + } + + /** + * Create AllClassesIndexWriter object. + * + * @param configuration The current configuration + * @param indexBuilder IndexBuilder object for all classes index. + * @throws DocFileIOException + */ + public static void generate(HtmlConfiguration configuration, + IndexBuilder indexBuilder) throws DocFileIOException { + generate(configuration, indexBuilder, DocPaths.ALLCLASSES_INDEX); + } + + private static void generate(HtmlConfiguration configuration, IndexBuilder indexBuilder, + DocPath fileName) throws DocFileIOException { + AllClassesIndexWriter allClassGen = new AllClassesIndexWriter(configuration, + fileName, indexBuilder); + allClassGen.buildAllClassesFile(); + } + + /** + * Print all the classes in the file. + */ + protected void buildAllClassesFile() throws DocFileIOException { + String label = configuration.getText("doclet.All_Classes"); + HtmlTree bodyTree = getBody(true, getWindowTitle(label)); + HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER)) + ? HtmlTree.HEADER() + : bodyTree; + addTop(htmlTree); + navBar.setUserHeader(getUserHeaderFooter(true)); + htmlTree.addContent(navBar.getContent(true)); + if (configuration.allowTag(HtmlTag.HEADER)) { + bodyTree.addContent(htmlTree); + } + Content allClassesContent = new ContentBuilder(); + addContents(allClassesContent); + if (configuration.allowTag(HtmlTag.MAIN)) { + mainTree.addContent(allClassesContent); + bodyTree.addContent(mainTree); + } else { + bodyTree.addContent(allClassesContent); + } + Content tree = (configuration.allowTag(HtmlTag.FOOTER)) + ? HtmlTree.FOOTER() + : bodyTree; + navBar.setUserFooter(getUserHeaderFooter(false)); + tree.addContent(navBar.getContent(false)); + addBottom(tree); + if (configuration.allowTag(HtmlTag.FOOTER)) { + bodyTree.addContent(tree); + } + printHtmlDocument(null, true, bodyTree); + } + + /** + * Add all types to the content tree. + * + * @param content HtmlTree content to which the links will be added + */ + protected void addContents(Content content) { + Table table = new Table(configuration.htmlVersion, HtmlStyle.typeSummary) + .setSummary(resources.classTableSummary) + .setHeader(new TableHeader(contents.classLabel, contents.descriptionLabel)) + .setRowScopeColumn(1) + .setColumnStyles(HtmlStyle.colFirst, HtmlStyle.colLast) + .setDefaultTab(resources.getText("doclet.All_Classes")) + .addTab(resources.interfaceSummary, utils::isInterface) + .addTab(resources.classSummary, e -> utils.isOrdinaryClass((TypeElement)e)) + .addTab(resources.enumSummary, utils::isEnum) + .addTab(resources.exceptionSummary, e -> utils.isException((TypeElement)e)) + .addTab(resources.errorSummary, e -> utils.isError((TypeElement)e)) + .addTab(resources.annotationTypeSummary, utils::isAnnotationType) + .setTabScript(i -> "show(" + i + ");") + .setUseTBody(false) + .setPutIdFirst(true); + for (Character unicode : indexbuilder.index()) { + for (Element element : indexbuilder.getMemberList(unicode)) { + TypeElement typeElement = (TypeElement) element; + if (!utils.isCoreClass(typeElement)) { + continue; + } + addTableRow(table, typeElement); + } + } + Content titleContent = contents.allClassesLabel; + Content pHeading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, true, + HtmlStyle.title, titleContent); + Content headerDiv = HtmlTree.DIV(HtmlStyle.header, pHeading); + content.addContent(headerDiv); + if (!table.isEmpty()) { + HtmlTree li = HtmlTree.LI(HtmlStyle.blockList, table.toContent()); + HtmlTree ul = HtmlTree.UL(HtmlStyle.blockList, li); + HtmlTree div = new HtmlTree(HtmlTag.DIV); + div.setStyle(HtmlStyle.allClassesContainer); + div.addContent(ul); + content.addContent(div); + if (table.needsScript()) { + getMainBodyScript().append(table.getScript()); + } + } + } + + /** + * Add table row. + * + * @param table the table to which the row will be added + * @param klass the type to be added to the table + */ + protected void addTableRow(Table table, TypeElement klass) { + List rowContents = new ArrayList<>(); + Content classLink = getLink(new LinkInfoImpl( + configuration, LinkInfoImpl.Kind.INDEX, klass)); + ContentBuilder description = new ContentBuilder(); + if (utils.isDeprecated(klass)) { + description.addContent(getDeprecatedPhrase(klass)); + List tags = utils.getDeprecatedTrees(klass); + if (!tags.isEmpty()) { + addSummaryDeprecatedComment(klass, tags.get(0), description); + } + } else { + addSummaryComment(klass, description); + } + rowContents.add(classLink); + rowContents.add(description); + table.addRow(klass, rowContents); + } +} diff -r 1d683e243d8d -r cc705c956798 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllPackagesIndexWriter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllPackagesIndexWriter.java Thu May 17 12:59:53 2018 -0700 @@ -0,0 +1,146 @@ +/* + * Copyright (c) 2018, 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 jdk.javadoc.internal.doclets.formats.html; + +import javax.lang.model.element.PackageElement; + +import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder; +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.Navigation; +import jdk.javadoc.internal.doclets.formats.html.markup.Navigation.PageMode; +import jdk.javadoc.internal.doclets.formats.html.markup.StringContent; +import jdk.javadoc.internal.doclets.formats.html.markup.Table; +import jdk.javadoc.internal.doclets.formats.html.markup.TableHeader; +import jdk.javadoc.internal.doclets.toolkit.Content; +import jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException; +import jdk.javadoc.internal.doclets.toolkit.util.DocPath; +import jdk.javadoc.internal.doclets.toolkit.util.DocPaths; + +/** + * Generate the file with list of all the packages in this run. + */ +public class AllPackagesIndexWriter extends HtmlDocletWriter { + + /** + * The HTML tree for main tag. + */ + protected HtmlTree mainTree = HtmlTree.MAIN(); + + private final Navigation navBar; + + /** + * Construct AllPackagesIndexWriter object. + * + * @param configuration The current configuration + * @param filename Path to the file which is getting generated. + */ + public AllPackagesIndexWriter(HtmlConfiguration configuration, DocPath filename) { + super(configuration, filename); + this.navBar = new Navigation(null, configuration, fixedNavDiv, PageMode.ALLPACKAGES, path); + } + + /** + * Create AllPackagesIndexWriter object. + * + * @param configuration The current configuration + * @throws DocFileIOException + */ + public static void generate(HtmlConfiguration configuration) throws DocFileIOException { + generate(configuration, DocPaths.ALLPACKAGES_INDEX); + } + + private static void generate(HtmlConfiguration configuration, DocPath fileName) throws DocFileIOException { + AllPackagesIndexWriter allPkgGen = new AllPackagesIndexWriter(configuration, fileName); + allPkgGen.buildAllPackagesFile(); + } + + /** + * Print all the packages in the file. + */ + protected void buildAllPackagesFile() throws DocFileIOException { + String label = configuration.getText("doclet.All_Packages"); + HtmlTree bodyTree = getBody(true, getWindowTitle(label)); + HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER)) + ? HtmlTree.HEADER() + : bodyTree; + addTop(htmlTree); + navBar.setUserHeader(getUserHeaderFooter(true)); + htmlTree.addContent(navBar.getContent(true)); + if (configuration.allowTag(HtmlTag.HEADER)) { + bodyTree.addContent(htmlTree); + } + HtmlTree div = new HtmlTree(HtmlTag.DIV); + div.setStyle(HtmlStyle.allPackagesContainer); + addPackages(div); + Content titleContent = contents.allPackagesLabel; + Content pHeading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, true, + HtmlStyle.title, titleContent); + Content headerDiv = HtmlTree.DIV(HtmlStyle.header, pHeading); + if (configuration.allowTag(HtmlTag.MAIN)) { + mainTree.addContent(headerDiv); + mainTree.addContent(div); + bodyTree.addContent(mainTree); + } else { + bodyTree.addContent(headerDiv); + bodyTree.addContent(div); + } + Content tree = (configuration.allowTag(HtmlTag.FOOTER)) + ? HtmlTree.FOOTER() + : bodyTree; + navBar.setUserFooter(getUserHeaderFooter(false)); + tree.addContent(navBar.getContent(false)); + addBottom(tree); + if (configuration.allowTag(HtmlTag.FOOTER)) { + bodyTree.addContent(tree); + } + printHtmlDocument(null, true, bodyTree); + } + + /** + * Add all the packages to the content tree. + * + * @param content HtmlTree content to which the links will be added + */ + protected void addPackages(Content content) { + Table table = new Table(configuration.htmlVersion, HtmlStyle.packagesSummary) + .setSummary(resources.packageTableSummary) + .setCaption(getTableCaption(new StringContent(resources.packageSummary))) + .setHeader(new TableHeader(contents.packageLabel, contents.descriptionLabel)) + .setColumnStyles(HtmlStyle.colFirst, HtmlStyle.colLast); + for (PackageElement pkg : configuration.packages) { + if (!(configuration.nodeprecated && utils.isDeprecated(pkg))) { + Content packageLinkContent = getPackageLink(pkg, getPackageName(pkg)); + Content summaryContent = new ContentBuilder(); + addSummaryComment(pkg, summaryContent); + table.addRow(pkg, packageLinkContent, summaryContent); + } + } + HtmlTree li = HtmlTree.LI(HtmlStyle.blockList, table.toContent()); + content.addContent(HtmlTree.UL(HtmlStyle.blockList, li)); + } +} diff -r 1d683e243d8d -r cc705c956798 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDoclet.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDoclet.java Thu May 17 08:41:01 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDoclet.java Thu May 17 12:59:53 2018 -0700 @@ -146,6 +146,11 @@ } else { SingleIndexWriter.generate(configuration, indexbuilder); } + AllClassesIndexWriter.generate(configuration, + new IndexBuilder(configuration, nodeprecated, true)); + if (!configuration.packages.isEmpty()) { + AllPackagesIndexWriter.generate(configuration); + } } if (!(configuration.nodeprecatedlist || nodeprecated)) { diff -r 1d683e243d8d -r cc705c956798 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/MethodWriterImpl.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/MethodWriterImpl.java Thu May 17 08:41:01 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/MethodWriterImpl.java Thu May 17 12:59:53 2018 -0700 @@ -266,7 +266,6 @@ .addTab(resources.getText("doclet.Default_Methods"), utils::isDefault) .addTab(resources.getText("doclet.Deprecated_Methods"), e -> utils.isDeprecated(e) || utils.isDeprecated(typeElement)) - .setTabScriptVariable("methods") .setTabScript(i -> "show(" + i + ");") .setUseTBody(false) .setPutIdFirst(true); diff -r 1d683e243d8d -r cc705c956798 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleIndexWriter.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleIndexWriter.java Thu May 17 08:41:01 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleIndexWriter.java Thu May 17 12:59:53 2018 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2018, 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 @@ -131,8 +131,7 @@ .setHeader(header) .setColumnStyles(HtmlStyle.colFirst, HtmlStyle.colLast) .setDefaultTab(resources.getText("doclet.All_Modules")) - .setTabScriptVariable("groups") - .setTabScript(i -> "showGroups(" + i + ");") + .setTabScript(i -> "show(" + i + ");") .setTabId(i -> (i == 0) ? "t0" : ("t" + (1 << (i - 1)))); // add the tabs in command-line order diff -r 1d683e243d8d -r cc705c956798 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleWriterImpl.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleWriterImpl.java Thu May 17 08:41:01 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleWriterImpl.java Thu May 17 12:59:53 2018 -0700 @@ -622,8 +622,7 @@ .addTab(resources.getText("doclet.Exported_Packages_Summary"), this::isExported) .addTab(resources.getText("doclet.Opened_Packages_Summary"), this::isOpened) .addTab(resources.getText("doclet.Concealed_Packages_Summary"), this::isConcealed) - .setTabScript(i -> String.format("showPkgs(%d);", i)) - .setTabScriptVariable("packages"); + .setTabScript(i -> String.format("show(%d);", i)); // Determine whether to show the "Exported To" and "Opened To" columns, // based on whether such columns would provide "useful" info. diff -r 1d683e243d8d -r cc705c956798 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageIndexWriter.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageIndexWriter.java Thu May 17 08:41:01 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageIndexWriter.java Thu May 17 12:59:53 2018 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2018, 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 @@ -113,8 +113,7 @@ .setHeader(getPackageTableHeader()) .setColumnStyles(HtmlStyle.colFirst, HtmlStyle.colLast) .setDefaultTab(resources.getText("doclet.All_Packages")) - .setTabScriptVariable("groups") - .setTabScript(i -> "showGroups(" + i + ");") + .setTabScript(i -> "show(" + i + ");") .setTabId(i -> (i == 0) ? "t0" : ("t" + (1 << (i - 1)))); // add the tabs in command-line order diff -r 1d683e243d8d -r cc705c956798 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageWriterImpl.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageWriterImpl.java Thu May 17 08:41:01 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageWriterImpl.java Thu May 17 12:59:53 2018 -0700 @@ -195,13 +195,9 @@ */ @Override public void addInterfaceSummary(SortedSet interfaces, Content summaryContentTree) { - String label = resources.getText("doclet.Interface_Summary"); - String tableSummary = resources.getText("doclet.Member_Table_Summary", - resources.getText("doclet.Interface_Summary"), - resources.getText("doclet.interfaces")); TableHeader tableHeader= new TableHeader(contents.interfaceLabel, contents.descriptionLabel); - - addClassesSummary(interfaces, label, tableSummary, tableHeader, summaryContentTree); + addClassesSummary(interfaces, resources.interfaceSummary, resources.interfaceTableSummary, + tableHeader, summaryContentTree); } /** @@ -209,13 +205,9 @@ */ @Override public void addClassSummary(SortedSet classes, Content summaryContentTree) { - String label = resources.getText("doclet.Class_Summary"); - String tableSummary = resources.getText("doclet.Member_Table_Summary", - resources.getText("doclet.Class_Summary"), - resources.getText("doclet.classes")); TableHeader tableHeader= new TableHeader(contents.classLabel, contents.descriptionLabel); - - addClassesSummary(classes, label, tableSummary, tableHeader, summaryContentTree); + addClassesSummary(classes, resources.classSummary, resources.classTableSummary, + tableHeader, summaryContentTree); } /** @@ -223,13 +215,9 @@ */ @Override public void addEnumSummary(SortedSet enums, Content summaryContentTree) { - String label = resources.getText("doclet.Enum_Summary"); - String tableSummary = resources.getText("doclet.Member_Table_Summary", - resources.getText("doclet.Enum_Summary"), - resources.getText("doclet.enums")); TableHeader tableHeader= new TableHeader(contents.enum_, contents.descriptionLabel); - - addClassesSummary(enums, label, tableSummary, tableHeader, summaryContentTree); + addClassesSummary(enums, resources.enumSummary, resources.enumTableSummary, + tableHeader, summaryContentTree); } /** @@ -237,13 +225,9 @@ */ @Override public void addExceptionSummary(SortedSet exceptions, Content summaryContentTree) { - String label = resources.getText("doclet.Exception_Summary"); - String tableSummary = resources.getText("doclet.Member_Table_Summary", - resources.getText("doclet.Exception_Summary"), - resources.getText("doclet.exceptions")); TableHeader tableHeader= new TableHeader(contents.exception, contents.descriptionLabel); - - addClassesSummary(exceptions, label, tableSummary, tableHeader, summaryContentTree); + addClassesSummary(exceptions, resources.exceptionSummary, resources.exceptionTableSummary, + tableHeader, summaryContentTree); } /** @@ -251,13 +235,9 @@ */ @Override public void addErrorSummary(SortedSet errors, Content summaryContentTree) { - String label = resources.getText("doclet.Error_Summary"); - String tableSummary = resources.getText("doclet.Member_Table_Summary", - resources.getText("doclet.Error_Summary"), - resources.getText("doclet.errors")); TableHeader tableHeader= new TableHeader(contents.error, contents.descriptionLabel); - - addClassesSummary(errors, label, tableSummary, tableHeader, summaryContentTree); + addClassesSummary(errors, resources.errorSummary, resources.errorTableSummary, + tableHeader, summaryContentTree); } /** @@ -265,13 +245,9 @@ */ @Override public void addAnnotationTypeSummary(SortedSet annoTypes, Content summaryContentTree) { - String label = resources.getText("doclet.Annotation_Types_Summary"); - String tableSummary = resources.getText("doclet.Member_Table_Summary", - resources.getText("doclet.Annotation_Types_Summary"), - resources.getText("doclet.annotationtypes")); TableHeader tableHeader= new TableHeader(contents.annotationType, contents.descriptionLabel); - - addClassesSummary(annoTypes, label, tableSummary, tableHeader, summaryContentTree); + addClassesSummary(annoTypes, resources.annotationTypeSummary, resources.annotationTypeTableSummary, + tableHeader, summaryContentTree); } public void addClassesSummary(SortedSet classes, String label, diff -r 1d683e243d8d -r cc705c956798 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SearchIndexItem.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SearchIndexItem.java Thu May 17 08:41:01 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SearchIndexItem.java Thu May 17 12:59:53 2018 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2018, 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 @@ -103,13 +103,21 @@ if (!containingModule.isEmpty()) { item.append("\"m\":\"").append(containingModule).append("\","); } - item.append("\"l\":\"").append(label).append("\"") - .append("}"); + item.append("\"l\":\"").append(label).append("\""); + if (!url.equals("")) { + item.append(",\"url\":\"").append(url).append("\""); + } + item.append("}"); } else if (category.equals("Types")) { - item.append("{") - .append("\"p\":\"").append(containingPackage).append("\",") - .append("\"l\":\"").append(label).append("\"") - .append("}"); + item.append("{"); + if (!containingPackage.equals("")) { + item.append("\"p\":\"").append(containingPackage).append("\","); + } + item.append("\"l\":\"").append(label).append("\""); + if (!url.equals("")) { + item.append(",\"url\":\"").append(url).append("\""); + } + item.append("}"); } else if (category.equals("Members")) { item.append("{") .append("\"p\":\"").append(containingPackage).append("\",") diff -r 1d683e243d8d -r cc705c956798 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SingleIndexWriter.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SingleIndexWriter.java Thu May 17 08:41:01 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SingleIndexWriter.java Thu May 17 12:59:53 2018 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2018, 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 @@ -147,5 +147,13 @@ new StringContent(unicode))); contentTree.addContent(Contents.SPACE); } + contentTree.addContent(new HtmlTree(HtmlTag.BR)); + contentTree.addContent(links.createLink(DocPaths.ALLCLASSES_INDEX, + contents.allClassesLabel)); + if (!configuration.packages.isEmpty()) { + contentTree.addContent(Contents.SPACE); + contentTree.addContent(links.createLink(DocPaths.ALLPACKAGES_INDEX, + contents.allPackagesLabel)); } } +} diff -r 1d683e243d8d -r cc705c956798 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SplitIndexWriter.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SplitIndexWriter.java Thu May 17 08:41:01 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SplitIndexWriter.java Thu May 17 12:59:53 2018 -0700 @@ -167,5 +167,13 @@ new StringContent(indexElements.get(i).toString()))); contentTree.addContent(Contents.SPACE); } + contentTree.addContent(new HtmlTree(HtmlTag.BR)); + contentTree.addContent(links.createLink(pathToRoot.resolve(DocPaths.ALLCLASSES_INDEX), + contents.allClassesLabel)); + if (!configuration.packages.isEmpty()) { + contentTree.addContent(Contents.SPACE); + contentTree.addContent(links.createLink(pathToRoot.resolve(DocPaths.ALLPACKAGES_INDEX), + contents.allPackagesLabel)); } } +} diff -r 1d683e243d8d -r cc705c956798 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlStyle.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlStyle.java Thu May 17 08:41:01 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlStyle.java Thu May 17 12:59:53 2018 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2018, 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 @@ -38,6 +38,8 @@ public enum HtmlStyle { aboutLanguage, activeTableTab, + allClassesContainer, + allPackagesContainer, altColor, bar, block, diff -r 1d683e243d8d -r cc705c956798 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Navigation.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Navigation.java Thu May 17 08:41:01 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Navigation.java Thu May 17 12:59:53 2018 -0700 @@ -89,6 +89,8 @@ + "//-->\n"); public enum PageMode { + ALLCLASSES, + ALLPACKAGES, CLASS, CONSTANTVALUES, DEPRECATED, @@ -378,6 +380,8 @@ addHelpLink(tree); } break; + case ALLCLASSES: + case ALLPACKAGES: case CONSTANTVALUES: case SERIALIZEDFORM: addOverviewLink(tree); diff -r 1d683e243d8d -r cc705c956798 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Table.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Table.java Thu May 17 08:41:01 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Table.java Thu May 17 12:59:53 2018 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2018, 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 @@ -72,7 +72,6 @@ private HtmlStyle tabStyle = HtmlStyle.tableTab; private HtmlStyle tabEnd = HtmlStyle.tabEnd; private IntFunction tabScript; - private String tabScriptVariable; private Function tabId = (i -> "t" + i); private TableHeader header; private List columnStyles; @@ -183,17 +182,6 @@ } /** - * Sets the name of the JavaScript variable used to contain the data for each tab. - * - * @param name the name - * @return this object - */ - public Table setTabScriptVariable(String name) { - tabScriptVariable = name; - return this; - } - - /** * Sets the name of the styles used to display the tabs. * * @param activeTabStyle the style for the active tab @@ -537,7 +525,7 @@ StringBuilder sb = new StringBuilder(); // Add the variable defining the bitmask for each row - sb.append("var ").append(tabScriptVariable).append(" = {"); + sb.append("var data").append(" = {"); int rowIndex = 0; for (int mask : bodyRowMasks) { if (rowIndex > 0) { diff -r 1d683e243d8d -r cc705c956798 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/search.js --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/search.js Thu May 17 08:41:01 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/search.js Thu May 17 12:59:53 2018 -0700 @@ -47,15 +47,17 @@ var slash = "/"; if (ui.item.category === catModules) { return ui.item.l + slash; - } else if (ui.item.category === catPackages) { + } else if (ui.item.category === catPackages && ui.item.m) { return ui.item.m + slash; - } else if (ui.item.category === catTypes || ui.item.category === catMembers) { + } else if ((ui.item.category === catTypes && ui.item.p) || ui.item.category === catMembers) { $.each(packageSearchIndex, function(index, item) { if (ui.item.p == item.l) { urlPrefix = item.m + slash; } }); return urlPrefix; + } else { + return urlPrefix; } } return urlPrefix; @@ -116,7 +118,9 @@ ? getHighlightedText(item.m + "/" + item.l) : getHighlightedText(item.l); } else if (item.category === catTypes) { - label = getHighlightedText(item.p + "." + item.l); + label = (item.p) + ? getHighlightedText(item.p + "." + item.l) + : getHighlightedText(item.l); } else if (item.category === catMembers) { label = getHighlightedText(item.p + "." + (item.c + "." + item.l)); } else if (item.category === catSearchTags) { @@ -306,9 +310,15 @@ url = ui.item.l + "-summary.html"; } } else if (ui.item.category === catPackages) { + if (ui.item.url) { + url = ui.item.url; + } else { url += ui.item.l.replace(/\./g, '/') + "/package-summary.html"; + } } else if (ui.item.category === catTypes) { - if (ui.item.p === "") { + if (ui.item.url) { + url = ui.item.url; + } else if (ui.item.p === "") { url += ui.item.l + ".html"; } else { url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.l + ".html"; diff -r 1d683e243d8d -r cc705c956798 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/Resources.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/Resources.java Thu May 17 08:41:01 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/Resources.java Thu May 17 12:59:53 2018 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2018, 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 @@ -39,9 +39,23 @@ * HTML doclet. */ public class Resources { + public final String annotationTypeSummary; + public final String annotationTypeTableSummary; + public final String classSummary; + public final String classTableSummary; private final BaseConfiguration configuration; private final String commonBundleName; private final String docletBundleName; + public final String enumSummary; + public final String enumTableSummary; + public final String errorSummary; + public final String errorTableSummary; + public final String exceptionSummary; + public final String exceptionTableSummary; + public final String interfaceSummary; + public final String interfaceTableSummary; + public final String packageSummary; + public final String packageTableSummary; protected ResourceBundle commonBundle; protected ResourceBundle docletBundle; @@ -62,6 +76,27 @@ this.configuration = configuration; this.commonBundleName = commonBundleName; this.docletBundleName = docletBundleName; + this.annotationTypeSummary = getText("doclet.Annotation_Types_Summary"); + this.annotationTypeTableSummary = getText("doclet.Member_Table_Summary", + this.annotationTypeSummary, getText("doclet.annotationtypes")); + this.classSummary = getText("doclet.Class_Summary"); + this.classTableSummary = getText("doclet.Member_Table_Summary", + this.classSummary, getText("doclet.classes")); + this.enumSummary = getText("doclet.Enum_Summary"); + this.enumTableSummary = getText("doclet.Member_Table_Summary", + this.enumSummary, getText("doclet.enums")); + this.errorSummary = getText("doclet.Error_Summary"); + this.errorTableSummary = getText("doclet.Member_Table_Summary", + this.errorSummary, getText("doclet.errors")); + this.exceptionSummary = getText("doclet.Exception_Summary"); + this.exceptionTableSummary = getText("doclet.Member_Table_Summary", + this.exceptionSummary, getText("doclet.exceptions")); + this.interfaceSummary = getText("doclet.Interface_Summary"); + this.interfaceTableSummary = getText("doclet.Member_Table_Summary", + this.interfaceSummary, getText("doclet.interfaces")); + this.packageSummary = getText("doclet.Package_Summary"); + this.packageTableSummary = getText("doclet.Member_Table_Summary", + this.packageSummary, getText("doclet.packages")); } /** diff -r 1d683e243d8d -r cc705c956798 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/script.js --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/script.js Thu May 17 08:41:01 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/script.js Thu May 17 12:59:53 2018 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2018, 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 @@ -104,12 +104,11 @@ scriptElement.parentNode.insertBefore(script, scriptElement); } -function show(type) -{ +function show(type) { count = 0; - for (var key in methods) { + for (var key in data) { var row = document.getElementById(key); - if ((methods[key] & type) !== 0) { + if ((data[key] & type) !== 0) { row.style.display = ''; row.className = (count++ % 2) ? rowColor : altColor; } @@ -119,38 +118,7 @@ updateTabs(type); } -function showPkgs(type) -{ - count = 0; - for (var key in packages) { - var row = document.getElementById(key); - if ((packages[key] & type) !== 0) { - row.style.display = ''; - row.className = (count++ % 2) ? rowColor : altColor; - } - else - row.style.display = 'none'; - } - updatePkgsTabs(type); -} - -function showGroups(type) -{ - count = 0; - for (var key in groups) { - var row = document.getElementById(key); - if ((groups[key] & type) !== 0) { - row.style.display = ''; - row.className = (count++ % 2) ? rowColor : altColor; - } - else - row.style.display = 'none'; - } - updateGroupsTabs(type); -} - -function updateTabs(type) -{ +function updateTabs(type) { for (var value in tabs) { var sNode = document.getElementById(tabs[value][0]); var spanNode = sNode.firstChild; @@ -165,40 +133,7 @@ } } -function updateModuleFrame(pFrame, cFrame) -{ +function updateModuleFrame(pFrame, cFrame) { top.packageFrame.location = pFrame; top.classFrame.location = cFrame; } - -function updatePkgsTabs(type) -{ - for (var value in tabs) { - var sNode = document.getElementById(tabs[value][0]); - var spanNode = sNode.firstChild; - if (value == type) { - sNode.className = activeTableTab; - spanNode.innerHTML = tabs[value][1]; - } - else { - sNode.className = tableTab; - spanNode.innerHTML = "" + tabs[value][1] + ""; - } - } -} - -function updateGroupsTabs(type) -{ - for (var value in tabs) { - var sNode = document.getElementById(tabs[value][0]); - var spanNode = sNode.firstChild; - if (value == type) { - sNode.className = activeTableTab; - spanNode.innerHTML = tabs[value][1]; - } - else { - sNode.className = tableTab; - spanNode.innerHTML = "" + tabs[value][1] + ""; - } - } -} diff -r 1d683e243d8d -r cc705c956798 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/stylesheet.css --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/stylesheet.css Thu May 17 08:41:01 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/stylesheet.css Thu May 17 12:59:53 2018 -0700 @@ -311,7 +311,8 @@ /* * Styles for page layout containers. */ -.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer { +.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer, +.allClassesContainer, .allPackagesContainer { clear:both; padding:10px 20px; position:relative; @@ -480,7 +481,7 @@ height:16px; } .memberSummary caption span.activeTableTab span, .packagesSummary caption span.activeTableTab span, -.overviewSummary caption span.activeTableTab span { +.overviewSummary caption span.activeTableTab span, .typeSummary caption span.activeTableTab span { white-space:nowrap; padding-top:5px; padding-left:12px; @@ -492,7 +493,7 @@ height:16px; } .memberSummary caption span.tableTab span, .packagesSummary caption span.tableTab span, -.overviewSummary caption span.tableTab span { +.overviewSummary caption span.tableTab span, .typeSummary caption span.tableTab span { white-space:nowrap; padding-top:5px; padding-left:12px; @@ -505,7 +506,8 @@ } .memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab, .packagesSummary caption span.tableTab, .packagesSummary caption span.activeTableTab, -.overviewSummary caption span.tableTab, .overviewSummary caption span.activeTableTab { +.overviewSummary caption span.tableTab, .overviewSummary caption span.activeTableTab, +.typeSummary caption span.tableTab, .typeSummary caption span.activeTableTab { padding-top:0px; padding-left:0px; padding-right:0px; @@ -523,7 +525,7 @@ background-color:#F8981D; } .memberSummary .activeTableTab .tabEnd, .packagesSummary .activeTableTab .tabEnd, -.overviewSummary .activeTableTab .tabEnd { +.overviewSummary .activeTableTab .tabEnd, .typeSummary .activeTableTab .tabEnd { display:none; width:5px; margin-right:3px; @@ -532,7 +534,7 @@ background-color:#F8981D; } .memberSummary .tableTab .tabEnd, .packagesSummary .tableTab .tabEnd, -.overviewSummary .tableTab .tabEnd { +.overviewSummary .tableTab .tabEnd, .typeSummary .tableTab .tabEnd { display:none; width:5px; margin-right:3px; @@ -585,7 +587,7 @@ .providesSummary td.colFirst, .providesSummary th.colFirst, .memberSummary td.colFirst, .memberSummary th.colFirst, .memberSummary td.colSecond, .memberSummary th.colSecond, .memberSummary th.colConstructorName, -.typeSummary td.colFirst { +.typeSummary td.colFirst, .typeSummary th.colFirst { vertical-align:top; } .packagesSummary th.colLast, .packagesSummary td.colLast { @@ -597,7 +599,9 @@ th.colSecond a:link, th.colSecond a:visited, th.colConstructorName a:link, th.colConstructorName a:visited, th.colDeprecatedItemName a:link, th.colDeprecatedItemName a:visited, -.constantValuesContainer td a:link, .constantValuesContainer td a:visited { +.constantValuesContainer td a:link, .constantValuesContainer td a:visited, +.allClassesContainer td a:link, .allClassesContainer td a:visited, +.allPackagesContainer td a:link, .allPackagesContainer td a:visited { font-weight:bold; } .tableSubHeadingColor { diff -r 1d683e243d8d -r cc705c956798 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/DocPaths.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/DocPaths.java Thu May 17 08:41:01 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/DocPaths.java Thu May 17 12:59:53 2018 -0700 @@ -57,6 +57,12 @@ /** The name of the file for all classes, using frames. */ public static final DocPath ALLCLASSES_FRAME = DocPath.create("allclasses-frame.html"); + /** The name of the file for all classes index. */ + public static final DocPath ALLCLASSES_INDEX = DocPath.create("allclasses-index.html"); + + /** The name of the file for all packages index. */ + public static final DocPath ALLPACKAGES_INDEX = DocPath.create("allpackages-index.html"); + /** The name of the file for all classes, without using frames. */ public static final DocPath ALLCLASSES_NOFRAME = DocPath.create("allclasses-noframe.html"); diff -r 1d683e243d8d -r cc705c956798 test/langtools/jdk/javadoc/doclet/testGroupName/TestGroupName.java --- a/test/langtools/jdk/javadoc/doclet/testGroupName/TestGroupName.java Thu May 17 08:41:01 2018 -0700 +++ b/test/langtools/jdk/javadoc/doclet/testGroupName/TestGroupName.java Thu May 17 12:59:53 2018 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2018, 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 @@ -23,7 +23,7 @@ /* * @test - * @bug 8190003 + * @bug 8190003 8196201 * @summary Special characters in group names should be escaped * @library /tools/lib ../lib * @modules jdk.javadoc/jdk.javadoc.internal.tool @@ -64,7 +64,7 @@ checkExit(Exit.OK); checkOutput("overview-summary.html", true, - "abc < & > def", + "abc < & > def", ",\"abc < & > def\"],"); } @@ -97,7 +97,7 @@ checkExit(Exit.OK); checkOutput("overview-summary.html", true, - "abc < & > def", + "abc < & > def", ",\"abc < & > def\"],"); } } diff -r 1d683e243d8d -r cc705c956798 test/langtools/jdk/javadoc/doclet/testMethodTypes/TestMethodTypes.java --- a/test/langtools/jdk/javadoc/doclet/testMethodTypes/TestMethodTypes.java Thu May 17 08:41:01 2018 -0700 +++ b/test/langtools/jdk/javadoc/doclet/testMethodTypes/TestMethodTypes.java Thu May 17 12:59:53 2018 -0700 @@ -23,7 +23,7 @@ /* * @test - * @bug 8002304 8024096 8193671 + * @bug 8002304 8024096 8193671 8196201 * @summary Test for various method type tabs in the method summary table * @author Bhavesh Patel * @library ../lib @@ -47,7 +47,7 @@ checkExit(Exit.OK); checkOutput("pkg1/A.html", true, - "var methods = {", + "var data = {", "All " + "Methods " + "" @@ -62,7 +62,7 @@ ""); checkOutput("pkg1/B.html", true, - "var methods = {\"i0\":6,\"i1\":18,\"i2\":18,\"i3\":1,\"i4\":1," + "var data = {\"i0\":6,\"i1\":18,\"i2\":18,\"i3\":1,\"i4\":1," + "\"i5\":6,\"i6\":6,\"i7\":6,\"i8\":6};\n", "All Methods" + " " @@ -76,7 +76,7 @@ + " \n"); checkOutput("pkg1/D.html", true, - "var methods = {", + "var data = {", "All " + "Methods " + "" diff -r 1d683e243d8d -r cc705c956798 test/langtools/jdk/javadoc/doclet/testModules/TestModulePackages.java --- a/test/langtools/jdk/javadoc/doclet/testModules/TestModulePackages.java Thu May 17 08:41:01 2018 -0700 +++ b/test/langtools/jdk/javadoc/doclet/testModules/TestModulePackages.java Thu May 17 12:59:53 2018 -0700 @@ -23,7 +23,7 @@ /* * @test - * @bug 8178070 + * @bug 8178070 8196201 * @summary Test packages table in module summary pages * @library /tools/lib ../lib * @modules jdk.compiler/com.sun.tools.javac.api @@ -419,17 +419,17 @@ + " "); if (kindSet.contains(TabKind.EXPORTS)) { sb.append("" - + "Exports" + + "Exports" + " "); } if (kindSet.contains(TabKind.OPENS)) { sb.append("" - + "Opens" + + "Opens" + " "); } if (kindSet.contains(TabKind.CONCEALED)) { sb.append("" - + "Concealed" + + "Concealed" + " "); } sb.append(""); diff -r 1d683e243d8d -r cc705c956798 test/langtools/jdk/javadoc/doclet/testModules/TestModules.java --- a/test/langtools/jdk/javadoc/doclet/testModules/TestModules.java Thu May 17 08:41:01 2018 -0700 +++ b/test/langtools/jdk/javadoc/doclet/testModules/TestModules.java Thu May 17 12:59:53 2018 -0700 @@ -26,7 +26,7 @@ * @bug 8154119 8154262 8156077 8157987 8154261 8154817 8135291 8155995 8162363 * 8168766 8168688 8162674 8160196 8175799 8174974 8176778 8177562 8175218 * 8175823 8166306 8178043 8181622 8183511 8169819 8074407 8183037 8191464 - 8164407 8192007 8182765 8196200 + 8164407 8192007 8182765 8196200 8196201 * @summary Test modules support in javadoc. * @author bpatel * @library ../lib @@ -64,6 +64,7 @@ checkModuleFilesAndLinks(true); checkModulesInSearch(true); checkOverviewFrame(true); + checkAllPkgsAllClasses(false); } /** @@ -88,6 +89,7 @@ checkModuleFilesAndLinks(true); checkModulesInSearch(true); checkOverviewFrame(true); + checkAllPkgsAllClasses(true); } /** @@ -1086,8 +1088,7 @@ + "onclick=\"updateModuleFrame('moduleB/module-type-frame.html','moduleB/module-summary.html');" + "\">moduleB"); checkOutput("script.js", true, - "function updateModuleFrame(pFrame, cFrame)\n" - + "{\n" + "function updateModuleFrame(pFrame, cFrame) {\n" + " top.packageFrame.location = pFrame;\n" + " top.classFrame.location = cFrame;\n" + "}"); @@ -1332,8 +1333,8 @@ + "All Modules\n" + " ", "All Packages " - + "Exports" - + " " + + "Exports" + + " " + "Concealed ", "concealedpkgmdlA\n" + "None\n" @@ -1359,8 +1360,8 @@ + " 
(Implementation(s): TestClassInModuleB)", "All Packages " - + "Exports " - + "Opens "); + + "Exports " + + "Opens "); checkOutput("moduleC/module-summary.html", found, "Exports \n" + "\n" @@ -1444,12 +1445,12 @@ "
\n" + "\n" + "", - "var groups = {\"i0\":1,\"i1\":2,\"i2\":2,\"i3\":4};\n" + "var data = {\"i0\":1,\"i1\":2,\"i2\":2,\"i3\":4};\n" + "var tabs = {65535:[\"t0\",\"All Modules\"],1:[\"t1\",\"Module Group A\"],2:[\"t2\",\"Module Group B & C\"],4:[\"t4\",\"Other Modules\"]};\n" + "var altColor = \"altColor\";\n" + "var rowColor = \"rowColor\";\n" @@ -1466,12 +1467,12 @@ "
\n" + "
All Modules " - + "" + + "" + "Module Group A " - + "Module Group B & C" - + " " + + "Module Group B & C" + + " " + "Other Modules 
\n" + "", - "var groups = {\"i0\":1,\"i1\":2,\"i2\":2,\"i3\":4};\n" + "var data = {\"i0\":1,\"i1\":2,\"i2\":2,\"i3\":4};\n" + "var tabs = {65535:[\"t0\",\"All Modules\"],1:[\"t1\",\"Module Group A\"],2:[\"t2\",\"Module Group B & C\"],4:[\"t4\",\"Other Modules\"]};\n" + "var altColor = \"altColor\";\n" + "var rowColor = \"rowColor\";\n" @@ -1487,22 +1488,22 @@ checkOutput("overview-summary.html", true, "", "var tabs = {65535:[\"t0\",\"All Modules\"],1:[\"t1\",\"B Group\"],2:[\"t2\",\"C Group\"]," + "4:[\"t4\",\"A Group\"],8:[\"t8\",\"Other Modules\"]};"); checkOutput("overview-summary.html", false, "", "Java SE Modules"); } @@ -1515,11 +1516,11 @@ + "
\n" + "
All Modules " - + "" + + "" + "Module Group A " - + "Module Group B & C" - + " " + + "Module Group B & C" + + " " + "Other Modules All Modules " - + "B Group" - + " " + + "B Group" + + " " + "C Group " - + "A Group " - + "Other Modules" + + "A Group " + + "Other Modules" + " All Modules " - + "A Group" - + " " + + "A Group" + + " " + "B Group " - + "C Group " - + "Other Modules" + + "C Group " + + "Other Modules" + " 
\n" + "", - "var groups = {\"i0\":1,\"i1\":2};\n" + "var data = {\"i0\":1,\"i1\":2};\n" + "var tabs = {65535:[\"t0\",\"All Packages\"],1:[\"t1\",\"Package Group 0\"],2:[\"t2\",\"Package Group 1\"]};\n" + "var altColor = \"altColor\";\n" + "var rowColor = \"rowColor\";\n" @@ -1535,9 +1536,9 @@ + "
\n" + "
All Packages " - + "" + + "" + "Package Group 0 Package Group 1" + + "class=\"tableTab\">Package Group 1" + " 
\n" + ""); } @@ -1545,8 +1546,8 @@ checkOutput("overview-summary.html", true, "", "var tabs = {65535:[\"t0\",\"All Packages\"],1:[\"t1\",\"Z Group\"],2:[\"t2\",\"A Group\"]};"); } @@ -1613,4 +1614,38 @@ "Link to java.base module"); } + + void checkAllPkgsAllClasses(boolean found) { + checkOutput("allclasses-index.html", true, + "\n" + + "\n" + + "\n" + + "\n" + + ""); + checkOutput("allpackages-index.html", true, + "\n" + + "\n" + + "\n" + + "\n" + + "\n"); + checkOutput("allclasses-index.html", found, + "
All Packages " - + "" + + "" + "Package Group 0 Package Group 1" + + "class=\"tableTab\">Package Group 1" + " All Packages " - + "Z Group" - + " " + + "Z Group" + + " " + "A Group All Classes" + + " " + + "Class Summary" + + " " + + "Annotation Types Summary 
ClassDescription
Package Summary 
PackageDescription
\n"); + checkOutput("allpackages-index.html", found, + "
\n"); + checkOutput("allclasses-index.html", !found, + "
"); + checkOutput("allpackages-index.html", !found, + "
"); + checkOutput("type-search-index.js", true, + "{\"l\":\"All Classes\",\"url\":\"allclasses-index.html\"}"); + checkOutput("package-search-index.js", true, + "{\"l\":\"All Packages\",\"url\":\"allpackages-index.html\"}"); + checkOutput("index-all.html", true, + "
All Classes " + + "All Packages"); } +} diff -r 1d683e243d8d -r cc705c956798 test/langtools/jdk/javadoc/doclet/testPackagePage/TestPackagePage.java --- a/test/langtools/jdk/javadoc/doclet/testPackagePage/TestPackagePage.java Thu May 17 08:41:01 2018 -0700 +++ b/test/langtools/jdk/javadoc/doclet/testPackagePage/TestPackagePage.java Thu May 17 12:59:53 2018 -0700 @@ -23,7 +23,7 @@ /* * @test - * @bug 4492643 4689286 + * @bug 4492643 4689286 8196201 * @summary Test that a package page is properly generated when a .java file * passed to Javadoc. Also test that the proper package links are generated * when single or multiple packages are documented. @@ -82,5 +82,26 @@ "
  • Package
  • "); checkOutput("help-doc.html", true, "
  • Package
  • "); + checkOutput("allclasses-index.html", true, + "
    \n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n"); + checkOutput("allpackages-index.html", true, + "
    Class Summary 
    ClassDescription
    \n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n"); + checkOutput("type-search-index.js", true, + "{\"l\":\"All Classes\",\"url\":\"allclasses-index.html\"}"); + checkOutput("package-search-index.js", true, + "{\"l\":\"All Packages\",\"url\":\"allpackages-index.html\"}"); + checkOutput("index-all.html", true, + "
    All Classes " + + "All Packages"); } } diff -r 1d683e243d8d -r cc705c956798 test/langtools/jdk/javadoc/doclet/testSearch/TestSearch.java --- a/test/langtools/jdk/javadoc/doclet/testSearch/TestSearch.java Thu May 17 08:41:01 2018 -0700 +++ b/test/langtools/jdk/javadoc/doclet/testSearch/TestSearch.java Thu May 17 12:59:53 2018 -0700 @@ -24,7 +24,7 @@ /* * @test * @bug 8141492 8071982 8141636 8147890 8166175 8168965 8176794 8175218 8147881 - * 8181622 8182263 8074407 8187521 8198522 8182765 8199278 + * 8181622 8182263 8074407 8187521 8198522 8182765 8199278 8196201 * @summary Test the search feature of javadoc. * @author bpatel * @library ../lib @@ -50,13 +50,13 @@ checkJqueryAndImageFiles(true); checkSearchJS(); checkFiles(false, - "package-search-index.zip", "tag-search-index.zip", - "package-search-index.js", "tag-search-index.js"); checkFiles(true, + "package-search-index.zip", "member-search-index.zip", "type-search-index.zip", + "package-search-index.js", "member-search-index.js", "type-search-index.js"); } @@ -75,6 +75,7 @@ checkSingleIndexSearchTagDuplication(); checkJqueryAndImageFiles(true); checkSearchJS(); + checkAllPkgsAllClasses(); checkFiles(true, "member-search-index.zip", "package-search-index.zip", @@ -154,7 +155,9 @@ "package-search-index.js", "tag-search-index.js", "type-search-index.js", - "index-all.html"); + "index-all.html", + "allpackages-index.html", + "allclasses-index.html"); } @Test @@ -471,7 +474,9 @@ "
    " + "SearchTagDeprecatedMethod - Search tag in pkg2.TestError
    ", "
    " - + "SingleWord - Search tag in pkg
    "); + + "SingleWord - Search tag in pkg", + "
    All Classes " + + "All Packages"); checkOutput("index-files/index-10.html", true, "
    " + "phrase with spaces - Search tag in pkg
    ", @@ -628,15 +633,17 @@ + " var slash = \"/\";\n" + " if (ui.item.category === catModules) {\n" + " return ui.item.l + slash;\n" - + " } else if (ui.item.category === catPackages) {\n" + + " } else if (ui.item.category === catPackages && ui.item.m) {\n" + " return ui.item.m + slash;\n" - + " } else if (ui.item.category === catTypes || ui.item.category === catMembers) {\n" + + " } else if ((ui.item.category === catTypes && ui.item.p) || ui.item.category === catMembers) {\n" + " $.each(packageSearchIndex, function(index, item) {\n" + " if (ui.item.p == item.l) {\n" + " urlPrefix = item.m + slash;\n" + " }\n" + " });\n" + " return urlPrefix;\n" + + " } else {\n" + + " return urlPrefix;\n" + " }\n" + " }\n" + " return urlPrefix;\n" @@ -673,4 +680,41 @@ + "SearchTagDeprecatedMethod - Search tag in pkg2.TestError\n" + "
    with description
    "); } + + void checkAllPkgsAllClasses() { + checkOutput("allclasses-index.html", true, + "
    Package Summary 
    PackageDescription
    \n" + + "\n" + + "\n" + + "\n" + + "\n" + + "", + "var data = {\"i0\":32,\"i1\":2,\"i2\":4,\"i3\":2,\"i4\":2,\"i5\":1,\"i6\":2,\"i7\":32," + + "\"i8\":2,\"i9\":4,\"i10\":16,\"i11\":16,\"i12\":8,\"i13\":8,\"i14\":1,\"i15\":2};"); + checkOutput("allpackages-index.html", true, + "
    All Classes" + + " " + + "Interface Summary" + + " " + + "Class Summary " + + "Enum Summary " + + "" + + "Exception Summary " + + "" + + "Error Summary " + + "Annotation Types Summary" + + " 
    ClassDescription
    \n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n"); + checkOutput("type-search-index.js", true, + "{\"l\":\"All Classes\",\"url\":\"allclasses-index.html\"}"); + checkOutput("package-search-index.js", true, + "{\"l\":\"All Packages\",\"url\":\"allpackages-index.html\"}"); + checkOutput("index-all.html", true, + "
    All Classes " + + "All Packages"); } +} diff -r 1d683e243d8d -r cc705c956798 test/langtools/jdk/javadoc/doclet/testStylesheet/TestStylesheet.java --- a/test/langtools/jdk/javadoc/doclet/testStylesheet/TestStylesheet.java Thu May 17 08:41:01 2018 -0700 +++ b/test/langtools/jdk/javadoc/doclet/testStylesheet/TestStylesheet.java Thu May 17 12:59:53 2018 -0700 @@ -24,7 +24,7 @@ /* * @test * @bug 4494033 7028815 7052425 8007338 8023608 8008164 8016549 8072461 8154261 8162363 8160196 8151743 8177417 - * 8175218 8176452 8181215 8182263 8183511 8169819 8183037 8185369 8182765 + * 8175218 8176452 8181215 8182263 8183511 8169819 8183037 8185369 8182765 8196201 * @summary Run tests on doclet stylesheet. * @author jamieh * @library ../lib @@ -106,7 +106,7 @@ + " height:16px;\n" + "}", ".memberSummary caption span.activeTableTab span, .packagesSummary caption span.activeTableTab span,\n" - + ".overviewSummary caption span.activeTableTab span {\n" + + ".overviewSummary caption span.activeTableTab span, .typeSummary caption span.activeTableTab span {\n" + " white-space:nowrap;\n" + " padding-top:5px;\n" + " padding-left:12px;\n" @@ -118,7 +118,7 @@ + " height:16px;\n" + "}", ".memberSummary caption span.tableTab span, .packagesSummary caption span.tableTab span,\n" - + ".overviewSummary caption span.tableTab span {\n" + + ".overviewSummary caption span.tableTab span, .typeSummary caption span.tableTab span {\n" + " white-space:nowrap;\n" + " padding-top:5px;\n" + " padding-left:12px;\n" @@ -137,7 +137,7 @@ + ".providesSummary td.colFirst, .providesSummary th.colFirst,\n" + ".memberSummary td.colFirst, .memberSummary th.colFirst,\n" + ".memberSummary td.colSecond, .memberSummary th.colSecond, .memberSummary th.colConstructorName,\n" - + ".typeSummary td.colFirst {\n" + + ".typeSummary td.colFirst, .typeSummary th.colFirst {\n" + " vertical-align:top;\n" + "}", ".overviewSummary td, .memberSummary td, .typeSummary td,\n" @@ -148,7 +148,8 @@ + "}", ".memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab,\n" + ".packagesSummary caption span.tableTab, .packagesSummary caption span.activeTableTab,\n" - + ".overviewSummary caption span.tableTab, .overviewSummary caption span.activeTableTab {\n" + + ".overviewSummary caption span.tableTab, .overviewSummary caption span.activeTableTab,\n" + + ".typeSummary caption span.tableTab, .typeSummary caption span.activeTableTab {\n" + " padding-top:0px;\n" + " padding-left:0px;\n" + " padding-right:0px;\n" @@ -180,7 +181,9 @@ + "th.colSecond a:link, th.colSecond a:visited,\n" + "th.colConstructorName a:link, th.colConstructorName a:visited,\n" + "th.colDeprecatedItemName a:link, th.colDeprecatedItemName a:visited, \n" - + ".constantValuesContainer td a:link, .constantValuesContainer td a:visited {\n" + + ".constantValuesContainer td a:link, .constantValuesContainer td a:visited, \n" + + ".allClassesContainer td a:link, .allClassesContainer td a:visited, \n" + + ".allPackagesContainer td a:link, .allPackagesContainer td a:visited {\n" + " font-weight:bold;\n" + "}", ".deprecationBlock {\n" diff -r 1d683e243d8d -r cc705c956798 test/langtools/jdk/javadoc/doclet/testUnnamedPackage/TestUnnamedPackage.java --- a/test/langtools/jdk/javadoc/doclet/testUnnamedPackage/TestUnnamedPackage.java Thu May 17 08:41:01 2018 -0700 +++ b/test/langtools/jdk/javadoc/doclet/testUnnamedPackage/TestUnnamedPackage.java Thu May 17 12:59:53 2018 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2018, 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 @@ -23,7 +23,7 @@ /* * @test - * @bug 4904075 4774450 5015144 8043698 + * @bug 4904075 4774450 5015144 8043698 8196201 * @summary Reference unnamed package as "Unnamed", not empty string. * Generate a package summary for the unnamed package. * @author jamieh @@ -64,6 +64,48 @@ checkOutput("C.html", true, ""); + checkOutput("allclasses-index.html", true, + "
    Package Summary 
    PackageDescription
    \n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "
    Class Summary 
    ClassDescription
    C\n" + + "
    This is a class in the unnamed package.
    \n" + + "
    "); + + checkOutput("allpackages-index.html", true, + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "
    Package Summary 
    PackageDescription
    <Unnamed>\n" + + "
    This is a package comment for the unnamed package.
    \n" + + "
    "); + + checkOutput("type-search-index.js", true, + "{\"l\":\"All Classes\",\"url\":\"allclasses-index.html\"}"); + + checkOutput("package-search-index.js", true, + "{\"l\":\"All Packages\",\"url\":\"allpackages-index.html\"}"); + + checkOutput("index-all.html", true, + "
    All Classes " + + "All Packages"); + checkOutput(Output.OUT, false, "BadSource"); } diff -r 1d683e243d8d -r cc705c956798 test/langtools/jdk/javadoc/tool/api/basic/APITest.java --- a/test/langtools/jdk/javadoc/tool/api/basic/APITest.java Thu May 17 08:41:01 2018 -0700 +++ b/test/langtools/jdk/javadoc/tool/api/basic/APITest.java Thu May 17 12:59:53 2018 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2018, 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 @@ -191,7 +191,9 @@ */ protected static Set standardExpectFiles = new HashSet<>(Arrays.asList( "allclasses-frame.html", + "allclasses-index.html", "allclasses-noframe.html", + "allpackages-index.html", "constant-values.html", "deprecated-list.html", "help-doc.html", @@ -245,7 +247,8 @@ protected static Set noIndexFiles = standardExpectFiles.stream() .filter(s -> !s.startsWith("jquery") && !s.startsWith("resources") && !s.endsWith("zip") - && !s.equals("index-all.html") && !s.equals("search.js") && !s.endsWith("-search-index.js")) + && !s.equals("index-all.html") && !s.equals("search.js") && !s.endsWith("-search-index.js") + && !s.equals("allclasses-index.html") && !s.equals("allpackages-index.html")) .collect(Collectors.toSet()); } diff -r 1d683e243d8d -r cc705c956798 test/langtools/tools/javadoc/api/basic/APITest.java --- a/test/langtools/tools/javadoc/api/basic/APITest.java Thu May 17 08:41:01 2018 -0700 +++ b/test/langtools/tools/javadoc/api/basic/APITest.java Thu May 17 12:59:53 2018 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2018, 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 @@ -191,7 +191,9 @@ */ protected static Set standardExpectFiles = new HashSet<>(Arrays.asList( "allclasses-frame.html", + "allclasses-index.html", "allclasses-noframe.html", + "allpackages-index.html", "constant-values.html", "deprecated-list.html", "help-doc.html", @@ -245,7 +247,8 @@ protected static Set noIndexFiles = standardExpectFiles.stream() .filter(s -> !s.startsWith("jquery") && !s.startsWith("resources") && !s.endsWith("zip") - && !s.equals("index-all.html") && !s.equals("search.js") && !s.endsWith("-search-index.js")) + && !s.equals("index-all.html") && !s.equals("search.js") && !s.endsWith("-search-index.js") + && !s.equals("allclasses-index.html") && !s.equals("allpackages-index.html")) .collect(Collectors.toSet()); }