8215599: Remove support for javadoc "frames" mode

Reviewed-by: jjg
This commit is contained in:
Priya Lakshmi Muthuswamy 2019-04-01 12:44:23 +05:30
parent 0eadf53694
commit 2ace3e69e6
95 changed files with 162 additions and 3619 deletions

View File

@ -44,9 +44,7 @@ import jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException;
import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
/**
* Abstract class to generate the module overview files in
* Frame and Non-Frame format. This will be sub-classed to
* generate module-overview-frame.html as well as module-overview-summary.html.
* Abstract class to generate the module overview files.
*
* <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk.
@ -118,19 +116,16 @@ public abstract class AbstractModuleIndexWriter extends HtmlDocletWriter {
String tableSummary, Content main, ModuleElement mdle);
/**
* Generate and prints the contents in the module index file. Call appropriate
* methods from the sub-class in order to generate Frame or Non
* Frame format.
* Generate and prints the contents in the module index file.
*
* @param title the title of the window
* @param description the content for the description META tag
* @param includeScript boolean set true if windowtitle script is to be included
* @throws DocFileIOException if there is a problem building the module index file
*/
protected void buildModuleIndexFile(String title, String description, boolean includeScript)
protected void buildModuleIndexFile(String title, String description)
throws DocFileIOException {
String windowOverview = resources.getText(title);
Content body = getBody(includeScript, getWindowTitle(windowOverview));
Content body = getBody(getWindowTitle(windowOverview));
Content header = HtmlTree.HEADER();
addNavigationBarHeader(header);
Content main = HtmlTree.MAIN();
@ -149,20 +144,17 @@ public abstract class AbstractModuleIndexWriter extends HtmlDocletWriter {
}
/**
* Generate and prints the contents in the module packages index file. Call appropriate
* methods from the sub-class in order to generate Frame or Non
* Frame format.
* Generate and prints the contents in the module packages index file.
*
* @param title the title of the window.
* @param description the content for the description META tag
* @param includeScript boolean set true if windowtitle script is to be included
* @param mdle the name of the module being documented
* @throws DocFileIOException if there is an exception building the module packages index file
*/
protected void buildModulePackagesIndexFile(String title, String description,
boolean includeScript, ModuleElement mdle) throws DocFileIOException {
ModuleElement mdle) throws DocFileIOException {
String windowOverview = resources.getText(title);
Content body = getBody(includeScript, getWindowTitle(windowOverview));
Content body = getBody(getWindowTitle(windowOverview));
Content header = HtmlTree.HEADER();
addNavigationBarHeader(header);
Content main = HtmlTree.MAIN();
@ -188,7 +180,7 @@ public abstract class AbstractModuleIndexWriter extends HtmlDocletWriter {
protected void addOverview(Content main) { }
/**
* Adds the frame or non-frame module index to the documentation tree.
* Adds the module index to the documentation tree.
*
* @param header the document tree to which the navigational links will be added
* @param main the document tree to which the modules list will be added
@ -201,7 +193,7 @@ public abstract class AbstractModuleIndexWriter extends HtmlDocletWriter {
}
/**
* Adds the frame or non-frame module packages index to the documentation tree.
* Adds the module packages index to the documentation tree.
*
* @param header the document tree to which the navigational links will be added
* @param main the document tree to which the module packages list will be added
@ -226,13 +218,6 @@ public abstract class AbstractModuleIndexWriter extends HtmlDocletWriter {
*/
protected void addIndexContents(Collection<ModuleElement> modules, String text,
String tableSummary, Content header, Content main) {
HtmlTree htmlTree = HtmlTree.NAV();
htmlTree.setStyle(HtmlStyle.indexNav);
HtmlTree ul = new HtmlTree(HtmlTag.UL);
addAllClassesLink(ul);
addAllPackagesLink(ul);
htmlTree.add(ul);
header.add(htmlTree);
addModulesList(main);
}
@ -248,14 +233,6 @@ public abstract class AbstractModuleIndexWriter extends HtmlDocletWriter {
*/
protected void addModulePackagesIndexContents(String text,
String tableSummary, Content header, Content main, ModuleElement mdle) {
HtmlTree htmlTree = HtmlTree.NAV();
htmlTree.setStyle(HtmlStyle.indexNav);
HtmlTree ul = new HtmlTree(HtmlTag.UL);
addAllClassesLink(ul);
addAllPackagesLink(ul);
addAllModulesLink(ul);
htmlTree.add(ul);
header.add(htmlTree);
addModulePackagesList(modules, text, tableSummary, main, mdle);
}
@ -273,25 +250,4 @@ public abstract class AbstractModuleIndexWriter extends HtmlDocletWriter {
body.add(div);
}
}
/**
* Do nothing. This will be overridden in ModuleIndexFrameWriter.
*
* @param div the document tree to which the all classes link will be added
*/
protected void addAllClassesLink(Content div) { }
/**
* Do nothing. This will be overridden in ModuleIndexFrameWriter.
*
* @param div the document tree to which the all packages link will be added
*/
protected void addAllPackagesLink(Content div) { }
/**
* Do nothing. This will be overridden in ModulePackageIndexFrameWriter.
*
* @param div the document tree to which the all modules link will be added
*/
protected void addAllModulesLink(Content div) { }
}

View File

@ -40,9 +40,8 @@ import jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException;
import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
/**
* Abstract class to generate the overview files in
* Frame and Non-Frame format. This will be sub-classed by to
* generate overview-frame.html as well as overview-summary.html.
* Abstract class to generate the overview files. This will be sub-classed to
* generate overview-summary.html.
*
* <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk.
@ -103,19 +102,16 @@ public abstract class AbstractPackageIndexWriter extends HtmlDocletWriter {
protected abstract void addPackagesList(Content main);
/**
* Generate and prints the contents in the package index file. Call appropriate
* methods from the sub-class in order to generate Frame or Non
* Frame format.
* Generate and prints the contents in the package index file.
*
* @param title the title of the window
* @param description the content for the description META tag
* @param includeScript boolean set true if windowtitle script is to be included
* @throws DocFileIOException if there is a problem building the package index file
*/
protected void buildPackageIndexFile(String title, String description, boolean includeScript)
protected void buildPackageIndexFile(String title, String description)
throws DocFileIOException {
String windowOverview = resources.getText(title);
Content body = getBody(includeScript, getWindowTitle(windowOverview));
Content body = getBody(getWindowTitle(windowOverview));
Content header = HtmlTree.HEADER();
addNavigationBarHeader(header);
Content main = HtmlTree.MAIN();
@ -140,7 +136,7 @@ public abstract class AbstractPackageIndexWriter extends HtmlDocletWriter {
protected void addOverview(Content main) { }
/**
* Adds the frame or non-frame package index to the documentation tree.
* Adds the package index to the documentation tree.
*
* @param header the document tree to which the navigation links will be added
* @param main the document tree to which the packages list will be added

View File

@ -1,169 +0,0 @@
/*
* Copyright (c) 1998, 2019, 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.Element;
import javax.lang.model.element.TypeElement;
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.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. This page will be
* used in the left-hand bottom frame, when "All Classes" link is clicked in
* the left-hand top frame. The name of the generated file is
* "allclasses-frame.html".
*
* <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk.
* This code and its internal interfaces are subject to change or
* deletion without notice.</b>
*
* @author Atul M Dambalkar
* @author Doug Kramer
* @author Bhavesh Patel (Modified)
*/
public class AllClassesFrameWriter extends HtmlDocletWriter {
/**
* Index of all the classes.
*/
protected IndexBuilder indexbuilder;
/**
* BR tag to be used within a document tree.
*/
final HtmlTree BR = new HtmlTree(HtmlTag.BR);
/**
* 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 AllClassesFrameWriter(HtmlConfiguration configuration,
DocPath filename, IndexBuilder indexbuilder) {
super(configuration, filename);
this.indexbuilder = indexbuilder;
}
/**
* Create AllClassesFrameWriter object. Then use it to generate the
* "allclasses-frame.html" file. Generate the file in the current or the
* destination directory.
*
* @param configuration the configuration for this javadoc run
* @throws DocFileIOException
*/
public static void generate(HtmlConfiguration configuration,
IndexBuilder indexBuilder) throws DocFileIOException {
if (configuration.frames) {
generate(configuration, indexBuilder, DocPaths.ALLCLASSES_FRAME, true);
}
}
private static void generate(HtmlConfiguration configuration, IndexBuilder indexBuilder,
DocPath fileName, boolean wantFrames) throws DocFileIOException {
AllClassesFrameWriter allclassgen = new AllClassesFrameWriter(configuration,
fileName, indexBuilder);
allclassgen.buildAllClassesFile(wantFrames);
allclassgen = new AllClassesFrameWriter(configuration,
fileName, indexBuilder);
}
/**
* Print all the classes in the file.
* @param wantFrames True if we want frames.
*/
protected void buildAllClassesFile(boolean wantFrames) throws DocFileIOException {
String label = resources.getText("doclet.All_Classes");
Content body = getBody(false, getWindowTitle(label));
Content htmlTree = HtmlTree.MAIN();
Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING,
HtmlStyle.bar, contents.allClassesLabel);
htmlTree.add(heading);
Content ul = new HtmlTree(HtmlTag.UL);
// Generate the class links and add it to the tdFont tree.
addAllClasses(ul, wantFrames);
HtmlTree div = HtmlTree.DIV(HtmlStyle.indexContainer, ul);
htmlTree.add(div);
body.add(htmlTree);
printHtmlDocument(null, "all classes (frame)", body);
}
/**
* Use the sorted index of all the classes and add all the classes to the
* content list.
*
* @param content HtmlTree content to which all classes information will be added
* @param wantFrames True if we want frames.
*/
protected void addAllClasses(Content content, boolean wantFrames) {
for (Character unicode : indexbuilder.index()) {
addContents(indexbuilder.getMemberList(unicode), wantFrames, content);
}
}
/**
* Given a list of classes, generate links for each class or interface.
* If the class kind is interface, print it in the italics font. Also all
* links should target the right-hand frame. If clicked on any class name
* in this page, appropriate class page should get opened in the right-hand
* frame.
*
* @param classlist Sorted list of classes.
* @param wantFrames True if we want frames.
* @param content HtmlTree content to which the links will be added
*/
protected void addContents(Iterable<? extends Element> classlist, boolean wantFrames,
Content content) {
for (Element element : classlist) {
TypeElement typeElement = (TypeElement)element;
if (!utils.isCoreClass(typeElement)) {
continue;
}
Content label = interfaceName(typeElement, false);
Content linkContent;
if (wantFrames) {
linkContent = getLink(new LinkInfoImpl(configuration,
LinkInfoImpl.Kind.ALL_CLASSES_FRAME, typeElement).label(label).target("classFrame"));
} else {
linkContent = getLink(new LinkInfoImpl(configuration, LinkInfoImpl.Kind.DEFAULT, typeElement).label(label));
}
Content li = HtmlTree.LI(linkContent);
content.add(li);
}
}
}

View File

@ -63,7 +63,7 @@ public class AllClassesIndexWriter extends HtmlDocletWriter {
private final Navigation navBar;
/**
* Construct AllClassesFrameWriter object. Also initializes the indexbuilder variable in this
* Construct AllClassesIndexWriter object. Also initializes the indexbuilder variable in this
* class.
*
* @param configuration The current configuration
@ -101,7 +101,7 @@ public class AllClassesIndexWriter extends HtmlDocletWriter {
*/
protected void buildAllClassesFile() throws DocFileIOException {
String label = resources.getText("doclet.All_Classes");
HtmlTree bodyTree = getBody(true, getWindowTitle(label));
HtmlTree bodyTree = getBody(getWindowTitle(label));
HtmlTree header = HtmlTree.HEADER();
addTop(header);
navBar.setUserHeader(getUserHeaderFooter(true));

View File

@ -83,7 +83,7 @@ public class AllPackagesIndexWriter extends HtmlDocletWriter {
*/
protected void buildAllPackagesFile() throws DocFileIOException {
String label = resources.getText("doclet.All_Packages");
HtmlTree bodyTree = getBody(true, getWindowTitle(label));
HtmlTree bodyTree = getBody(getWindowTitle(label));
HtmlTree header = HtmlTree.HEADER();
addTop(header);
navBar.setUserHeader(getUserHeaderFooter(true));

View File

@ -84,7 +84,7 @@ public class AnnotationTypeWriterImpl extends SubWriterHolderWriter
*/
@Override
public Content getHeader(String header) {
HtmlTree bodyTree = getBody(true, getWindowTitle(utils.getSimpleName(annotationType)));
HtmlTree bodyTree = getBody(getWindowTitle(utils.getSimpleName(annotationType)));
HtmlTree htmlTree = HtmlTree.HEADER();
addTop(htmlTree);
Content linkContent = getModuleLink(utils.elementUtils.getModuleOf(annotationType),

View File

@ -434,7 +434,7 @@ public class ClassUseWriter extends SubWriterHolderWriter {
String clname = utils.getFullyQualifiedName(typeElement);
String title = resources.getText("doclet.Window_ClassUse_Header",
cltype, clname);
HtmlTree bodyTree = getBody(true, getWindowTitle(title));
HtmlTree bodyTree = getBody(getWindowTitle(title));
HtmlTree htmlTree = HtmlTree.HEADER();
addTop(htmlTree);
Content mdleLinkContent = getModuleLink(utils.elementUtils.getModuleOf(typeElement),

View File

@ -105,7 +105,7 @@ public class ClassWriterImpl extends SubWriterHolderWriter implements ClassWrite
*/
@Override
public Content getHeader(String header) {
HtmlTree bodyTree = getBody(true, getWindowTitle(utils.getSimpleName(typeElement)));
HtmlTree bodyTree = getBody(getWindowTitle(utils.getSimpleName(typeElement)));
HtmlTree htmlTree = HtmlTree.HEADER();
addTop(htmlTree);
Content linkContent = getModuleLink(utils.elementUtils.getModuleOf(typeElement),

View File

@ -105,7 +105,7 @@ public class ConstantsSummaryWriterImpl extends HtmlDocletWriter implements Cons
@Override
public Content getHeader() {
String label = resources.getText("doclet.Constants_Summary");
HtmlTree bodyTree = getBody(true, getWindowTitle(label));
HtmlTree bodyTree = getBody(getWindowTitle(label));
HtmlTree htmlTree = HtmlTree.HEADER();
addTop(htmlTree);
navBar.setUserHeader(getUserHeaderFooter(true));

View File

@ -369,7 +369,7 @@ public class DeprecatedListWriter extends SubWriterHolderWriter {
*/
public HtmlTree getHeader() {
String title = resources.getText("doclet.Window_Deprecated_List");
HtmlTree bodyTree = getBody(true, getWindowTitle(title));
HtmlTree bodyTree = getBody(getWindowTitle(title));
HtmlTree htmlTree = HtmlTree.HEADER();
addTop(htmlTree);
navBar.setUserHeader(getUserHeaderFooter(true));

View File

@ -179,7 +179,7 @@ public class DocFilesHandlerImpl implements DocFilesHandler {
Content localTagsContent = docletWriter.commentTagsToContent(null, dfElement, localTags, false);
String title = getWindowTitle(docletWriter, dfElement).trim();
HtmlTree htmlContent = docletWriter.getBody(true, title);
HtmlTree htmlContent = docletWriter.getBody(title);
docletWriter.addTop(htmlContent);
PackageElement pkg = (PackageElement) element;
this.navBar = new Navigation(pkg, configuration, docletWriter.fixedNavDiv,

View File

@ -1,272 +0,0 @@
/*
* Copyright (c) 1997, 2019, 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 jdk.javadoc.internal.doclets.formats.html.markup.Head;
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlAttr;
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlDocument;
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.Script;
import jdk.javadoc.internal.doclets.toolkit.Content;
import jdk.javadoc.internal.doclets.toolkit.util.DocFile;
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 documentation in the Html "frame" format in the browser. The
* generated documentation will have two or three frames depending upon the
* number of packages on the command line. In general there will be three frames
* in the output, a left-hand top frame will have a list of all packages with
* links to target left-hand bottom frame. The left-hand bottom frame will have
* the particular package contents or the all-classes list, where as the single
* right-hand frame will have overview or package summary or class file. Also
* take care of browsers which do not support Html frames.
*
* <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk.
* This code and its internal interfaces are subject to change or
* deletion without notice.</b>
*
* @author Atul M Dambalkar
*/
public class FrameOutputWriter extends HtmlDocletWriter {
/**
* Number of packages specified on the command line.
*/
int noOfPackages;
/**
* Constructor to construct FrameOutputWriter object.
*
* @param configuration for this run
* @param filename File to be generated.
*/
public FrameOutputWriter(HtmlConfiguration configuration, DocPath filename) {
super(configuration, filename);
noOfPackages = configuration.packages.size();
}
/**
* Construct FrameOutputWriter object and then use it to generate the Html
* file which will have the description of all the frames in the
* documentation. The name of the generated file is "index.html" which is
* the default first file for Html documents.
* @param configuration the configuration for this doclet
* @throws DocFileIOException if there is a problem generating the frame file
*/
public static void generate(HtmlConfiguration configuration) throws DocFileIOException {
FrameOutputWriter framegen = new FrameOutputWriter(configuration, DocPaths.INDEX);
framegen.generateFrameFile();
}
/**
* Generate the constants in the "index.html" file. Print the frame details
* as well as warning if browser is not supporting the Html frames.
* @throws DocFileIOException if there is a problem generating the frame file
*/
protected void generateFrameFile() throws DocFileIOException {
Content frame = getFrameDetails();
HtmlTree body = new HtmlTree(HtmlTag.BODY);
body.put(HtmlAttr.CLASS, "frames");
body.put(HtmlAttr.ONLOAD, "loadFrames()");
String topFilePath = configuration.topFile.getPath();
Script script = new Script(
"\nif (targetPage == \"\" || targetPage == \"undefined\")\n" +
" window.location.replace(")
.appendStringLiteral(topFilePath, '\'')
.append(");\n");
body.add(script.asContent());
Content noScript = HtmlTree.NOSCRIPT(contents.noScriptMessage);
body.add(noScript);
HtmlTree main = HtmlTree.MAIN(frame);
body.add(main);
if (configuration.windowtitle.length() > 0) {
printFramesDocument(configuration.windowtitle, body);
} else {
printFramesDocument(resources.getText("doclet.Generated_Docs_Untitled"), body);
}
}
/**
* Print the frames version of the Html file header.
* Called only when generating an HTML frames file.
*
* @param title Title of this HTML document
* @param body the body content tree to be added to the HTML document
* @throws DocFileIOException if there is an error writing the frames document
*/
private void printFramesDocument(String title, HtmlTree body) throws DocFileIOException {
Content htmlComment = contents.newPage;
Head head = new Head(path, configuration.docletVersion)
.setTimestamp(!configuration.notimestamp)
.setTitle(title)
.setDescription("frames")
.setGenerator(getGenerator(getClass()))
.setCharset(configuration.charset)
.setStylesheets(configuration.getMainStylesheet(), configuration.getAdditionalStylesheets())
.addDefaultScript(false)
.addScript(getFramesScript());
Content htmlTree = HtmlTree.HTML(configuration.getLocale().getLanguage(), head.toContent(), body);
HtmlDocument htmlDocument = new HtmlDocument(htmlComment, htmlTree);
htmlDocument.write(DocFile.createFileForOutput(configuration, path));
}
/**
* Get the frame sizes and their contents.
*
* @return a content tree for the frame details
*/
protected Content getFrameDetails() {
HtmlTree leftContainerDiv = new HtmlTree(HtmlTag.DIV);
HtmlTree rightContainerDiv = new HtmlTree(HtmlTag.DIV);
leftContainerDiv.setStyle(HtmlStyle.leftContainer);
rightContainerDiv.setStyle(HtmlStyle.rightContainer);
if (configuration.showModules && configuration.modules.size() > 1) {
addAllModulesFrameTag(leftContainerDiv);
} else if (noOfPackages > 1) {
addAllPackagesFrameTag(leftContainerDiv);
}
addAllClassesFrameTag(leftContainerDiv);
addClassFrameTag(rightContainerDiv);
HtmlTree mainContainer = HtmlTree.DIV(HtmlStyle.mainContainer, leftContainerDiv);
mainContainer.add(rightContainerDiv);
return mainContainer;
}
/**
* Add the IFRAME tag for the frame that lists all modules.
*
* @param contentTree to which the information will be added
*/
private void addAllModulesFrameTag(Content contentTree) {
HtmlTree frame = HtmlTree.IFRAME(DocPaths.MODULE_OVERVIEW_FRAME.getPath(),
"packageListFrame", resources.getText("doclet.All_Modules"));
HtmlTree leftTop = HtmlTree.DIV(HtmlStyle.leftTop, frame);
contentTree.add(leftTop);
}
/**
* Add the IFRAME tag for the frame that lists all packages.
*
* @param contentTree the content tree to which the information will be added
*/
private void addAllPackagesFrameTag(Content contentTree) {
HtmlTree frame = HtmlTree.IFRAME(DocPaths.OVERVIEW_FRAME.getPath(),
"packageListFrame", resources.getText("doclet.All_Packages"));
HtmlTree leftTop = HtmlTree.DIV(HtmlStyle.leftTop, frame);
contentTree.add(leftTop);
}
/**
* Add the IFRAME tag for the frame that lists all classes.
*
* @param contentTree the content tree to which the information will be added
*/
private void addAllClassesFrameTag(Content contentTree) {
HtmlTree frame = HtmlTree.IFRAME(DocPaths.ALLCLASSES_FRAME.getPath(),
"packageFrame", resources.getText("doclet.All_classes_and_interfaces"));
HtmlTree leftBottom = HtmlTree.DIV(HtmlStyle.leftBottom, frame);
contentTree.add(leftBottom);
}
/**
* Add the IFRAME tag for the frame that describes the class in detail.
*
* @param contentTree the content tree to which the information will be added
*/
private void addClassFrameTag(Content contentTree) {
HtmlTree frame = HtmlTree.IFRAME(configuration.topFile.getPath(), "classFrame",
resources.getText("doclet.Package_class_and_interface_descriptions"));
frame.setStyle(HtmlStyle.rightIframe);
contentTree.add(frame);
}
/**
* Returns a content tree for the SCRIPT tag for the main page(index.html).
*
* @return a content for the SCRIPT tag
*/
protected Script getFramesScript() {
return new Script("\n" +
" tmpTargetPage = \"\" + window.location.search;\n" +
" if (tmpTargetPage != \"\" && tmpTargetPage != \"undefined\")\n" +
" tmpTargetPage = tmpTargetPage.substring(1);\n" +
" if (tmpTargetPage.indexOf(\":\") != -1 || (tmpTargetPage != \"\" && !validURL(tmpTargetPage)))\n" +
" tmpTargetPage = \"undefined\";\n" +
" targetPage = tmpTargetPage;\n" +
" function validURL(url) {\n" +
" try {\n" +
" url = decodeURIComponent(url);\n" +
" }\n" +
" catch (error) {\n" +
" return false;\n" +
" }\n" +
" var pos = url.indexOf(\".html\");\n" +
" if (pos == -1 || pos != url.length - 5)\n" +
" return false;\n" +
" var allowNumber = false;\n" +
" var allowSep = false;\n" +
" var seenDot = false;\n" +
" for (var i = 0; i < url.length - 5; i++) {\n" +
" var ch = url.charAt(i);\n" +
" if ('a' <= ch && ch <= 'z' ||\n" +
" 'A' <= ch && ch <= 'Z' ||\n" +
" ch == '$' ||\n" +
" ch == '_' ||\n" +
" ch.charCodeAt(0) > 127) {\n" +
" allowNumber = true;\n" +
" allowSep = true;\n" +
" } else if ('0' <= ch && ch <= '9'\n" +
" || ch == '-') {\n" +
" if (!allowNumber)\n" +
" return false;\n" +
" } else if (ch == '/' || ch == '.') {\n" +
" if (!allowSep)\n" +
" return false;\n" +
" allowNumber = false;\n" +
" allowSep = false;\n" +
" if (ch == '.')\n" +
" seenDot = true;\n" +
" if (ch == '/' && seenDot)\n" +
" return false;\n" +
" } else {\n" +
" return false;\n" +
" }\n" +
" }\n" +
" return true;\n" +
" }\n" +
" function loadFrames() {\n" +
" if (targetPage != \"\" && targetPage != \"undefined\")\n" +
" top.classFrame.location = top.targetPage;\n" +
" }\n");
}
}

View File

@ -87,7 +87,7 @@ public class HelpWriter extends HtmlDocletWriter {
*/
protected void generateHelpFile() throws DocFileIOException {
String title = resources.getText("doclet.Window_Help_title");
HtmlTree body = getBody(true, getWindowTitle(title));
HtmlTree body = getBody(getWindowTitle(title));
HtmlTree htmlTree = HtmlTree.HEADER();
addTop(htmlTree);
navBar.setUserHeader(getUserHeaderFooter(true));
@ -132,8 +132,7 @@ public class HelpWriter extends HtmlDocletWriter {
? "doclet.help.overview.modules.body"
: "doclet.help.overview.packages.body";
Content overviewLink = links.createLink(
DocPaths.overviewSummary(configuration.frames),
resources.getText("doclet.Overview"));
DocPaths.INDEX, resources.getText("doclet.Overview"));
Content overviewBody = contents.getContent(overviewKey, overviewLink);
Content overviewPara = HtmlTree.P(overviewBody);
htmlTree.add(overviewPara);
@ -299,18 +298,6 @@ public class HelpWriter extends HtmlDocletWriter {
ul.add(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
}
// Frames
if (configuration.frames) {
Content frameHead = HtmlTree.HEADING(Headings.CONTENT_HEADING,
contents.getContent("doclet.help.frames.head"));
htmlTree = HtmlTree.SECTION(frameHead);
Content framesBody = contents.getContent("doclet.help.frames.body");
Content framePara = HtmlTree.P(framesBody);
htmlTree.add(framePara);
ul.add(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
}
// Serialized Form
Content sHead = HtmlTree.HEADING(Headings.CONTENT_HEADING,
contents.serializedForm);

View File

@ -196,12 +196,6 @@ public class HtmlConfiguration extends BaseConfiguration {
*/
public boolean createoverview = false;
/**
* Specifies whether or not frames should be generated.
* Defaults to false; can be set to true by --frames; can be set to false by --no-frames; last one wins.
*/
public boolean frames = false;
/**
* Collected set of doclint options
*/
@ -375,7 +369,7 @@ public class HtmlConfiguration extends BaseConfiguration {
return;
}
if (createoverview) {
topFile = DocPaths.overviewSummary(frames);
topFile = DocPaths.INDEX;
} else {
if (showModules) {
topFile = DocPath.empty.resolve(docPaths.moduleSummary(modules.first()));
@ -640,21 +634,6 @@ public class HtmlConfiguration extends BaseConfiguration {
return true;
}
},
new Option(resources, "--frames") {
@Override
public boolean process(String opt, List<String> args) {
reporter.print(WARNING, resources.getText("doclet.Frames_specified", helpfile));
frames = true;
return true;
}
},
new Option(resources, "--no-frames") {
@Override
public boolean process(String opt, List<String> args) {
frames = false;
return true;
}
},
new Hidden(resources, "-packagesheader", 1) {
@Override
public boolean process(String opt, List<String> args) {
@ -749,6 +728,13 @@ public class HtmlConfiguration extends BaseConfiguration {
}
return true;
}
},
new XOption(resources, "--no-frames") {
@Override
public boolean process(String opt, List<String> args) {
reporter.print(WARNING, resources.getText("doclet.NoFrames_specified"));
return true;
}
}
};
Set<Doclet.Option> oset = new TreeSet<>();

View File

@ -144,13 +144,6 @@ public class HtmlDoclet extends AbstractDoclet {
DeprecatedListWriter.generate(configuration);
}
AllClassesFrameWriter.generate(configuration,
new IndexBuilder(configuration, nodeprecated, true));
if (configuration.frames) {
FrameOutputWriter.generate(configuration);
}
if (configuration.createoverview) {
if (configuration.showModules) {
ModuleIndexWriter.generate(configuration);
@ -173,12 +166,10 @@ public class HtmlDoclet extends AbstractDoclet {
}
}
if (!configuration.frames) {
if (configuration.createoverview) {
IndexRedirectWriter.generate(configuration, DocPaths.OVERVIEW_SUMMARY, DocPaths.INDEX);
} else {
IndexRedirectWriter.generate(configuration);
}
if (configuration.createoverview) {
IndexRedirectWriter.generate(configuration, DocPaths.OVERVIEW_SUMMARY, DocPaths.INDEX);
} else {
IndexRedirectWriter.generate(configuration);
}
if (configuration.helpfile.isEmpty() && !configuration.nohelp) {
@ -273,15 +264,8 @@ public class HtmlDoclet extends AbstractDoclet {
@Override // defined by AbstractDoclet
protected void generateModuleFiles() throws DocletException {
if (configuration.showModules) {
if (configuration.frames && configuration.modules.size() > 1) {
ModuleIndexFrameWriter.generate(configuration);
}
List<ModuleElement> mdles = new ArrayList<>(configuration.modulePackages.keySet());
for (ModuleElement mdle : mdles) {
if (configuration.frames && configuration.modules.size() > 1) {
ModulePackageIndexFrameWriter.generate(configuration, mdle);
ModuleFrameWriter.generate(configuration, mdle);
}
AbstractBuilder moduleSummaryBuilder =
configuration.getBuilderFactory().getModuleSummaryBuilder(mdle);
moduleSummaryBuilder.build();
@ -295,18 +279,12 @@ public class HtmlDoclet extends AbstractDoclet {
@Override // defined by AbstractDoclet
protected void generatePackageFiles(ClassTree classtree) throws DocletException {
Set<PackageElement> packages = configuration.packages;
if (packages.size() > 1 && configuration.frames) {
PackageIndexFrameWriter.generate(configuration);
}
List<PackageElement> pList = new ArrayList<>(packages);
for (PackageElement pkg : pList) {
// if -nodeprecated option is set and the package is marked as
// deprecated, do not generate the package-summary.html, package-frame.html
// and package-tree.html pages for that package.
if (!(configuration.nodeprecated && utils.isDeprecated(pkg))) {
if (configuration.frames) {
PackageFrameWriter.generate(configuration, pkg);
}
AbstractBuilder packageSummaryBuilder =
configuration.getBuilderFactory().getPackageSummaryBuilder(pkg);
packageSummaryBuilder.build();

View File

@ -202,6 +202,7 @@ public class HtmlDocletWriter {
this.pathToRoot = path.parent().invert();
this.filename = path.basename();
this.docPaths = configuration.docPaths;
this.mainBodyScript = new Script();
messages.notice("doclet.Generating_0",
DocFile.createFileForOutput(configuration, path).getPath());
@ -374,47 +375,6 @@ public class HtmlDocletWriter {
return new TagletWriterImpl(this, isFirstSentence, inSummary);
}
/**
* Get Package link, with target frame.
*
* @param pkg The link will be to the "package-summary.html" page for this package
* @param target name of the target frame
* @param label tag for the link
* @return a content for the target package link
*/
public Content getTargetPackageLink(PackageElement pkg, String target,
Content label) {
return links.createLink(pathString(pkg, DocPaths.PACKAGE_SUMMARY), label, "", target);
}
/**
* Get Module Package link, with target frame.
*
* @param pkg the PackageElement
* @param target name of the target frame
* @param label tag for the link
* @param mdle the module being documented
* @return a content for the target module packages link
*/
public Content getTargetModulePackageLink(PackageElement pkg, String target,
Content label, ModuleElement mdle) {
return links.createLink(pathString(pkg, DocPaths.PACKAGE_SUMMARY),
label, "", target);
}
/**
* Get Module link, with target frame.
*
* @param target name of the target frame
* @param label tag for the link
* @param mdle the module being documented
* @return a content for the target module link
*/
public Content getTargetModuleLink(String target, Content label, ModuleElement mdle) {
return links.createLink(pathToRoot.resolve(
docPaths.moduleSummary(mdle)), label, "", target);
}
/**
* Generates the HTML document tree and prints it out.
*
@ -2190,24 +2150,19 @@ public class HtmlDocletWriter {
/**
* Returns an HtmlTree for the BODY tag.
*
* @param includeScript set true if printing windowtitle script
* @param title title for the window
* @return an HtmlTree for the BODY tag
*/
public HtmlTree getBody(boolean includeScript, String title) {
public HtmlTree getBody(String title) {
HtmlTree body = new HtmlTree(HtmlTag.BODY);
body.put(HtmlAttr.CLASS, getBodyClass());
// Set window title string which is later printed
this.winTitle = title;
// Don't print windowtitle script for overview-frame, allclasses-frame
// and package-frame
if (includeScript) {
this.mainBodyScript = getWinTitleScript();
body.add(mainBodyScript.asContent());
Content noScript = HtmlTree.NOSCRIPT(HtmlTree.DIV(contents.noScriptMessage));
body.add(noScript);
}
body.add(mainBodyScript.asContent());
Content noScript = HtmlTree.NOSCRIPT(HtmlTree.DIV(contents.noScriptMessage));
body.add(noScript);
return body;
}

View File

@ -75,7 +75,7 @@ public class IndexRedirectWriter extends HtmlDocletWriter {
private void generateIndexFile() throws DocFileIOException {
Content htmlComment = contents.newPage;
Head head = new Head(path, configuration.docletVersion)
.setTimestamp(true)
.setTimestamp(!configuration.notimestamp)
.setDescription("index redirect")
.setGenerator(getGenerator(getClass()))
.setStylesheets(configuration.getMainStylesheet(), Collections.emptyList()) // avoid reference to default stylesheet

View File

@ -1,191 +0,0 @@
/*
* Copyright (c) 2016, 2019, 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.*;
import javax.lang.model.element.ModuleElement;
import javax.lang.model.element.PackageElement;
import javax.lang.model.element.TypeElement;
import javax.lang.model.util.ElementFilter;
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.StringContent;
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;
/**
* Class to generate file for each module contents in the left-hand bottom
* frame. This will list all the Class Kinds in the module. A click on any
* class-kind will update the right-hand frame with the clicked class-kind page.
*
* <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk.
* This code and its internal interfaces are subject to change or
* deletion without notice.</b>
*
* @author Bhavesh Patel
*/
public class ModuleFrameWriter extends HtmlDocletWriter {
/**
* The module being documented.
*/
private final ModuleElement mdle;
/**
* The classes to be documented. Use this to filter out classes
* that will not be documented.
*/
private SortedSet<TypeElement> documentedClasses;
/**
* Constructor to construct ModuleFrameWriter object and to generate
* "module_name-type-frame.html" file. For example for module "java.base" this will generate file
* "java.base-type-frame.html" file.
*
* @param configuration the configuration of the doclet.
* @param moduleElement moduleElement under consideration.
*/
public ModuleFrameWriter(HtmlConfiguration configuration, ModuleElement moduleElement) {
super(configuration, configuration.docPaths.moduleTypeFrame(moduleElement));
this.mdle = moduleElement;
if (configuration.getSpecifiedPackageElements().isEmpty()) {
documentedClasses = new TreeSet<>(utils.makeGeneralPurposeComparator());
documentedClasses.addAll(configuration.getIncludedTypeElements());
}
}
/**
* Generate a module type summary page for the left-hand bottom frame.
*
* @param configuration the current configuration of the doclet.
* @param moduleElement The package for which "module_name-type-frame.html" is to be generated.
* @throws DocFileIOException if there is a problem generating the module summary file
*/
public static void generate(HtmlConfiguration configuration, ModuleElement moduleElement)
throws DocFileIOException {
ModuleFrameWriter mdlgen = new ModuleFrameWriter(configuration, moduleElement);
String mdlName = moduleElement.getQualifiedName().toString();
Content mdlLabel = new StringContent(mdlName);
HtmlTree body = mdlgen.getBody(false, mdlgen.getWindowTitle(mdlName));
HtmlTree htmlTree = HtmlTree.MAIN();
DocPath moduleSummary = configuration.useModuleDirectories
? DocPaths.DOT_DOT.resolve(configuration.docPaths.moduleSummary(moduleElement))
: configuration.docPaths.moduleSummary(moduleElement);
Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, HtmlStyle.bar,
mdlgen.links.createLink(moduleSummary, mdlLabel, "", "classFrame"));
htmlTree.add(heading);
HtmlTree div = new HtmlTree(HtmlTag.DIV);
div.setStyle(HtmlStyle.indexContainer);
mdlgen.addClassListing(div);
htmlTree.add(div);
body.add(htmlTree);
mdlgen.printHtmlDocument(
configuration.metakeywords.getMetaKeywordsForModule(moduleElement),
"module summary (frame)",
body);
}
/**
* Add class listing for all the classes in this module. Divide class
* listing as per the class kind and generate separate listing for
* Classes, Interfaces, Exceptions and Errors.
*
* @param contentTree the content tree to which the listing will be added
*/
protected void addClassListing(HtmlTree contentTree) {
List<PackageElement> packagesIn = ElementFilter.packagesIn(mdle.getEnclosedElements());
SortedSet<TypeElement> interfaces = new TreeSet<>(utils.makeGeneralPurposeComparator());
SortedSet<TypeElement> classes = new TreeSet<>(utils.makeGeneralPurposeComparator());
SortedSet<TypeElement> enums = new TreeSet<>(utils.makeGeneralPurposeComparator());
SortedSet<TypeElement> exceptions = new TreeSet<>(utils.makeGeneralPurposeComparator());
SortedSet<TypeElement> errors = new TreeSet<>(utils.makeGeneralPurposeComparator());
SortedSet<TypeElement> annotationTypes = new TreeSet<>(utils.makeGeneralPurposeComparator());
for (PackageElement pkg : packagesIn) {
if (utils.isIncluded(pkg)) {
interfaces.addAll(utils.getInterfaces(pkg));
classes.addAll(utils.getOrdinaryClasses(pkg));
enums.addAll(utils.getEnums(pkg));
exceptions.addAll(utils.getExceptions(pkg));
errors.addAll(utils.getErrors(pkg));
annotationTypes.addAll(utils.getAnnotationTypes(pkg));
}
}
addClassKindListing(interfaces, contents.interfaces, contentTree);
addClassKindListing(classes, contents.classes, contentTree);
addClassKindListing(enums, contents.enums, contentTree);
addClassKindListing(exceptions, contents.exceptions, contentTree);
addClassKindListing(errors, contents.errors, contentTree);
addClassKindListing(annotationTypes, contents.annotationTypes, contentTree);
}
/**
* Add specific class kind listing. Also add label to the listing.
*
* @param list Iterable list of TypeElements
* @param labelContent content tree of the label to be added
* @param contentTree the content tree to which the class kind listing will be added
*/
protected void addClassKindListing(Iterable<TypeElement> list, Content labelContent,
HtmlTree contentTree) {
SortedSet<TypeElement> tset = utils.filterOutPrivateClasses(list, configuration.javafx);
if (!tset.isEmpty()) {
boolean printedHeader = false;
HtmlTree htmlTree = HtmlTree.SECTION();
HtmlTree ul = new HtmlTree(HtmlTag.UL);
ul.setTitle(labelContent);
for (TypeElement typeElement : tset) {
if (documentedClasses != null && !documentedClasses.contains(typeElement)) {
continue;
}
if (!utils.isCoreClass(typeElement) || !configuration.isGeneratedDoc(typeElement)) {
continue;
}
if (!printedHeader) {
Content heading = HtmlTree.HEADING(Headings.CONTENT_HEADING,
true, labelContent);
htmlTree.add(heading);
printedHeader = true;
}
Content arr_i_name = new StringContent(utils.getSimpleName(typeElement));
if (utils.isInterface(typeElement)) {
arr_i_name = HtmlTree.SPAN(HtmlStyle.interfaceName, arr_i_name);
}
Content link = getLink(new LinkInfoImpl(configuration,
LinkInfoImpl.Kind.ALL_CLASSES_FRAME, typeElement).label(arr_i_name).target("classFrame"));
Content li = HtmlTree.LI(link);
ul.add(li);
}
htmlTree.add(ul);
contentTree.add(htmlTree);
}
}
}

View File

@ -1,189 +0,0 @@
/*
* Copyright (c) 2013, 2019, 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.Map;
import java.util.Set;
import javax.lang.model.element.ModuleElement;
import javax.lang.model.element.PackageElement;
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlAttr;
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.util.DocFileIOException;
import jdk.javadoc.internal.doclets.toolkit.util.DocLink;
import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
/**
* Generate the module index for the left-hand frame in the generated output.
* A click on the module name in this frame will update the page in the top
* left hand frame with the listing of packages of the clicked module.
*
* <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk.
* This code and its internal interfaces are subject to change or
* deletion without notice.</b>
*
* @author Bhavesh Patel
*/
public class ModuleIndexFrameWriter extends AbstractModuleIndexWriter {
/**
* The heading (h1 or h2) to use for the module list,
* set by addNavigationBarHeader depending on whether or not there
* is an additional initial heading.
*/
private HtmlTag moduleListHeading;
/**
* Construct the ModuleIndexFrameWriter object.
*
* @param configuration the configuration object
* @param filename Name of the module index file to be generated.
*/
public ModuleIndexFrameWriter(HtmlConfiguration configuration,
DocPath filename) {
super(configuration, filename);
}
/**
* Generate the module index file named "module-overview-frame.html".
* @throws DocFileIOException
* @param configuration the configuration object
*/
public static void generate(HtmlConfiguration configuration) throws DocFileIOException {
DocPath filename = DocPaths.MODULE_OVERVIEW_FRAME;
ModuleIndexFrameWriter modulegen = new ModuleIndexFrameWriter(configuration, filename);
modulegen.buildModuleIndexFile("doclet.Window_Overview", "module overview (frame)", false);
}
/**
* {@inheritDoc}
*/
@Override
protected void addModulesList(Content main) {
Content heading = HtmlTree.HEADING(moduleListHeading, true,
contents.modulesLabel);
HtmlTree htmlTree = HtmlTree.DIV(HtmlStyle.indexContainer, heading);
HtmlTree ul = new HtmlTree(HtmlTag.UL);
ul.setTitle(contents.modulesLabel);
for (ModuleElement mdle: configuration.modules) {
ul.add(getModuleLink(mdle));
}
htmlTree.add(ul);
main.add(htmlTree);
}
/**
* Returns each module name as a separate link.
*
* @param mdle the module being documented
* @return content for the module link
*/
protected Content getModuleLink(ModuleElement mdle) {
Content moduleLinkContent;
Content mdlLabel = new StringContent(mdle.getQualifiedName());
moduleLinkContent = getModuleFramesHyperLink(mdle, mdlLabel, "packageListFrame");
Content li = HtmlTree.LI(moduleLinkContent);
return li;
}
private Content getModuleFramesHyperLink(ModuleElement mdle, Content label, String target) {
DocLink mdlLink = new DocLink(docPaths.moduleFrame(mdle));
DocLink mtFrameLink = new DocLink(docPaths.moduleTypeFrame(mdle));
DocLink cFrameLink = new DocLink(docPaths.moduleSummary(mdle));
HtmlTree anchor = HtmlTree.A(mdlLink.toString(), label);
String onclickStr = "updateModuleFrame('" + mtFrameLink + "','" + cFrameLink + "');";
anchor.put(HtmlAttr.TARGET, target);
anchor.put(HtmlAttr.ONCLICK, onclickStr);
return anchor;
}
/**
* {@inheritDoc}
*/
protected void addNavigationBarHeader(Content header) {
String headerContent = !configuration.packagesheader.isEmpty() ? configuration.packagesheader
: configuration.header;
if (!headerContent.isEmpty()) {
Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, true,
HtmlStyle.bar, new RawHtml(replaceDocRootDir(headerContent)));
header.add(heading);
moduleListHeading = Headings.IndexFrames.MODULE_HEADING;
} else {
moduleListHeading = Headings.PAGE_TITLE_HEADING;
}
}
/**
* Do nothing as there is no overview information in this page.
*/
protected void addOverviewHeader(Content body) {
}
/**
* Adds "All Classes" link for the top of the left-hand frame page to the
* documentation tree.
*
* @param ul the Content object to which the all classes link should be added
*/
protected void addAllClassesLink(Content ul) {
Content linkContent = links.createLink(DocPaths.ALLCLASSES_FRAME,
contents.allClassesLabel, "", "packageFrame");
Content li = HtmlTree.LI(linkContent);
ul.add(li);
}
/**
* Adds "All Packages" link for the top of the left-hand frame page to the
* documentation tree.
*
* @param ul the Content object to which the all packages link should be added
*/
protected void addAllPackagesLink(Content ul) {
Content linkContent = links.createLink(DocPaths.OVERVIEW_FRAME,
contents.allPackagesLabel, "", "packageListFrame");
Content li = HtmlTree.LI(linkContent);
ul.add(li);
}
/**
* {@inheritDoc}
*/
protected void addNavigationBarFooter(Content footer) {
Content p = HtmlTree.P(Contents.SPACE);
footer.add(p);
}
protected void addModulePackagesList(Map<ModuleElement, Set<PackageElement>> modules, String text,
String tableSummary, Content main, ModuleElement mdle) {
}
}

View File

@ -44,8 +44,7 @@ import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
/**
* Generate the module index page "overview-summary.html" for the right-hand
* frame.
* Generate the module index page "index.html".
*
* <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk.
@ -66,15 +65,15 @@ public class ModuleIndexWriter extends AbstractModuleIndexWriter {
}
/**
* Generate the module index page for the right-hand frame.
* Generate the module index page.
*
* @param configuration the current configuration of the doclet.
* @throws DocFileIOException if there is a problem generating the module index page
*/
public static void generate(HtmlConfiguration configuration) throws DocFileIOException {
DocPath filename = DocPaths.overviewSummary(configuration.frames);
DocPath filename = DocPaths.INDEX;
ModuleIndexWriter mdlgen = new ModuleIndexWriter(configuration, filename);
mdlgen.buildModuleIndexFile("doclet.Window_Overview_Summary", "module index", true);
mdlgen.buildModuleIndexFile("doclet.Window_Overview_Summary", "module index");
}
/**
@ -95,15 +94,6 @@ public class ModuleIndexWriter extends AbstractModuleIndexWriter {
* @param main the document tree to which the modules list will be added
*/
protected void addIndexContents(Content header, Content main) {
HtmlTree htmltree = HtmlTree.NAV();
htmltree.setStyle(HtmlStyle.indexNav);
HtmlTree ul = new HtmlTree(HtmlTag.UL);
addAllClassesLink(ul);
if (configuration.showModules) {
addAllModulesLink(ul);
}
htmltree.add(ul);
header.add(htmltree);
addModulesList(main);
}

View File

@ -1,245 +0,0 @@
/*
* Copyright (c) 2013, 2019, 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 java.util.Map;
import java.util.Set;
import javax.lang.model.element.ModuleElement;
import javax.lang.model.element.PackageElement;
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.util.DocFileIOException;
import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
/**
* Generate the module package index for the left-hand frame in the generated output.
* A click on the package name in this frame will update the page in the bottom
* left hand frame with the listing of contents of the clicked module package.
*
* <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk.
* This code and its internal interfaces are subject to change or
* deletion without notice.</b>
*
* @author Bhavesh Patel
*/
public class ModulePackageIndexFrameWriter extends AbstractModuleIndexWriter {
/**
* The heading (h1 or h2) to use for the module packages list,
* set by addNavigationBarHeader depending on whether or not there
* is an additional initial heading.
*/
private HtmlTag modulePackagesListHeading;
/**
* Construct the ModulePackageIndexFrameWriter object.
*
* @param configuration the configuration object
* @param filename Name of the package index file to be generated.
*/
public ModulePackageIndexFrameWriter(HtmlConfiguration configuration, DocPath filename) {
super(configuration, filename);
}
/**
* Generate the module package index file.
* @throws DocFileIOException
* @param configuration the configuration object
* @param mdle the module being documented
*/
public static void generate(HtmlConfiguration configuration, ModuleElement mdle) throws DocFileIOException {
DocPath filename = configuration.docPaths.moduleFrame(mdle);
ModulePackageIndexFrameWriter modpackgen = new ModulePackageIndexFrameWriter(configuration, filename);
modpackgen.buildModulePackagesIndexFile("doclet.Window_Overview",
getDescription("module package index", mdle) + " (frame)",
false,
mdle);
}
/**
* {@inheritDoc}
*/
protected void addModulePackagesList(Map<ModuleElement, Set<PackageElement>> modules, String text,
String tableSummary, Content main, ModuleElement mdle) {
Content profNameContent = new StringContent(mdle.getQualifiedName().toString());
Content heading = HtmlTree.HEADING(modulePackagesListHeading, true,
getTargetModuleLink("classFrame", profNameContent, mdle));
heading.add(Contents.SPACE);
heading.add(contents.packagesLabel);
HtmlTree htmlTree = HtmlTree.DIV(HtmlStyle.indexContainer, heading);
HtmlTree ul = new HtmlTree(HtmlTag.UL);
ul.setTitle(contents.packagesLabel);
List<PackageElement> packages = new ArrayList<>(modules.get(mdle));
for (PackageElement pkg : packages) {
if ((!(configuration.nodeprecated && utils.isDeprecated(pkg)))) {
ul.add(getPackage(pkg, mdle));
}
}
htmlTree.add(ul);
main.add(htmlTree);
}
/**
* {@inheritDoc}
*/
protected void addModulePackagesList(Set<ModuleElement> modules, String text,
String tableSummary, Content body, ModuleElement mdle) {
Content moduleNameContent = new StringContent(mdle.getQualifiedName().toString());
Content heading = HtmlTree.HEADING(modulePackagesListHeading, true,
getTargetModuleLink("classFrame", moduleNameContent, mdle));
heading.add(Contents.SPACE);
heading.add(contents.packagesLabel);
HtmlTree htmlTree = HtmlTree.MAIN(HtmlStyle.indexContainer, heading);
HtmlTree ul = new HtmlTree(HtmlTag.UL);
ul.setTitle(contents.packagesLabel);
Set<PackageElement> modulePackages = configuration.modulePackages.get(mdle);
for (PackageElement pkg: modulePackages) {
if ((!(configuration.nodeprecated && utils.isDeprecated(pkg)))) {
ul.add(getPackage(pkg, mdle));
}
}
htmlTree.add(ul);
body.add(htmlTree);
}
/**
* Returns each package name as a separate link.
*
* @param pkg PackageElement
* @param mdle the module being documented
* @return content for the package link
*/
protected Content getPackage(PackageElement pkg, ModuleElement mdle) {
Content packageLinkContent;
Content pkgLabel;
if (!pkg.isUnnamed()) {
pkgLabel = getPackageLabel(utils.getPackageName(pkg));
packageLinkContent = links.createLink(pathString(pkg,
DocPaths.PACKAGE_FRAME), pkgLabel, "",
"packageFrame");
} else {
pkgLabel = new StringContent("<unnamed package>");
packageLinkContent = links.createLink(DocPaths.PACKAGE_FRAME,
pkgLabel, "", "packageFrame");
}
Content li = HtmlTree.LI(packageLinkContent);
return li;
}
/**
* {@inheritDoc}
*/
protected void addNavigationBarHeader(Content header) {
String headerContent = !configuration.packagesheader.isEmpty() ? configuration.packagesheader
: configuration.header;
if (!headerContent.isEmpty()) {
Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, true,
HtmlStyle.bar, new RawHtml(replaceDocRootDir(headerContent)));
header.add(heading);
modulePackagesListHeading = Headings.IndexFrames.PACKAGE_HEADING;
} else {
modulePackagesListHeading = Headings.PAGE_TITLE_HEADING;
}
}
/**
* Do nothing as there is no overview information in this page.
*/
protected void addOverviewHeader(Content body) {
}
/**
* Do nothing as there is no modules list on this page.
*/
@Override
protected void addModulesList(Content body) {
}
/**
* Adds "All Classes" link for the top of the left-hand frame page to the
* documentation tree.
*
* @param ul the Content object to which the all classes link should be added
*/
protected void addAllClassesLink(Content ul) {
DocPath allClassesFrame = configuration.useModuleDirectories
? DocPaths.DOT_DOT.resolve(DocPaths.ALLCLASSES_FRAME)
: DocPaths.ALLCLASSES_FRAME;
Content linkContent = links.createLink(allClassesFrame,
contents.allClassesLabel, "", "packageFrame");
Content li = HtmlTree.LI(linkContent);
ul.add(li);
}
/**
* Adds "All Packages" link for the top of the left-hand frame page to the
* documentation tree.
*
* @param ul the Content object to which the all packages link should be added
*/
protected void addAllPackagesLink(Content ul) {
DocPath overviewFrame = configuration.useModuleDirectories
? DocPaths.DOT_DOT.resolve(DocPaths.OVERVIEW_FRAME)
: DocPaths.OVERVIEW_FRAME;
Content linkContent = links.createLink(overviewFrame,
contents.allPackagesLabel, "", "packageListFrame");
Content li = HtmlTree.LI(linkContent);
ul.add(li);
}
/**
* Adds "All Modules" link for the top of the left-hand frame page to the
* documentation tree.
*
* @param ul the Content object to which the all modules link should be added
*/
protected void addAllModulesLink(Content ul) {
DocPath moduleOverviewFrame = configuration.useModuleDirectories
? DocPaths.DOT_DOT.resolve(DocPaths.MODULE_OVERVIEW_FRAME)
: DocPaths.MODULE_OVERVIEW_FRAME;
Content linkContent = links.createLink(moduleOverviewFrame,
contents.allModulesLabel, "", "packageListFrame");
Content li = HtmlTree.LI(linkContent);
ul.add(li);
}
/**
* {@inheritDoc}
*/
protected void addNavigationBarFooter(Content footer) {
Content p = HtmlTree.P(Contents.SPACE);
footer.add(p);
}
}

View File

@ -194,7 +194,7 @@ public class ModuleWriterImpl extends HtmlDocletWriter implements ModuleSummaryW
*/
@Override
public Content getModuleHeader(String heading) {
HtmlTree bodyTree = getBody(true, getWindowTitle(mdle.getQualifiedName().toString()));
HtmlTree bodyTree = getBody(getWindowTitle(mdle.getQualifiedName().toString()));
HtmlTree htmlTree = HtmlTree.HEADER();
addTop(htmlTree);
navBar.setDisplaySummaryModuleDescLink(!utils.getFullBody(mdle).isEmpty() && !configuration.nocomment);

View File

@ -1,196 +0,0 @@
/*
* Copyright (c) 1998, 2019, 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.*;
import javax.lang.model.element.PackageElement;
import javax.lang.model.element.TypeElement;
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.StringContent;
import jdk.javadoc.internal.doclets.toolkit.BaseConfiguration;
import jdk.javadoc.internal.doclets.toolkit.Content;
import jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException;
import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
/**
* Class to generate file for each package contents in the left-hand bottom
* frame. This will list all the Class Kinds in the package. A click on any
* class-kind will update the right-hand frame with the clicked class-kind page.
*
* <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk.
* This code and its internal interfaces are subject to change or
* deletion without notice.</b>
*
* @author Atul M Dambalkar
* @author Bhavesh Patel (Modified)
*/
public class PackageFrameWriter extends HtmlDocletWriter {
/**
* The package being documented.
*/
private final PackageElement packageElement;
/**
* The classes to be documented. Use this to filter out classes
* that will not be documented.
*/
private SortedSet<TypeElement> documentedClasses;
/**
* Constructor to construct PackageFrameWriter object and to generate
* "package-frame.html" file in the respective package directory.
* For example for package "java.lang" this will generate file
* "package-frame.html" file in the "java/lang" directory. It will also
* create "java/lang" directory in the current or the destination directory
* if it doesn't exist.
*
* @param configuration the configuration of the doclet.
* @param packageElement PackageElement under consideration.
*/
public PackageFrameWriter(HtmlConfiguration configuration, PackageElement packageElement) {
super(configuration,
configuration.docPaths.forPackage(packageElement).resolve(DocPaths.PACKAGE_FRAME));
this.packageElement = packageElement;
if (configuration.getSpecifiedPackageElements().isEmpty()) {
documentedClasses = new TreeSet<>(utils.makeGeneralPurposeComparator());
documentedClasses.addAll(configuration.getIncludedTypeElements());
}
}
/**
* Generate a package summary page for the left-hand bottom frame. Construct
* the PackageFrameWriter object and then use it generate the file.
*
* @param configuration the current configuration of the doclet.
* @param packageElement The package for which "pacakge-frame.html" is to be generated.
* @throws DocFileIOException if there is a problem generating the package summary page
*/
public static void generate(HtmlConfiguration configuration, PackageElement packageElement)
throws DocFileIOException {
PackageFrameWriter packgen = new PackageFrameWriter(configuration, packageElement);
String pkgName = configuration.utils.getPackageName(packageElement);
HtmlTree body = packgen.getBody(false, packgen.getWindowTitle(pkgName));
Content pkgNameContent = new StringContent(pkgName);
HtmlTree htmlTree = HtmlTree.MAIN();
Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, HtmlStyle.bar,
packgen.getTargetPackageLink(packageElement, "classFrame", pkgNameContent));
htmlTree.add(heading);
HtmlTree div = new HtmlTree(HtmlTag.DIV);
div.setStyle(HtmlStyle.indexContainer);
packgen.addClassListing(div);
htmlTree.add(div);
body.add(htmlTree);
packgen.printHtmlDocument(
configuration.metakeywords.getMetaKeywords(packageElement),
getDescription("package summary (frame)", packageElement),
body);
}
/**
* Add class listing for all the classes in this package. Divide class
* listing as per the class kind and generate separate listing for
* Classes, Interfaces, Exceptions and Errors.
*
* @param contentTree the content tree to which the listing will be added
*/
protected void addClassListing(HtmlTree contentTree) {
BaseConfiguration config = configuration;
if (utils.isSpecified(packageElement)) {
addClassKindListing(utils.getInterfaces(packageElement),
contents.interfaces, contentTree);
addClassKindListing(utils.getOrdinaryClasses(packageElement),
contents.classes, contentTree);
addClassKindListing(utils.getEnums(packageElement),
contents.enums, contentTree);
addClassKindListing(utils.getExceptions(packageElement),
contents.exceptions, contentTree);
addClassKindListing(utils.getErrors(packageElement),
contents.errors, contentTree);
addClassKindListing(utils.getAnnotationTypes(packageElement),
contents.annotationTypes, contentTree);
} else {
addClassKindListing(config.typeElementCatalog.interfaces(packageElement),
contents.interfaces, contentTree);
addClassKindListing(config.typeElementCatalog.ordinaryClasses(packageElement),
contents.classes, contentTree);
addClassKindListing(config.typeElementCatalog.enums(packageElement),
contents.enums, contentTree);
addClassKindListing(config.typeElementCatalog.exceptions(packageElement),
contents.exceptions, contentTree);
addClassKindListing(config.typeElementCatalog.errors(packageElement),
contents.errors, contentTree);
addClassKindListing(config.typeElementCatalog.annotationTypes(packageElement),
contents.annotationTypes, contentTree);
}
}
/**
* Add specific class kind listing. Also add label to the listing.
*
* @param list list of specific class kinds, namely Class or Interface or Exception or Error
* @param labelContent content tree of the label to be added
* @param contentTree the content tree to which the class kind listing will be added
*/
protected void addClassKindListing(Iterable<TypeElement> list, Content labelContent,
HtmlTree contentTree) {
SortedSet<TypeElement> tset = utils.filterOutPrivateClasses(list, configuration.javafx);
if(!tset.isEmpty()) {
boolean printedHeader = false;
HtmlTree htmlTree = HtmlTree.SECTION();
HtmlTree ul = new HtmlTree(HtmlTag.UL);
ul.setTitle(labelContent);
for (TypeElement typeElement : tset) {
if (documentedClasses != null && !documentedClasses.contains(typeElement)) {
continue;
}
if (!utils.isCoreClass(typeElement) || !configuration.isGeneratedDoc(typeElement)) {
continue;
}
if (!printedHeader) {
Content heading = HtmlTree.HEADING(Headings.CONTENT_HEADING,
true, labelContent);
htmlTree.add(heading);
printedHeader = true;
}
Content arr_i_name = new StringContent(utils.getSimpleName(typeElement));
if (utils.isInterface(typeElement))
arr_i_name = HtmlTree.SPAN(HtmlStyle.interfaceName, arr_i_name);
Content link = getLink(new LinkInfoImpl(configuration,
LinkInfoImpl.Kind.PACKAGE_FRAME, typeElement).label(arr_i_name).target("classFrame"));
Content li = HtmlTree.LI(link);
ul.add(li);
}
htmlTree.add(ul);
contentTree.add(htmlTree);
}
}
}

View File

@ -1,191 +0,0 @@
/*
* Copyright (c) 1998, 2019, 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.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.util.DocFileIOException;
import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
/**
* Generate the package index for the left-hand frame in the generated output.
* A click on the package name in this frame will update the page in the bottom
* left hand frame with the listing of contents of the clicked package.
*
* <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk.
* This code and its internal interfaces are subject to change or
* deletion without notice.</b>
*
* @author Atul M Dambalkar
*/
public class PackageIndexFrameWriter extends AbstractPackageIndexWriter {
/**
* The heading (h1 or h2) to use for the module list,
* set by addNavigationBarHeader depending on whether or not there
* is an additional initial heading.
*/
private HtmlTag packageListHeading;
/**
* Construct the PackageIndexFrameWriter object.
*
* @param filename Name of the package index file to be generated.
*/
public PackageIndexFrameWriter(HtmlConfiguration configuration, DocPath filename) {
super(configuration, filename);
}
/**
* Generate the package index file named "overview-frame.html".
* @throws DocFileIOException
*/
public static void generate(HtmlConfiguration configuration) throws DocFileIOException {
DocPath filename = DocPaths.OVERVIEW_FRAME;
PackageIndexFrameWriter packgen = new PackageIndexFrameWriter(configuration, filename);
packgen.buildPackageIndexFile("doclet.Window_Overview",
"package index (frame)",
false);
}
/**
* {@inheritDoc}
*/
@Override
protected void addPackagesList(Content main) {
Content heading = HtmlTree.HEADING(packageListHeading, true,
contents.packagesLabel);
HtmlTree htmlTree = HtmlTree.DIV(HtmlStyle.indexContainer, heading);
HtmlTree ul = new HtmlTree(HtmlTag.UL);
ul.setTitle(contents.packagesLabel);
for (PackageElement aPackage : packages) {
// Do not list the package if -nodeprecated option is set and the
// package is marked as deprecated.
if (aPackage != null &&
(!(configuration.nodeprecated && utils.isDeprecated(aPackage)))) {
ul.add(getPackage(aPackage));
}
}
htmlTree.add(ul);
main.add(htmlTree);
}
/**
* Returns each package name as a separate link.
*
* @param pe PackageElement
* @return content for the package link
*/
protected Content getPackage(PackageElement pe) {
Content packageLinkContent;
Content packageLabel;
if (pe.isUnnamed()) {
packageLabel = new StringContent("<unnamed package>");
packageLinkContent = links.createLink(DocPaths.PACKAGE_FRAME,
packageLabel, "", "packageFrame");
} else {
packageLabel = getPackageLabel(pe.getQualifiedName());
packageLinkContent = links.createLink(pathString(pe,
DocPaths.PACKAGE_FRAME), packageLabel, "",
"packageFrame");
}
Content li = HtmlTree.LI(packageLinkContent);
return li;
}
/**
* {@inheritDoc}
*/
@Override
protected void addNavigationBarHeader(Content header) {
Content headerContent;
if (configuration.packagesheader.length() > 0) {
headerContent = new RawHtml(replaceDocRootDir(configuration.packagesheader));
} else {
headerContent = new RawHtml(replaceDocRootDir(configuration.header));
}
if (!headerContent.isEmpty()) {
Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, true,
HtmlStyle.bar, headerContent);
header.add(heading);
packageListHeading = Headings.IndexFrames.PACKAGE_HEADING;
} else {
packageListHeading = Headings.PAGE_TITLE_HEADING;
}
}
/**
* Do nothing as there is no overview information in this page.
*/
@Override
protected void addOverviewHeader(Content body) {
}
/**
* Adds "All Classes" link for the top of the left-hand frame page to the
* documentation tree.
*
* @param ul the Content object to which the "All Classes" link should be added
*/
@Override
protected void addAllClassesLink(Content ul) {
Content linkContent = links.createLink(DocPaths.ALLCLASSES_FRAME,
contents.allClassesLabel, "", "packageFrame");
Content li = HtmlTree.LI(linkContent);
ul.add(li);
}
/**
* Adds "All Modules" link for the top of the left-hand frame page to the
* documentation tree.
*
* @param ul the Content object to which the "All Modules" link should be added
*/
@Override
protected void addAllModulesLink(Content ul) {
Content linkContent = links.createLink(DocPaths.MODULE_OVERVIEW_FRAME,
contents.allModulesLabel, "", "packageListFrame");
Content li = HtmlTree.LI(linkContent);
ul.add(li);
}
/**
* {@inheritDoc}
*/
@Override
protected void addNavigationBarFooter(Content footer) {
Content p = HtmlTree.P(Contents.SPACE);
footer.add(p);
}
}

View File

@ -42,9 +42,7 @@ import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
import jdk.javadoc.internal.doclets.toolkit.util.Group;
/**
* Generate the package index page "overview-summary.html" for the right-hand
* frame. A click on the package name on this page will update the same frame
* with the "package-summary.html" file for the clicked package.
* Generate the package index page "index.html".
*
* <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk.
@ -70,15 +68,15 @@ public class PackageIndexWriter extends AbstractPackageIndexWriter {
}
/**
* Generate the package index page for the right-hand frame.
* Generate the package index page.
*
* @param configuration the current configuration of the doclet.
* @throws DocFileIOException if there is a problem generating the package index page
*/
public static void generate(HtmlConfiguration configuration) throws DocFileIOException {
DocPath filename = DocPaths.overviewSummary(configuration.frames);
DocPath filename = DocPaths.INDEX;
PackageIndexWriter packgen = new PackageIndexWriter(configuration, filename);
packgen.buildPackageIndexFile("doclet.Window_Overview_Summary", "package index", true);
packgen.buildPackageIndexFile("doclet.Window_Overview_Summary", "package index");
}
/**

View File

@ -131,7 +131,7 @@ public class PackageTreeWriter extends AbstractTreeWriter {
protected HtmlTree getPackageTreeHeader() {
String packageName = packageElement.isUnnamed() ? "" : utils.getPackageName(packageElement);
String title = packageName + " " + resources.getText("doclet.Window_Class_Hierarchy");
HtmlTree bodyTree = getBody(true, getWindowTitle(title));
HtmlTree bodyTree = getBody(getWindowTitle(title));
HtmlTree htmlTree = HtmlTree.HEADER();
addTop(htmlTree);
Content linkContent = getModuleLink(utils.elementUtils.getModuleOf(packageElement),

View File

@ -237,7 +237,7 @@ public class PackageUseWriter extends SubWriterHolderWriter {
String packageText = resources.getText("doclet.Package");
String name = packageElement.isUnnamed() ? "" : utils.getPackageName(packageElement);
String title = resources.getText("doclet.Window_ClassUse_Header", packageText, name);
HtmlTree bodyTree = getBody(true, getWindowTitle(title));
HtmlTree bodyTree = getBody(getWindowTitle(title));
HtmlTree htmlTree = HtmlTree.HEADER();
addTop(htmlTree);
Content linkContent = getModuleLink(utils.elementUtils.getModuleOf(packageElement),

View File

@ -105,7 +105,7 @@ public class PackageWriterImpl extends HtmlDocletWriter
*/
@Override
public Content getPackageHeader(String heading) {
HtmlTree bodyTree = getBody(true, getWindowTitle(utils.getPackageName(packageElement)));
HtmlTree bodyTree = getBody(getWindowTitle(utils.getPackageName(packageElement)));
HtmlTree htmlTree = HtmlTree.HEADER();
addTop(htmlTree);
Content linkContent = getModuleLink(utils.elementUtils.getModuleOf(packageElement),

View File

@ -78,7 +78,7 @@ public class SerializedFormWriterImpl extends SubWriterHolderWriter
* @return the body content tree
*/
public Content getHeader(String header) {
HtmlTree bodyTree = getBody(true, getWindowTitle(header));
HtmlTree bodyTree = getBody(getWindowTitle(header));
HtmlTree htmlTree = HtmlTree.HEADER();
addTop(htmlTree);
navBar.setUserHeader(getUserHeaderFooter(true));

View File

@ -92,7 +92,7 @@ public class SingleIndexWriter extends AbstractIndexWriter {
*/
protected void generateIndexFile() throws DocFileIOException {
String title = resources.getText("doclet.Window_Single_Index");
HtmlTree body = getBody(true, getWindowTitle(title));
HtmlTree body = getBody(getWindowTitle(title));
HtmlTree header = HtmlTree.HEADER();
addTop(header);
navBar.setUserHeader(getUserHeaderFooter(true));

View File

@ -120,7 +120,7 @@ public class SplitIndexWriter extends AbstractIndexWriter {
protected void generateIndexFile(Character unicode) throws DocFileIOException {
String title = resources.getText("doclet.Window_Split_Index",
unicode.toString());
HtmlTree body = getBody(true, getWindowTitle(title));
HtmlTree body = getBody(getWindowTitle(title));
HtmlTree header = HtmlTree.HEADER();
addTop(header);
navBar.setUserHeader(getUserHeaderFooter(true));

View File

@ -175,7 +175,7 @@ public class TreeWriter extends AbstractTreeWriter {
*/
protected HtmlTree getTreeHeader() {
String title = resources.getText("doclet.Window_Class_Hierarchy");
HtmlTree bodyTree = getBody(true, getWindowTitle(title));
HtmlTree bodyTree = getBody(getWindowTitle(title));
HtmlTree htmlTree = HtmlTree.HEADER();
addTop(htmlTree);
navBar.setUserHeader(getUserHeaderFooter(true));

View File

@ -824,7 +824,7 @@ public class Navigation {
private void addOverviewLink(Content tree) {
if (configuration.createoverview) {
tree.add(HtmlTree.LI(links.createLink(pathToRoot.resolve(DocPaths.overviewSummary(configuration.frames)),
tree.add(HtmlTree.LI(links.createLink(pathToRoot.resolve(DocPaths.INDEX),
contents.overviewLabel, "", "")));
}
}
@ -930,27 +930,6 @@ public class Navigation {
}
}
/**
* Add "FRAMES" link, to switch to the frame version of the output.
*
* @param tree the content tree to which the link will be added
*/
private void addNavShowLists(Content tree) {
DocLink dl = new DocLink(pathToRoot.resolve(DocPaths.INDEX), path.getPath(), null);
Content framesContent = links.createLink(dl, contents.framesLabel, "", "_top");
tree.add(HtmlTree.LI(framesContent));
}
/**
* Add "NO FRAMES" link, to switch to the non-frame version of the output.
*
* @param tree the content tree to which the link will be added
*/
private void addNavHideLists(Content tree) {
Content noFramesContent = links.createLink(path.basename(), contents.noFramesLabel, "", "_top");
tree.add(HtmlTree.LI(noFramesContent));
}
private void addSearch(Content tree) {
String searchValueId = "search";
String reset = "reset";
@ -1018,15 +997,6 @@ public class Navigation {
ulNavDetail.setStyle(HtmlStyle.subNavList);
addDetailLinks(ulNavDetail);
div.add(ulNavDetail);
HtmlTree ulFrames = new HtmlTree(HtmlTag.UL);
ulFrames.setStyle(HtmlStyle.navList);
if (!configuration.nonavbar) {
if (configuration.frames) {
addNavShowLists(ulFrames);
addNavHideLists(ulFrames);
}
}
div.add(ulFrames);
subDiv.add(div);
if (top && configuration.createindex) {
addSearch(subDiv);

View File

@ -1,7 +1,6 @@
doclet.build_version=Standard Doclet version {0}
doclet.Contents=Contents
doclet.Overview=Overview
doclet.Window_Overview=Overview List
doclet.Window_Overview_Summary=Overview
doclet.Element=Element
doclet.Package=Package
@ -167,10 +166,6 @@ doclet.help.index.head=\
doclet.help.index.body=\
The {0} contains an alphabetic index of all classes, interfaces, constructors, methods, \
and fields, as well as lists of all packages and all classes.
doclet.help.frames.head=\
Frames/No Frames
doclet.help.frames.body=\
These links show and hide the HTML frames. All pages are available with or without frames.
doclet.help.serial_form.body=\
Each serializable or externalizable class has a description of its serialization fields and \
methods. This information is of interest to re-implementors, not to developers using the API. \
@ -446,9 +441,7 @@ doclet.usage.xdoclint-package.description=\
of the given package. Prefix the package specifier with - to\n\
disable checks for the specified packages.
# L10N: do not localize the option names --frames
doclet.Frames_specified=\
You have specified to generate frames, by using the --frames option.\n\
The default is currently to not generate frames and the support for \n\
frames will be removed in a future release.\n\
To suppress this warning, remove the --frames option and avoid the use of frames.
# L10N: do not localize the option names --no-frames
doclet.NoFrames_specified=\
The --no-frames option is no longer required and may be removed\n\
in a future release.

View File

@ -124,8 +124,6 @@ doclet.modules=modules
doclet.All_Classes=All Classes
doclet.All_Superinterfaces=All Superinterfaces:
doclet.All_Implemented_Interfaces=All Implemented Interfaces:
doclet.All_classes_and_interfaces=All classes and interfaces (except non-static nested types)
doclet.Package_class_and_interface_descriptions=Package, class and interface descriptions
doclet.Interface=Interface
doclet.Class=Class
doclet.AnnotationType=Annotation Type

View File

@ -150,10 +150,6 @@ function updateTabs(type) {
}
}
function updateModuleFrame(pFrame, cFrame) {
top.packageFrame.location = pFrame;
top.classFrame.location = cFrame;
}
function switchTab(e) {
if (e.keyCode == 37 || e.keyCode == 38) {
$("[aria-selected=true]").prev().click().focus();

View File

@ -51,25 +51,12 @@ public class DocPaths {
public static final DocPath DOT_DOT = DocPath.create("..");
/** The name of the file for all classes, without using frames, when --no-frames is specified. */
public static final DocPath ALLCLASSES = DocPath.create("allclasses.html");
/** 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");
public static DocPath AllClasses(boolean frames) {
return frames ? ALLCLASSES_NOFRAME : ALLCLASSES;
}
/** The name of the sub-directory for storing class usage info. */
public static final DocPath CLASS_USE = DocPath.create("class-use");
@ -163,22 +150,12 @@ public class DocPaths {
/** The name of the module search index js file. */
public static final DocPath MODULE_SEARCH_INDEX_JS = DocPath.create("module-search-index.js");
/** The name of the file for the overview frame. */
public static final DocPath OVERVIEW_FRAME = DocPath.create("overview-frame.html");
/** The name of the file for the overview summary. */
public static final DocPath OVERVIEW_SUMMARY = DocPath.create("overview-summary.html");
public static DocPath overviewSummary(boolean frames) {
return frames ? OVERVIEW_SUMMARY : INDEX;
}
/** The name of the file for the overview tree. */
public static final DocPath OVERVIEW_TREE = DocPath.create("overview-tree.html");
/** The name of the file for the package frame. */
public static final DocPath PACKAGE_FRAME = DocPath.create("package-frame.html");
/** The name of the file for the package list. This is to support the legacy mode. */
public static final DocPath PACKAGE_LIST = DocPath.create("package-list");
@ -305,15 +282,6 @@ public class DocPaths {
return createModulePath(mdle, "doc-files");
}
/**
* The path for the file for a module's frame page.
* @param mdle the module
* @return the path
*/
public DocPath moduleFrame(ModuleElement mdle) {
return createModulePath(mdle, "frame.html");
}
/**
* The path for the file for a module's summary page.
* @param mdle the module
@ -332,15 +300,6 @@ public class DocPaths {
return createModulePath(mdleName, "summary.html");
}
/**
* The path for the file for a module's type frame page.
* @param mdle the module
* @return the path
*/
public DocPath moduleTypeFrame(ModuleElement mdle) {
return createModulePath(mdle, "type-frame.html");
}
private DocPath createModulePath(ModuleElement mdle, String path) {
return DocPath.create(mdle.getQualifiedName() + moduleSeparator + path);
}
@ -349,9 +308,6 @@ public class DocPaths {
return DocPath.create(moduleName + moduleSeparator + path);
}
/** The name of the file for the module overview frame. */
public static final DocPath MODULE_OVERVIEW_FRAME = DocPath.create("module-overview-frame.html");
/** The name of the sub-package from which resources are read. */
public static final DocPath RESOURCES = DocPath.create("resources");

View File

@ -1,27 +0,0 @@
/*
* Copyright (c) 2002, 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 p1;
public class C1 {
}

View File

@ -1,27 +0,0 @@
/*
* Copyright (c) 2002, 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 p2;
public class C2 {
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2002, 2019, 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
@ -46,7 +46,6 @@ public class AccessH1 extends JavadocTester {
public void test() {
javadoc("-d", "out",
"-doctitle", "Document Title",
"--frames",
"-sourcepath", testSrc,
"p1", "p2");
checkExit(Exit.OK);
@ -58,7 +57,7 @@ public class AccessH1 extends JavadocTester {
+ "}");
// Test the doc title in the overview page
checkOutput("overview-summary.html", true,
checkOutput("index.html", true,
"<h1 class=\"title\">Document Title</h1>");
}
}

View File

@ -48,7 +48,6 @@ public class AccessSummary extends JavadocTester {
@Test
public void testAccessSummary() {
javadoc("-d", "out",
"--frames",
"-sourcepath", testSrc,
"p1", "p2");
checkExit(Exit.OK);
@ -56,7 +55,7 @@ public class AccessSummary extends JavadocTester {
}
void checkSummary(boolean found) {
checkOutput("overview-summary.html", found,
checkOutput("index.html", found,
"summary=\"Package Summary table, listing packages, and an explanation\"");
// Test that the summary attribute appears or not

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2002, 2019, 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
@ -57,7 +57,6 @@ public class DocRootSlash extends JavadocTester {
javadoc("-d", "out",
"-Xdoclint:none",
"-overview", (srcdir + "/overview.html"),
"--frames",
"-header", "<A HREF=\"{@docroot}/element-list\">{&#064;docroot}</A> <A HREF=\"{@docRoot}/help-doc.html\">{&#064;docRoot}</A>",
"-sourcepath", srcdir,
"p1", "p2");
@ -65,13 +64,7 @@ public class DocRootSlash extends JavadocTester {
checkFiles(
"p1/C1.html",
"p1/package-summary.html",
"overview-summary.html");
// Bug 4633447: Special test for overview-frame.html
// Find two strings in file "overview-frame.html"
checkOutput("overview-frame.html", true,
"<A HREF=\"./element-list\">",
"<A HREF=\"./help-doc.html\">");
"index.html");
}
void checkFiles(String... filenameArray) {

View File

@ -23,7 +23,7 @@
/*
* @test
* @bug 4645058 4747738 4855054 8024756 8141492 8196202 8205593
* @bug 4645058 4747738 4855054 8024756 8141492 8196202 8205593 8215599
* @summary Javascript IE load error when linked by -linkoffline
* Window title shouldn't change when loading left frames (javascript)
* @author dkramer
@ -46,7 +46,6 @@ public class JavascriptWinTitle extends JavadocTester {
public void test() {
javadoc("-d", "out",
"-source", "8",
"--frames",
"-doctitle", "Document Title",
"-windowtitle", "Window Title",
"-overview", testSrc("overview.html"),
@ -54,26 +53,13 @@ public class JavascriptWinTitle extends JavadocTester {
"-sourcepath", testSrc,
"p1", "p2");
checkExit(Exit.OK);
checkOutput("overview-summary.html", true,
checkOutput("index.html", true,
"<script type=\"text/javascript\">",
"<body class=\"package-index\">");
// Test that "onload" is not present in BODY tag:
checkOutput("p1/package-summary.html", true, "<body class=\"package-declaration\">");
checkOutput("overview-frame.html", true, "<body class=\"package-index-frame\">");
checkOutput("allclasses-frame.html", true, "<body class=\"all-classes-frame\">");
checkOutput("p1/package-frame.html", true, "<body class=\"package-frame\">");
// Test that win title javascript is followed by NOSCRIPT code.
checkOutput("p1/C.html", true,
"<script type=\"text/javascript\"><!--\n"
+ " try {\n"
+ " if (location.href.indexOf('is-external=true') == -1) {\n"
+ " parent.document.title=\"C (Window Title)\";\n"
+ " }\n"
+ " }\n"
+ " catch(err) {\n"
+ " }\n"
+ "//-->\n");
checkOutput("p1/C.html", true, "<title>C (Window Title)</title>");
}
}

View File

@ -55,7 +55,6 @@ public class MetaTag extends JavadocTester {
javadoc("-d", "out-1",
"-sourcepath", testSrc,
"-keywords",
"--frames",
"-doctitle", "Sample Packages",
"p1", "p2");
@ -69,7 +68,6 @@ public class MetaTag extends JavadocTester {
javadoc("-d", "out-2",
"-sourcepath", testSrc,
"-notimestamp",
"--frames",
"-doctitle", "Sample Packages",
"p1", "p2");
checkExit(Exit.OK);
@ -89,7 +87,7 @@ public class MetaTag extends JavadocTester {
checkOutput("p1/package-summary.html", found,
"<meta name=\"keywords\" content=\"p1 package\">");
checkOutput("overview-summary.html", found,
checkOutput("index.html", found,
"<meta name=\"keywords\" content=\"Overview, Sample Packages\">");
// NOTE: Hopefully, this regression test is not run at midnight. If the output
@ -97,7 +95,7 @@ public class MetaTag extends JavadocTester {
// so make sure the date has not changed since the test started
String date = date();
if (date.equals(startDate)) {
checkOutput("overview-summary.html", found,
checkOutput("index.html", found,
"<meta name=\"" + metaNameDate + "\" content=\"" + date + "\">");
}
}

View File

@ -1,95 +0,0 @@
/*
* Copyright (c) 2002, 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.
*
* 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.
*/
/*
* @test
* @bug 4766385 8196202
* @summary Test that the header option for upper left frame
* is present for three sets of options: (1) -header,
* (2) -packagesheader, and (3) -header -packagesheader
* @author dkramer
* @library ../../lib
* @modules jdk.javadoc/jdk.javadoc.internal.tool
* @build javadoc.tester.*
* @run main PackagesHeader
*/
import javadoc.tester.JavadocTester;
public class PackagesHeader extends JavadocTester {
public static void main(String... args) throws Exception {
JavadocTester tester = new PackagesHeader();
tester.runTests();
}
@Test
public void testHeader() {
// First test with -header only
javadoc("-d", "out-header",
"-header", "Main Frame Header",
"--frames",
"-sourcepath", testSrc,
"p1", "p2");
checkExit(Exit.OK);
// Test that the -header shows up in the packages frame
checkOutput("overview-frame.html", true,
"Main Frame Header");
}
@Test
public void testPackagesHeader() {
// Second test with -packagesheader only
javadoc("-d", "out-packages-header",
"-packagesheader", "Packages Frame Header",
"--frames",
"-sourcepath", testSrc,
"p1", "p2");
checkExit(Exit.OK);
// Test that the -packagesheader string shows
// up in the packages frame
checkOutput("overview-frame.html", true,
"Packages Frame Header");
}
@Test
public void testBothHeaders() {
// Third test with both -packagesheader and -header
javadoc("-d", "out-both",
"-packagesheader", "Packages Frame Header",
"-header", "Main Frame Header",
"--frames",
"-sourcepath", testSrc,
"p1", "p2");
checkExit(Exit.OK);
// Test that the both headers show up and are different
checkOutput("overview-frame.html", true,
"Packages Frame Header");
checkOutput("overview-summary.html", true,
"Main Frame Header");
}
}

View File

@ -1,27 +0,0 @@
/*
* Copyright (c) 2002, 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 p1;
public class C1 {
}

View File

@ -1,27 +0,0 @@
/*
* Copyright (c) 2002, 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 p2;
public class C2 {
}

View File

@ -51,14 +51,10 @@ public class ValidHtml extends JavadocTester {
"-doctitle", "Document Title",
"-windowtitle", "Window Title",
"-use",
"--frames",
"-overview", testSrc("overview.html"),
"-sourcepath", testSrc,
"p1", "p2");
checkExit(Exit.OK);
// Test for IFRAME element:
checkOutput("index.html", true,
"<iframe");
// Test the table elements are in the correct order:
checkOutput("p1/package-use.html", true,
"</td>\n"
@ -73,8 +69,5 @@ public class ValidHtml extends JavadocTester {
checkOutput("overview-summary.html", true, doctype);
checkOutput("p1/package-summary.html", true, doctype);
checkOutput("p1/C.html", true, doctype);
checkOutput("overview-frame.html", true, doctype);
checkOutput("allclasses-frame.html", true, doctype);
checkOutput("p1/package-frame.html", true, doctype);
}
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2002, 2019, 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
@ -49,21 +49,17 @@ public class WindowTitles extends JavadocTester {
// Test for all cases except the split index page
javadoc("-d", "out-1",
"-use",
"--frames",
"-sourcepath", testSrc,
"p1", "p2");
checkExit(Exit.OK);
checkFiles(false, "allclasses-noframe.html");
checkTitle("overview-summary.html", "Overview");
checkTitle("index.html", "Overview");
checkTitle("overview-tree.html", "Class Hierarchy");
checkTitle("overview-frame.html", "Overview List");
checkTitle("p1/package-summary.html", "p1");
checkTitle("p1/package-frame.html", "p1");
checkTitle("p1/package-tree.html", "p1 Class Hierarchy");
checkTitle("p1/package-use.html", "Uses of Package p1");
checkTitle("p1/C1.html", "C1");
checkTitle("allclasses-frame.html", "All Classes");
checkTitle("constant-values.html", "Constant Field Values");
checkTitle("deprecated-list.html", "Deprecated List");
checkTitle("serialized-form.html", "Serialized Form");

View File

@ -1,78 +0,0 @@
/*
* 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
* 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.
*/
/*
* @test
* @bug 8071982 8196202
* @summary Test for package-frame.html.
* @library ../../lib
* @modules jdk.javadoc/jdk.javadoc.internal.tool
* @build javadoc.tester.*
* @run main TestClassDocCatalog
*/
import javadoc.tester.JavadocTester;
public class TestClassDocCatalog extends JavadocTester {
public static void main(String... args) throws Exception {
TestClassDocCatalog tester = new TestClassDocCatalog();
tester.runTests();
}
@Test
public void test() {
javadoc("-d", "out",
"--frames",
testSrc("pkg1/EmptyAnnotation.java"),
testSrc("pkg1/EmptyClass.java"),
testSrc("pkg1/EmptyEnum.java"),
testSrc("pkg1/EmptyError.java"),
testSrc("pkg1/EmptyException.java"),
testSrc("pkg1/EmptyInterface.java"),
testSrc("pkg2/EmptyAnnotation.java"),
testSrc("pkg2/EmptyClass.java"),
testSrc("pkg2/EmptyEnum.java"),
testSrc("pkg2/EmptyError.java"),
testSrc("pkg2/EmptyException.java"),
testSrc("pkg2/EmptyInterface.java"));
checkExit(Exit.OK);
checkOutput("overview-frame.html", true,
"<li><a href=\"pkg1/package-frame.html\" target=\"packageFrame\">pkg1</a>"
+ "</li>\n<li><a href=\"pkg2/package-frame.html\" target=\"packageFrame\">pkg2</a></li>");
checkOutput("pkg1/package-frame.html", true,
"<li><a href=\"EmptyInterface.html\" title=\"interface in pkg1\" "
+ "target=\"classFrame\"><span class=\"interfaceName\">EmptyInterface"
+ "</span></a></li>",
"<li><a href=\"EmptyClass.html\" title=\"class in pkg1\" "
+ "target=\"classFrame\">EmptyClass</a></li>",
"<li><a href=\"EmptyEnum.html\" title=\"enum in pkg1\" "
+ "target=\"classFrame\">EmptyEnum</a></li>",
"<li><a href=\"EmptyError.html\" title=\"class in pkg1\" "
+ "target=\"classFrame\">EmptyError</a></li>",
"<li><a href=\"EmptyAnnotation.html\" title=\"annotation in pkg1\""
+ " target=\"classFrame\">EmptyAnnotation</a></li>");
}
}

View File

@ -1,29 +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 pkg1;
import java.lang.annotation.Documented;
@Documented public @interface EmptyAnnotation {
}

View File

@ -1,27 +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 pkg1;
public class EmptyClass {
}

View File

@ -1,27 +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 pkg1;
public enum EmptyEnum {
}

View File

@ -1,27 +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 pkg1;
public class EmptyError extends Error {
}

View File

@ -1,27 +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 pkg1;
public class EmptyException extends Exception {
}

View File

@ -1,27 +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 pkg1;
public interface EmptyInterface {
}

View File

@ -1,29 +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 pkg2;
import java.lang.annotation.Documented;
@Documented public @interface EmptyAnnotation {
}

View File

@ -1,27 +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 pkg2;
public class EmptyClass {
}

View File

@ -1,27 +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 pkg2;
public enum EmptyEnum {
}

View File

@ -1,27 +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 pkg2;
public class EmptyError extends Error {
}

View File

@ -1,27 +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 pkg2;
public class EmptyException extends Exception {
}

View File

@ -1,27 +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 pkg2;
public interface EmptyInterface {
}

View File

@ -1,431 +0,0 @@
/*
* Copyright (c) 2016, 2019, 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.
*/
/*
* @test
* @bug 8162353 8164747 8173707 8196202 8204303 8184205
* @summary javadoc should provide a way to disable use of frames
* @library /tools/lib ../../lib
* @modules
* jdk.compiler/com.sun.tools.javac.api
* jdk.compiler/com.sun.tools.javac.main
* jdk.javadoc/jdk.javadoc.internal.tool
* @build toolbox.ModuleBuilder toolbox.ToolBox
* @build javadoc.tester.*
* @run main TestFramesNoFrames
*/
import java.io.*;
import java.lang.annotation.Annotation;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.nio.file.*;
import java.util.*;
import java.util.stream.Collectors;
import toolbox.ModuleBuilder;
import toolbox.ToolBox;
import javadoc.tester.JavadocTester;
public class TestFramesNoFrames extends JavadocTester {
public static void main(String... args) throws Exception {
TestFramesNoFrames tester = new TestFramesNoFrames();
tester.generateSource();
tester.runTests();
}
ToolBox tb = new ToolBox();
Path gensrcModules = Paths.get("gensrc/modules");
Path gensrcPackages = Paths.get("gensrc/packages");
void generateSource() throws IOException {
String[] modules = { "", "m1", "m2", "m3" };
String[] packages = { "p1", "p2", "p3" };
String[] classes = { "C1", "C2", "C3" };
for (String m: modules) {
ModuleBuilder mb = m.equals("") ? null : new ModuleBuilder(tb, m);
for (String p: packages) {
Path pkgRoot;
if (m.equals("")) {
pkgRoot = gensrcPackages;
} else {
pkgRoot = gensrcModules.resolve(m);
mb.exports(m + p);
}
for (String c: classes) {
tb.writeJavaFiles(pkgRoot,
"package " + (m + p) + ";\n"
+ "/** class " + (m + p + c).toUpperCase() + ". */\n"
+ "public class " + (m + p + c).toUpperCase() + " { }"
);
}
}
if (!m.equals("")) {
mb.write(gensrcModules);
}
}
tb.writeFile("overview.html",
"<html><body>This is the overview file</body></html>");
}
enum FrameKind {
DEFAULT(),
FRAMES("--frames"),
NO_FRAMES("--no-frames");
FrameKind(String... opts) {
this.opts = Arrays.asList(opts);
}
final List<String> opts;
}
enum OverviewKind {
DEFAULT(),
OVERVIEW("-overview", "overview.html"),
NO_OVERVIEW("-nooverview");
OverviewKind(String... opts) {
this.opts = Arrays.asList(opts);
}
final List<String> opts;
}
enum HtmlKind {
HTML5("-html5");
HtmlKind(String... opts) {
this.opts = Arrays.asList(opts);
}
final List<String> opts;
}
@Override
public void runTests() throws Exception {
for (Method m : getClass().getDeclaredMethods()) {
Annotation a = m.getAnnotation(Test.class);
if (a != null) {
for (FrameKind fk : FrameKind.values()) {
for (OverviewKind ok : OverviewKind.values()) {
try {
out.println("Running test " + m.getName() + " " + fk + " " + ok);
Path base = Paths.get(m.getName() + "_" + fk + "_" + ok);
Files.createDirectories(base);
m.invoke(this, new Object[]{base, fk, ok});
} catch (InvocationTargetException e) {
Throwable cause = e.getCause();
throw (cause instanceof Exception) ? ((Exception)cause) : e;
}
out.println();
}
}
}
}
printSummary();
}
void javadoc(Path outDir, FrameKind fKind, OverviewKind oKind, String... rest) {
List<String> args = new ArrayList<>();
args.add("-d");
args.add(outDir.toString());
args.addAll(fKind.opts);
args.addAll(oKind.opts);
args.addAll(Arrays.asList(rest));
javadoc(args.toArray(new String[0]));
checkExit(Exit.OK);
}
@Test
public void testClass(Path base, FrameKind fKind, OverviewKind oKind) throws Exception {
javadoc(base, fKind, oKind, gensrcPackages.resolve("p1/P1C1.java").toString());
new Checker(fKind, oKind)
.classes("p1.P1C1")
.check();
}
@Test
public void testClasses(Path base, FrameKind fKind, OverviewKind oKind) throws IOException {
javadoc(base, fKind, oKind,
gensrcPackages.resolve("p1/P1C1.java").toString(),
gensrcPackages.resolve("p1/P1C2.java").toString(),
gensrcPackages.resolve("p1/P1C3.java").toString());
new Checker(fKind, oKind)
.classes("p1.P1C1", "p1.P1C2", "p1.P1C3")
.check();
}
@Test
public void testPackage(Path base, FrameKind fKind, OverviewKind oKind) throws IOException {
javadoc(base, fKind, oKind,
"-sourcepath", gensrcPackages.toString(),
"p1");
new Checker(fKind, oKind)
.classes("p1.P1C1", "p1.P1C2", "p1.P1C3")
.check();
}
@Test
public void testPackages(Path base, FrameKind fKind, OverviewKind oKind) throws IOException {
javadoc(base, fKind, oKind,
"-sourcepath", gensrcPackages.toString(),
"p1", "p2", "p3");
new Checker(fKind, oKind)
.classes("p1.P1C1", "p1.P1C2", "p1.P1C3",
"p2.P2C1", "p2.P2C2", "p2.P2C3",
"p3.P3C1", "p3.P3C2", "p3.P3C3")
.check();
}
@Test
public void testModules(Path base, FrameKind fKind, OverviewKind oKind) throws IOException {
javadoc(base, fKind, oKind,
"--module-source-path", gensrcModules.toString(),
"--module", "m1,m2,m3");
new Checker(fKind, oKind)
.classes("m1/m1p1.M1P1C1", "m1/m1p1.M1P1C2", "m1/m1p1.M1P1C3",
"m2/m2p1.M2P1C1", "m2/m2p1.M2P1C2", "m2/m2p1.M2P1C3",
"m3/m3p1.M3P1C1", "m3/m3p1.M3P1C2", "m3/m3p1.M3P1C3")
.check();
}
/**
* Check the contents of the generated output, according to the
* specified options.
*/
class Checker {
private final FrameKind fKind;
private final OverviewKind oKind;
List<String> classes;
private boolean frames;
private boolean overview;
private static final String framesWarning
= "javadoc: warning - You have specified to generate frames, by using the --frames option.\n"
+ "The default is currently to not generate frames and the support for \n"
+ "frames will be removed in a future release.\n"
+ "To suppress this warning, remove the --frames option and avoid the use of frames.";
Checker(FrameKind fKind, OverviewKind oKind) {
this.fKind = fKind;
this.oKind = oKind;
}
Checker classes(String... classes) {
this.classes = Arrays.asList(classes);
return this;
}
void check() throws IOException {
switch (fKind) {
case FRAMES:
frames = true;
break;
case DEFAULT:
case NO_FRAMES:
frames = false;
break;
}
switch (oKind) {
case DEFAULT:
overview = (getPackageCount() > 1);
break;
case OVERVIEW:
overview = true;
break;
case NO_OVERVIEW:
overview = false;
break;
}
out.println("Checker: " + fKind + " " + oKind
+ ": frames:" + frames + " overview:" + overview);
checkAllClassesFiles();
checkFrameFiles();
checkOverviewSummary();
checkIndex();
checkNavBar();
checkHelpDoc();
checkWarning();
}
private void checkAllClassesFiles() {
// these files are only generated in frames mode
checkFiles(frames,
"allclasses-frame.html");
checkFiles(false,
"allclasses.html");
checkFiles(false,
"allclasses-noframe.html");
if (frames) {
checkOutput("allclasses-frame.html", true,
classes.stream()
.map(c -> "title=\"class in " + packagePart(c) + "\" target=\"classFrame\">" + classPart(c) + "</a>")
.toArray(String[]::new));
}
}
private void checkFrameFiles() {
// these files are all only generated in frames mode
// <module>/module-frame.html and <module>/module-type-frame.html files
checkFiles(frames, classes.stream()
.filter(c -> isInModule(c))
.map(c -> modulePart(c))
.flatMap(m -> Arrays.asList(
m + "/module-frame.html",
m + "/module-type-frame.html").stream())
.collect(Collectors.toSet()));
// <package>/package-frame.html files
checkFiles(frames, classes.stream()
.map(c -> (isInModule(c) ? (modulePart(c) + "/") : "")
+ packagePart(c)
+ "/package-frame.html")
.collect(Collectors.toSet()));
}
private void checkHelpDoc() {
// the Help page only describes Frame/NoFrames in frames mode
checkOutput("help-doc.html", frames,
"<h2>Frames/No Frames</h2>");
}
private void checkIndex() {
// the index.html page only contains frames and Javascript to default to no-frames view,
// in frames mode
checkOutput("index.html", frames,
"<iframe ",
"</iframe>",
"<body class=\"frames\" onload=\"loadFrames()\">\n"
+ "<script type=\"text/javascript\">\n"
+ "if (targetPage == \"\" || targetPage == \"undefined\")");
// the index.html contains the overview if one
// has been given, and not in frames mode
checkOutput("index.html", !frames && oKind == OverviewKind.OVERVIEW,
"This is the overview file");
// the index.html file contains a summary table
// if an overview was generated and not in frames mode
checkOutput("index.html", !frames && overview,
"<div class=\"overviewSummary\">\n<table");
// the index.html file contains a redirect if
// no frames and no overview
checkOutput("index.html", !frames && !overview,
"<meta http-equiv=\"Refresh\" content=\"0;",
"<script type=\"text/javascript\">window.location.replace(");
if (!frames && !overview) {
checkOutput("index.html", true,
"<noscript>\n<meta http-equiv=\"Refresh\" content=\"0;");
}
}
private void checkNavBar() {
// the files containing a navigation bar should only
// contain FRAMES/NO-FRAMES links in frames mode
List<String> navbarFiles = new ArrayList<>();
navbarFiles.addAll(classes.stream()
.map(c -> (isInModule(c) ? (modulePart(c) + "/") : "")
+ toHtml(packageClassPart(c)))
.collect(Collectors.toSet()));
for (String f : navbarFiles) {
checkOutput(f, frames,
"target=\"_top\">Frames</a>",
"target=\"_top\">No&nbsp;Frames</a>");
}
}
private void checkOverviewSummary() {
// To accommodate the historical behavior of generating
// overview-summary.html in frames mode, the file
// will still be generated in no-frames mode,
// but will be a redirect to index.html
checkFiles(overview,
"overview-summary.html");
if (overview) {
checkOutput("overview-summary.html", !frames,
"<link rel=\"canonical\" href=\"index.html\">",
"<script type=\"text/javascript\">window.location.replace('index.html')</script>",
"<meta http-equiv=\"Refresh\" content=\"0;index.html\">",
"<p><a href=\"index.html\">index.html</a></p>");
}
}
private void checkWarning() {
checkOutput(Output.OUT, frames, framesWarning);
}
private long getPackageCount() {
return this.classes.stream()
.filter(name -> name.contains("."))
.map(name -> name.substring(0, name.lastIndexOf(".")))
.distinct()
.count();
}
private String classPart(String className) {
int lastDot = className.lastIndexOf(".");
return className.substring(lastDot + 1);
}
private String packagePart(String className) {
int slash = className.indexOf("/");
int lastDot = className.lastIndexOf(".");
return className.substring(slash + 1, lastDot);
}
private String packageClassPart(String className) {
int slash = className.indexOf("/");
return className.substring(slash + 1);
}
private boolean isInModule(String className) {
return className.contains("/");
}
private String modulePart(String className) {
int slash = className.indexOf("/");
return className.substring(0, slash);
}
private String toHtml(String className) {
return className.replace(".", "/") + ".html";
}
}
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012, 2019, 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
@ -43,7 +43,6 @@ public class TestGeneratedBy extends JavadocTester {
@Test
public void testTimestamp() {
javadoc("-d", "out-timestamp",
"--frames",
"-sourcepath", testSrc,
"pkg");
checkExit(Exit.OK);
@ -56,7 +55,6 @@ public class TestGeneratedBy extends JavadocTester {
public void testNoTimestamp() {
javadoc("-d", "out-notimestamp",
"-notimestamp",
"--frames",
"-sourcepath", testSrc,
"pkg");
checkExit(Exit.OK);
@ -69,10 +67,8 @@ public class TestGeneratedBy extends JavadocTester {
checkTimestamps(timestamp,
"pkg/MyClass.html",
"pkg/package-summary.html",
"pkg/package-frame.html",
"pkg/package-tree.html",
"constant-values.html",
"allclasses-frame.html",
"overview-tree.html",
"deprecated-list.html",
"serialized-form.html",

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2019, 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
@ -59,13 +59,12 @@ public class TestGroupName extends JavadocTester {
"package p3; public class C3 { }");
javadoc("-d", base.resolve("out").toString(),
"--frames",
"-sourcepath", src.toString(),
"-group", "abc < & > def", "p1",
"p1", "p2", "p3");
checkExit(Exit.OK);
checkOutput("overview-summary.html", true,
checkOutput("index.html", true,
"<button role=\"tab\" aria-selected=\"false\" aria-controls=\"overviewSummary_tabpanel\""
+ " tabindex=\"-1\" onkeydown=\"switchTab(event)\" id=\"t1\" class=\"tableTab\""
+ " onclick=\"show(1);\">abc &lt; &amp; &gt; def</button>",
@ -94,14 +93,13 @@ public class TestGroupName extends JavadocTester {
"package pc3; public class CC3 { }");
javadoc("-d", base.resolve("out").toString(),
"--frames",
"--module-source-path", src.toString(),
"-group", "abc < & > def", "ma",
"--module", "ma,mb,mc");
checkExit(Exit.OK);
checkOutput("overview-summary.html", true,
checkOutput("index.html", true,
"<button role=\"tab\" aria-selected=\"false\" aria-controls=\"overviewSummary_tabpanel\""
+ " tabindex=\"-1\" onkeydown=\"switchTab(event)\" id=\"t2\" class=\"tableTab\""
+ " onclick=\"show(2);\">Other Modules</button>",

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2019, 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
@ -62,7 +62,6 @@ public class TestGroupOption extends JavadocTester {
// Make sure that the headers of group that is defined using patterns are printed.
public void test2() {
javadoc("-d", "out-2",
"--frames",
"-sourcepath", testSrc,
"-group", "Group pkg*", "pkg*",
"-group", "Group abc*", "abc*",
@ -71,8 +70,8 @@ public class TestGroupOption extends JavadocTester {
"pkg1", "pkg2", "pkg3", "abc1", "abc2", "abc3", "other", testSrc("InUnnamedPackage.java"));
checkExit(Exit.OK);
checkOutput("overview-summary.html", true, "Group pkg*", "Group abc*", "Other Packages");
checkOutput("overview-summary.html", false, "Empty group", "Group a*");
checkOutput("index.html", true, "Group pkg*", "Group abc*", "Other Packages");
checkOutput("index.html", false, "Empty group", "Group a*");
}
@Test

View File

@ -47,7 +47,6 @@ public class TestHeadings extends JavadocTester {
javadoc("-d", "out",
"-sourcepath", testSrc,
"-use",
"--frames",
"-header", "Test Files",
"pkg1", "pkg2");
checkExit(Exit.OK);
@ -93,13 +92,8 @@ public class TestHeadings extends JavadocTester {
+ "pkg1.C1</a> extends java.lang.Object implements Serializable</h3>",
"<h4>Serialized Fields</h4>");
// Overview Frame
checkOutput("overview-frame.html", true,
"<h1 title=\"Test Files\" class=\"bar\">Test Files</h1>",
"<title>Overview List</title>");
// Overview Summary
checkOutput("overview-summary.html", true,
checkOutput("index.html", true,
"<title>Overview</title>");
}
}

View File

@ -46,7 +46,6 @@ public class TestHiddenTag extends JavadocTester {
@Test
public void test1() {
javadoc("-d", "out1",
"--frames",
"-sourcepath", testSrc,
"-package",
"pkg1");
@ -91,8 +90,6 @@ public class TestHiddenTag extends JavadocTester {
"invisibleMethod",
"A.InvisibleInner");
checkOutput("pkg1/package-frame.html", false, "A.InvisibleInner");
checkOutput("pkg1/package-summary.html", false, "A.InvisibleInner");
checkOutput("pkg1/package-tree.html", false, "A.InvisibleInner");

View File

@ -69,32 +69,12 @@ public class TestHtmlLandmarkRegions extends JavadocTester {
javadoc("-d", outDir.toString(),
"-doctitle", "Document Title",
"-header", "Test Header",
"--frames",
"--module-source-path", srcDir.toString(),
"--module", "m1,m2");
checkExit(Exit.OK);
checkOrder("module-overview-frame.html",
"<header role=\"banner\">\n"
+ "<h1 title=\"Test Header\" class=\"bar\">Test Header</h1>\n"
+ "<nav role=\"navigation\" class=\"indexNav\">",
"<main role=\"main\">\n"
+ "<div class=\"indexContainer\">\n"
+ "<h2 title=\"Modules\">Modules</h2>\n"
+ "<ul title=\"Modules\">",
"<footer role=\"contentinfo\">");
checkOrder("m1/module-frame.html",
"<header role=\"banner\">\n"
+ "<h1 title=\"Test Header\" class=\"bar\">Test Header</h1>\n"
+ "<nav role=\"navigation\" class=\"indexNav\">",
"<main role=\"main\">\n"
+ "<div class=\"indexContainer\">\n"
+ "<h2 title=\"m1\"><a href=\"module-summary.html\" target=\"classFrame\">m1</a>&nbsp;Packages</h2>",
"<footer role=\"contentinfo\">");
checkOrder("overview-summary.html",
checkOrder("index.html",
"<header role=\"banner\">\n"
+ "<nav role=\"navigation\">",
"<main role=\"main\">\n"
@ -113,13 +93,12 @@ public class TestHtmlLandmarkRegions extends JavadocTester {
javadoc("-d", outDir.toString(),
"-doctitle", "Document Title",
"-header", "Test Header",
"--frames",
"-sourcepath", srcDir.toString(),
"pkg1", "pkg2");
checkExit(Exit.OK);
checkOrder("overview-summary.html",
checkOrder("index.html",
"<header role=\"banner\">\n"
+ "<nav role=\"navigation\">",
"<main role=\"main\">\n"
@ -127,15 +106,6 @@ public class TestHtmlLandmarkRegions extends JavadocTester {
+ "<h1 class=\"title\">Document Title</h1>",
"<footer role=\"contentinfo\">\n" +
"<nav role=\"navigation\">");
checkOrder("overview-frame.html",
"<header role=\"banner\">\n"
+ "<h1 title=\"Test Header\" class=\"bar\">Test Header</h1>\n"
+ "<nav role=\"navigation\" class=\"indexNav\">",
"<main role=\"main\">\n"
+ "<div class=\"indexContainer\">\n"
+ "<h2 title=\"Packages\">Packages</h2>",
"<footer role=\"contentinfo\">");
}
@Test

View File

@ -46,7 +46,6 @@ public class TestHtmlTableStyles extends JavadocTester {
javadoc("-d", "out",
"-sourcepath", testSrc,
"-use",
"--frames",
"pkg1", "pkg2");
checkExit(Exit.ERROR);
checkOutput(Output.OUT, true,
@ -68,7 +67,7 @@ public class TestHtmlTableStyles extends JavadocTester {
checkOutput("pkg1/class-use/TestTable.html", true,
"<div class=\"useSummary\">\n<table>");
checkOutput("overview-summary.html", true,
checkOutput("index.html", true,
"<div class=\"overviewSummary\">\n<table>");
checkOutput("deprecated-list.html", true,

View File

@ -52,7 +52,6 @@ public class TestHtmlTableTags extends JavadocTester {
javadoc("-d", "out",
"-sourcepath", testSrc,
"-use",
"--frames",
"pkg1", "pkg2");
checkExit(Exit.OK);
@ -129,7 +128,7 @@ public class TestHtmlTableTags extends JavadocTester {
"<div class=\"constantsSummary\">\n<table>");
// Overview Summary
checkOutput("overview-summary.html", true,
checkOutput("index.html", true,
"<div class=\"overviewSummary\">\n<table>");
}
@ -240,7 +239,7 @@ public class TestHtmlTableTags extends JavadocTester {
+ "constant fields, and values\">");
// Overview Summary
checkOutput("overview-summary.html", true,
checkOutput("index.html", true,
"<div class=\"overviewSummary\">\n"
+ "<table summary=\"Package Summary table, listing packages, and an explanation\">");
}
@ -353,7 +352,7 @@ public class TestHtmlTableTags extends JavadocTester {
+ "C1</a></span><span class=\"tabEnd\">&nbsp;</span></caption>");
// Overview Summary
checkOutput("overview-summary.html", true,
checkOutput("index.html", true,
"<caption><span>Packages</span><span class=\"tabEnd\">&nbsp;</span></caption>");
}
@ -469,7 +468,7 @@ public class TestHtmlTableTags extends JavadocTester {
+ "<th class=\"colLast\" scope=\"col\">Value</th>");
// Overview Summary
checkOutput("overview-summary.html", true,
checkOutput("index.html", true,
"<th class=\"colFirst\" scope=\"col\">"
+ "Package</th>\n"
+ "<th class=\"colLast\" scope=\"col\""

View File

@ -47,7 +47,6 @@ public class TestHtmlVersion extends JavadocTester {
javadoc("-d", "out-1",
"-private",
"-linksource",
"--frames",
"-sourcepath", testSrc,
"-use",
"pkg", "pkg1", "pkg2", "pkg3");
@ -69,29 +68,8 @@ public class TestHtmlVersion extends JavadocTester {
}
void html5Output() {
// Test for overview-frame page
checkOutput("overview-frame.html", true,
"<!DOCTYPE HTML>",
"<meta name=\"dc.created\"",
"<nav role=\"navigation\" class=\"indexNav\">\n"
+ "<ul>\n"
+ "<li><a href=\"allclasses-frame.html\" target=\"packageFrame\">All&nbsp;Classes</a></li>",
"<main role=\"main\">\n"
+ "<div class=\"indexContainer\">\n"
+ "<h1 title=\"Packages\">Packages</h1>");
// Test for allclasses-frame page
checkOutput("allclasses-frame.html", true,
"<!DOCTYPE HTML>",
"<meta name=\"dc.created\"",
"<main role=\"main\">\n"
+ "<h1 class=\"bar\">All&nbsp;Classes</h1>\n"
+ "<div class=\"indexContainer\">\n"
+ "<ul>\n"
+ "<li>");
// Test for overview-summary page
checkOutput("overview-summary.html", true,
checkOutput("index.html", true,
"<!DOCTYPE HTML>",
"<meta name=\"dc.created\"",
"<a id=\"navbar.top.firstrow\">\n"
@ -108,25 +86,6 @@ public class TestHtmlVersion extends JavadocTester {
+ "<nav role=\"navigation\">\n"
+ "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
// Test for package-frame page
checkOutput("pkg/package-frame.html", true,
"<!DOCTYPE HTML>",
"<meta name=\"dc.created\"",
"<main role=\"main\">\n"
+ "<h1 class=\"bar\"><a href=\"package-summary.html\" target=\"classFrame\">pkg</a></h1>",
"<section role=\"region\">\n"
+ "<h2 title=\"Interfaces\">Interfaces</h2>",
"<section role=\"region\">\n"
+ "<h2 title=\"Classes\">Classes</h2>",
"<section role=\"region\">\n"
+ "<h2 title=\"Enums\">Enums</h2>",
"<section role=\"region\">\n"
+ "<h2 title=\"Exceptions\">Exceptions</h2>",
"<section role=\"region\">\n"
+ "<h2 title=\"Errors\">Errors</h2>",
"<section role=\"region\">\n"
+ "<h2 title=\"Annotation Types\">Annotation Types</h2>");
// Test for package-summary page
checkOutput("pkg/package-summary.html", true,
"<!DOCTYPE HTML>",
@ -586,44 +545,9 @@ public class TestHtmlVersion extends JavadocTester {
"<footer role=\"contentinfo\">\n"
+ "<nav role=\"navigation\">\n"
+ "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
// Test for main index page
checkOutput("index.html", true,
"<!DOCTYPE HTML>",
"<link rel=\"stylesheet\" type=\"text/css\" href=\"stylesheet.css\" title=\"Style\">",
"<body class=\"frames\" onload=\"loadFrames()\">\n"
+ "<script type=\"text/javascript\">\n"
+ "if (targetPage == \"\" || targetPage == \"undefined\")\n"
+ " window.location.replace('overview-summary.html');\n"
+ "</script>\n"
+ "<noscript>JavaScript is disabled on your browser.</noscript>\n"
+ "<main role=\"main\">\n"
+ "<div class=\"mainContainer\">\n"
+ "<div class=\"leftContainer\">\n"
+ "<div class=\"leftTop\">\n"
+ "<iframe src=\"overview-frame.html\" name=\"packageListFrame\" title=\"All Packages\"></iframe>\n"
+ "</div>");
}
void html5NegatedOutput() {
// Negated test for overview-frame page
checkOutput("overview-frame.html", false,
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
"<meta name=\"date\"",
"<div class=\"indexNav\">\n"
+ "<ul>\n"
+ "<li><a href=\"allclasses-frame.html\" target=\"packageFrame\">All&nbsp;Classes</a></li>",
"<main class=\"indexContainer\">\n"
+ "<h2 title=\"Packages\">Packages</h2>");
// Negated test for allclasses-frame page
checkOutput("allclasses-frame.html", false,
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
"<meta name=\"date\"",
"<main class=\"indexContainer\">\n"
+ "<ul>\n"
+ "<li>");
// Negated test for overview-summary page
checkOutput("overview-summary.html", false,
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
@ -637,13 +561,6 @@ public class TestHtmlVersion extends JavadocTester {
+ "<div class=\"fixedNav\">\n"
+ "<!-- ========= START OF TOP NAVBAR ======= -->");
// Negated test for package-frame page
checkOutput("pkg/package-frame.html", false,
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
"<meta name=\"date\"",
"<body>\n"
+ "<h1 class=\"bar\"><a href=\"package-summary.html\" target=\"classFrame\">pkg</a></h1>");
// Negated test for package-summary page
checkOutput("pkg/package-summary.html", false,
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2019, 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
@ -46,15 +46,10 @@ public class TestIndex extends JavadocTester {
@Test
public void test() {
javadoc("-d", "out",
"--frames",
"-sourcepath", testSrc,
"pkg", testSrc("NoPackage.java"));
checkExit(Exit.OK);
checkOutput("index.html", true,
"<iframe src=\"overview-summary.html\" name=\"classFrame\" title=\""
+ "Package, class and interface descriptions\" class=\"rightIframe\">");
//Test index-all.html
checkOutput("index-all.html", true,
"<a href=\"pkg/C.html\" title=\"class in pkg\"><span class=\"typeNameLink\">C</span></a>"

View File

@ -87,14 +87,13 @@ public class TestIndexWithModules extends JavadocTester {
Path out = base.resolve("out");
javadoc("-d", out.toString(),
"--module-source-path", src.toString(),
"--module", "m1,m3,m4",
"--frames");
"--module", "m1,m3,m4");
checkExit(Exit.OK);
checkOutput("index.html", true,
"window.location.replace('overview-summary.html')");
checkOrder("overview-summary.html",
checkOutput("overview-summary.html", true,
"window.location.replace('index.html')");
checkOrder("index.html",
"Modules",
"<a href=\"m1/module-summary.html\">m1</a>",
"<a href=\"m3/module-summary.html\">m3</a>",

View File

@ -44,88 +44,20 @@ public class TestJavascript extends JavadocTester {
@Test
public void test() {
javadoc("-d", "out",
"--frames",
"-sourcepath", testSrc,
"pkg", testSrc("TestJavascript.java"));
checkExit(Exit.OK);
checkOutput("pkg/C.html", true,
"<a href=\"../index.html?pkg/C.html\" target=\"_top\">Frames</a>",
"<script type=\"text/javascript\"><!--\n"
+ "$('.navPadding').css('padding-top', $('.fixedNav').css(\"height\"));\n"
+ "//-->\n"
+ "</script>");
checkOutput("TestJavascript.html", true,
"<a href=\"index.html?TestJavascript.html\" target=\"_top\">Frames</a>");
checkOutput("index.html", true,
"<script type=\"text/javascript\">\n"
+ " tmpTargetPage = \"\" + window.location.search;\n"
+ " if (tmpTargetPage != \"\" && tmpTargetPage != \"undefined\")\n"
+ " tmpTargetPage = tmpTargetPage.substring(1);\n"
+ " if (tmpTargetPage.indexOf(\":\") != -1 || (tmpTargetPage != \"\" && !validURL(tmpTargetPage)))\n"
+ " tmpTargetPage = \"undefined\";\n"
+ " targetPage = tmpTargetPage;\n"
+ " function validURL(url) {\n"
+ " try {\n"
+ " url = decodeURIComponent(url);\n"
+ " }\n"
+ " catch (error) {\n"
+ " return false;\n"
+ " }\n"
+ " var pos = url.indexOf(\".html\");\n"
+ " if (pos == -1 || pos != url.length - 5)\n"
+ " return false;\n"
+ " var allowNumber = false;\n"
+ " var allowSep = false;\n"
+ " var seenDot = false;\n"
+ " for (var i = 0; i < url.length - 5; i++) {\n"
+ " var ch = url.charAt(i);\n"
+ " if ('a' <= ch && ch <= 'z' ||\n"
+ " 'A' <= ch && ch <= 'Z' ||\n"
+ " ch == '$' ||\n"
+ " ch == '_' ||\n"
+ " ch.charCodeAt(0) > 127) {\n"
+ " allowNumber = true;\n"
+ " allowSep = true;\n"
+ " } else if ('0' <= ch && ch <= '9'\n"
+ " || ch == '-') {\n"
+ " if (!allowNumber)\n"
+ " return false;\n"
+ " } else if (ch == '/' || ch == '.') {\n"
+ " if (!allowSep)\n"
+ " return false;\n"
+ " allowNumber = false;\n"
+ " allowSep = false;\n"
+ " if (ch == '.')\n"
+ " seenDot = true;\n"
+ " if (ch == '/' && seenDot)\n"
+ " return false;\n"
+ " } else {\n"
+ " return false;\n"
+ " }\n"
+ " }\n"
+ " return true;\n"
+ " }\n"
+ " function loadFrames() {\n"
+ " if (targetPage != \"\" && targetPage != \"undefined\")\n"
+ " top.classFrame.location = top.targetPage;\n"
+ " }\n"
+ "</script>");
checkOutput("index.html", true,
"<body class=\"frames\" onload=\"loadFrames()\"");
//Make sure title javascript only runs if is-external is not true
checkOutput("pkg/C.html", true,
" try {\n"
+ " if (location.href.indexOf('is-external=true') == -1) {\n"
+ " parent.document.title=\"C\";\n"
+ " }\n"
+ " }\n"
+ " catch(err) {\n"
+ " }");
"<script type=\"text/javascript\"><!--\n"
+ "$('.navPadding').css('padding-top', $('.fixedNav').css(\"height\"));\n"
+ "//-->\n");
checkOutput("script.js", true,
"$(window).resize(function() {\n"

View File

@ -57,7 +57,6 @@ public class TestMetadata extends JavadocTester {
tester.runTests();
}
enum Frames { NO_FRAMES, FRAMES };
enum Index { SINGLE, SPLIT };
enum Source { PACKAGES, MODULES };
@ -68,16 +67,14 @@ public class TestMetadata extends JavadocTester {
public void runTests() throws Exception {
for (Source s : Source.values()) {
Path src = genSource(s);
for (Frames f : Frames.values()) {
for (Index i : Index.values()) {
List<String> args = new ArrayList<>();
args.add("-d");
args.add(String.format("out-%s-%s-%s", s, f, i));
args.add(String.format("out-%s-%s", s, i));
args.add("-use");
if (s != Source.MODULES) {
args.add("-linksource"); // broken, with modules: JDK-8219060
}
args.add(f == Frames.NO_FRAMES ? "--no-frames" : "--frames");
if (i == Index.SPLIT) {
args.add("-splitIndex");
}
@ -116,7 +113,6 @@ public class TestMetadata extends JavadocTester {
break;
}
}
}
}
checking ("all generators");
@ -143,7 +139,6 @@ public class TestMetadata extends JavadocTester {
final Pattern nl = Pattern.compile("[\\r\\n]+");
final Pattern bodyPattern = Pattern.compile("<body [^>]*class=\"([^\"]+)\"");
final Set<String> allBodyClasses = Set.of(
"all-classes-frame",
"all-classes-index",
"all-packages-index",
"class-declaration",
@ -151,18 +146,12 @@ public class TestMetadata extends JavadocTester {
"constants-summary",
"deprecated-list",
"doc-file",
"frames",
"help",
"index-redirect",
"module-declaration",
"module-frame",
"module-index",
"module-index-frame",
"module-package-index-frame",
"package-declaration",
"package-frame",
"package-index",
"package-index-frame",
"package-tree",
"package-use",
"serialized-form",
@ -216,7 +205,6 @@ public class TestMetadata extends JavadocTester {
final Pattern contentPattern = Pattern.compile("content=\"([^\"]+)\">");
final Pattern generatorPattern = Pattern.compile("content=\"javadoc/([^\"]+)\">");
final Set<String> allGenerators = Set.of(
"AllClassesFrameWriter",
"AllClassesIndexWriter",
"AllPackagesIndexWriter",
"AnnotationTypeWriterImpl",
@ -225,16 +213,10 @@ public class TestMetadata extends JavadocTester {
"ConstantsSummaryWriterImpl",
"DeprecatedListWriter",
"DocFileWriter",
"FrameOutputWriter",
"HelpWriter",
"IndexRedirectWriter",
"ModuleFrameWriter",
"ModuleIndexFrameWriter",
"ModuleIndexWriter",
"ModulePackageIndexFrameWriter",
"ModuleWriterImpl",
"PackageFrameWriter",
"PackageIndexFrameWriter",
"PackageIndexWriter",
"PackageTreeWriter",
"PackageUseWriter",
@ -323,16 +305,6 @@ public class TestMetadata extends JavadocTester {
}
switch (generator) {
case "AllClassesFrameWriter":
case "FrameOutputWriter":
case "ModuleFrameWriter":
case "ModuleIndexFrameWriter":
case "ModulePackageIndexFrameWriter":
case "PackageFrameWriter":
case "PackageIndexFrameWriter":
check(generator, content, content.contains("frame"));
break;
case "AllClassesIndexWriter":
case "AllPackagesIndexWriter":
case "ModuleIndexWriter":

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2019, 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
@ -83,26 +83,17 @@ public class TestModuleDirs extends JavadocTester {
javadoc("-d", base.resolve("api").toString(),
"-quiet",
"--frames",
"--module-source-path", src.toString(),
"--no-module-directories",
"--module", "ma,mb");
checkExit(Exit.OK);
checkFiles(true,
"ma-frame.html",
"ma-summary.html",
"pa/package-summary.html");
checkFiles(false,
"ma/module-frame.html",
"ma/module-summary.html",
"ma/pa/package-summary.html");
checkOutput("ma-frame.html", true,
"<ul>\n"
+ "<li><a href=\"allclasses-frame.html\" target=\"packageFrame\">All&nbsp;Classes</a></li>\n"
+ "<li><a href=\"overview-frame.html\" target=\"packageListFrame\">All&nbsp;Packages</a></li>\n"
+ "<li><a href=\"module-overview-frame.html\" target=\"packageListFrame\">All&nbsp;Modules</a></li>\n"
+ "</ul>\n");
checkOutput("ma-summary.html", false,
"<ul class=\"navList\" id=\"allclasses_navbar_top\">\n"
+ "<li><a href=\"allclasses-noframe.html\">All&nbsp;Classes</a></li>\n"
@ -127,25 +118,16 @@ public class TestModuleDirs extends JavadocTester {
javadoc("-d", base.resolve("api").toString(),
"-quiet",
"--frames",
"--module-source-path", src.toString(),
"--module", "ma,mb");
checkExit(Exit.OK);
checkFiles(false,
"ma-frame.html",
"ma-summary.html",
"pa/package-summary.html");
checkFiles(true,
"ma/module-frame.html",
"ma/module-summary.html",
"ma/pa/package-summary.html");
checkOutput("ma/module-frame.html", true,
"<ul>\n"
+ "<li><a href=\"../allclasses-frame.html\" target=\"packageFrame\">All&nbsp;Classes</a></li>\n"
+ "<li><a href=\"../overview-frame.html\" target=\"packageListFrame\">All&nbsp;Packages</a></li>\n"
+ "<li><a href=\"../module-overview-frame.html\" target=\"packageListFrame\">All&nbsp;Modules</a></li>\n"
+ "</ul>\n");
checkOutput("ma/module-summary.html", false,
"<ul class=\"navList\" id=\"allclasses_navbar_top\">\n"
+ "<li><a href=\"../allclasses-noframe.html\">All&nbsp;Classes</a></li>\n"

View File

@ -53,7 +53,6 @@ public class TestModules extends JavadocTester {
"-use",
"-Xdoclint:none",
"-overview", testSrc("overview.html"),
"--frames",
"--module-source-path", testSrc,
"--module", "moduleA,moduleB",
"testpkgmdlA", "testpkgmdlB");
@ -62,11 +61,8 @@ public class TestModules extends JavadocTester {
checkHtml5NoDescription(false);
checkHtml5OverviewSummaryModules();
checkModuleLink();
checkModuleClickThroughLinks();
checkModuleClickThrough(true);
checkModuleFilesAndLinks(true);
checkModulesInSearch(true);
checkOverviewFrame(true);
checkAllPkgsAllClasses(true);
}
@ -79,7 +75,6 @@ public class TestModules extends JavadocTester {
"-nocomment",
"-use",
"-Xdoclint:none",
"--frames",
"-overview", testSrc("overview.html"),
"--module-source-path", testSrc,
"--module", "moduleA,moduleB",
@ -89,7 +84,6 @@ public class TestModules extends JavadocTester {
checkHtml5NoDescription(true);
checkModuleLink();
checkModuleFilesAndLinks(true);
checkOverviewFrame(true);
}
/**
@ -99,7 +93,6 @@ public class TestModules extends JavadocTester {
public void testHtml5UnnamedModule() {
javadoc("-d", "out-html5-nomodule",
"-use",
"--frames",
"-overview", testSrc("overview.html"),
"-sourcepath", testSrc,
"testpkgnomodule", "testpkgnomodule1");
@ -107,7 +100,6 @@ public class TestModules extends JavadocTester {
checkHtml5OverviewSummaryPackages();
checkModuleFilesAndLinks(false);
checkModulesInSearch(false);
checkOverviewFrame(false);
}
/**
@ -165,13 +157,11 @@ public class TestModules extends JavadocTester {
public void testModuleFilesAndLinks() {
javadoc("-d", "out-modulelinks",
"-Xdoclint:none",
"--frames",
"--module-source-path", testSrc,
"--module", "moduleA,moduleB",
"testpkgmdlA", "testpkgmdlB");
checkExit(Exit.OK);
checkModuleFilesAndLinks(true);
checkOverviewFrame(true);
}
/**
@ -215,7 +205,6 @@ public class TestModules extends JavadocTester {
"-author",
"-version",
"-Xdoclint:none",
"--frames",
"-tag", "regular:a:Regular Tag:",
"-tag", "moduletag:s:Module Tag:",
"--module-source-path", testSrc,
@ -225,8 +214,6 @@ public class TestModules extends JavadocTester {
checkModuleModeCommon();
checkModuleModeApi(true);
checkModuleModeAll(false);
checkModuleFrameFiles(true);
checkAllModulesLink(true);
}
/**
@ -240,7 +227,6 @@ public class TestModules extends JavadocTester {
"-author",
"-version",
"-Xdoclint:none",
"--frames",
"-tag", "regular:a:Regular Tag:",
"-tag", "moduletag:s:Module Tag:",
"--module-source-path", testSrc,
@ -250,8 +236,6 @@ public class TestModules extends JavadocTester {
checkModuleModeCommon();
checkModuleModeApi(false);
checkModuleModeAll(true);
checkModuleFrameFiles(true);
checkAllModulesLink(true);
}
/**
@ -289,12 +273,10 @@ public class TestModules extends JavadocTester {
@Test
public void testSingleModuleSinglePkg() {
javadoc("-d", "out-singlemod",
"--frames",
"--module-source-path", testSrc,
"--module", "moduleC",
"testpkgmdlC");
checkExit(Exit.OK);
checkModuleFrameFiles(false);
}
/**
@ -305,12 +287,10 @@ public class TestModules extends JavadocTester {
javadoc("-d", "out-singlemodmultiplepkg",
"--show-module-contents=all",
"-Xdoclint:none",
"--frames",
"--module-source-path", testSrc,
"--module", "moduleB",
"testpkg2mdlB", "testpkgmdlB");
checkExit(Exit.OK);
checkAllModulesLink(false);
}
/**
@ -321,7 +301,6 @@ public class TestModules extends JavadocTester {
javadoc("-d", "out-group",
"--show-module-contents=all",
"-Xdoclint:none",
"--frames",
"-tag", "regular:a:Regular Tag:",
"-tag", "moduletag:s:Module Tag:",
"--module-source-path", testSrc,
@ -345,7 +324,6 @@ public class TestModules extends JavadocTester {
javadoc("-d", "out-groupOrder",
"--show-module-contents=all",
"-Xdoclint:none",
"--frames",
"-tag", "regular:a:Regular Tag:",
"-tag", "moduletag:s:Module Tag:",
"--module-source-path", testSrc,
@ -368,7 +346,6 @@ public class TestModules extends JavadocTester {
javadoc("-d", "out-groupnomodule",
"-use",
"-Xdoclint:none",
"--frames",
"-overview", testSrc("overview.html"),
"-sourcepath", testSrc,
"-group", "Package Group 0", "testpkgnomodule",
@ -388,7 +365,6 @@ public class TestModules extends JavadocTester {
javadoc("-d", "out-groupPkgOrder",
"-use",
"-Xdoclint:none",
"--frames",
"-overview", testSrc("overview.html"),
"-sourcepath", testSrc,
"-group", "Z Group", "testpkgnomodule",
@ -406,7 +382,6 @@ public class TestModules extends JavadocTester {
javadoc("-d", "out-groupsinglemodule",
"-use",
"-Xdoclint:none",
"--frames",
"--module-source-path", testSrc,
"-group", "Module Group B", "moduleB*",
"--module", "moduleB",
@ -423,7 +398,6 @@ public class TestModules extends JavadocTester {
javadoc("-d", "out-modulename",
"-use",
"-Xdoclint:none",
"--frames",
"--module-source-path", testSrc,
"--module", "moduleB,test.moduleFullName",
"testpkg2mdlB", "testpkgmdlB", "testpkgmdlfullname");
@ -464,7 +438,7 @@ public class TestModules extends JavadocTester {
+ "</a>\n"
+ "<div class=\"block\">This is a test description for the moduleB module. Search "
+ "word <a id=\"search_word\" class=\"searchTagResult\">search_word</a> with no description.</div>");
checkOutput("overview-summary.html", found,
checkOutput("index.html", found,
"</script>\n"
+ "<div class=\"contentContainer\">\n"
+ "<div class=\"block\">The overview summary page header.</div>\n"
@ -473,7 +447,7 @@ public class TestModules extends JavadocTester {
+ "<div class=\"overviewSummary\">\n"
+ "<table summary=\"Module Summary table, listing modules, and an explanation\">\n"
+ "<caption><span>Modules</span><span class=\"tabEnd\">&nbsp;</span></caption>");
checkOutput("overview-summary.html", false,
checkOutput("index.html", false,
"</table>\n"
+ "</div>\n"
+ "<div class=\"contentContainer\">\n"
@ -523,7 +497,7 @@ public class TestModules extends JavadocTester {
+ "</a>\n"
+ "<div class=\"block\">This is a test description for the moduleB module. Search "
+ "word <a id=\"search_word\" class=\"searchTagResult\">search_word</a> with no description.</div>");
checkOutput("overview-summary.html", found,
checkOutput("index.html", found,
"</nav>\n"
+ "</header>\n"
+ "<main role=\"main\">\n"
@ -533,7 +507,7 @@ public class TestModules extends JavadocTester {
+ "<div class=\"contentContainer\">\n"
+ "<div class=\"overviewSummary\">\n<table>\n"
+ "<caption><span>Modules</span><span class=\"tabEnd\">&nbsp;</span></caption>");
checkOutput("overview-summary.html", false,
checkOutput("index.html", false,
"</table>\n"
+ "</div>\n"
+ "</main>\n"
@ -564,7 +538,7 @@ public class TestModules extends JavadocTester {
}
void checkModuleLink() {
checkOutput("overview-summary.html", true,
checkOutput("index.html", true,
"<li>Module</li>");
checkOutput("moduleA/module-summary.html", true,
"<li class=\"navBarCell1Rev\">Module</li>");
@ -619,7 +593,7 @@ public class TestModules extends JavadocTester {
}
void checkOverviewSummaryModules() {
checkOutput("overview-summary.html", true,
checkOutput("index.html", true,
"<div class=\"overviewSummary\">\n"
+ "<table summary=\"Module Summary table, listing modules, and an explanation\">\n"
+ "<caption><span>Modules</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
@ -642,7 +616,7 @@ public class TestModules extends JavadocTester {
}
void checkOverviewSummaryPackages() {
checkOutput("overview-summary.html", false,
checkOutput("index.html", false,
"<div class=\"overviewSummary\">\n"
+ "<table summary=\"Module Summary table, listing modules, and an explanation\">\n"
+ "<caption><span>Modules</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
@ -661,7 +635,7 @@ public class TestModules extends JavadocTester {
+ "<div class=\"overviewSummary\">\n"
+ "<table summary=\"Package Summary table, listing packages, and an explanation\">\n"
+ "<caption><span>Packages</span><span class=\"tabEnd\">&nbsp;</span></caption>");
checkOutput("overview-summary.html", true,
checkOutput("index.html", true,
"<div class=\"overviewSummary\">\n"
+ "<table summary=\"Package Summary table, listing packages, and an explanation\">\n"
+ "<caption><span>Packages</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
@ -682,7 +656,7 @@ public class TestModules extends JavadocTester {
}
void checkHtml5OverviewSummaryModules() {
checkOutput("overview-summary.html", true,
checkOutput("index.html", true,
"<div class=\"overviewSummary\">\n"
+ "<table>\n"
+ "<caption><span>Modules</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
@ -705,7 +679,7 @@ public class TestModules extends JavadocTester {
}
void checkHtml5OverviewSummaryPackages() {
checkOutput("overview-summary.html", false,
checkOutput("index.html", false,
"<div class=\"overviewSummary\">\n"
+ "<table>\n"
+ "<caption><span>Modules</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
@ -728,7 +702,7 @@ public class TestModules extends JavadocTester {
+ "<div class=\"overviewSummary\">\n"
+ "<table>\n"
+ "<caption><span>Packages</span><span class=\"tabEnd\">&nbsp;</span></caption>");
checkOutput("overview-summary.html", true,
checkOutput("index.html", true,
"<div class=\"overviewSummary\">\n<table>\n"
+ "<caption><span>Packages</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
+ "<thead>\n"
@ -861,27 +835,6 @@ public class TestModules extends JavadocTester {
+ "</a>");
}
void checkModuleClickThroughLinks() {
checkOutput("module-overview-frame.html", true,
"<li><a href=\"moduleA/module-frame.html\" target=\"packageListFrame\" "
+ "onclick=\"updateModuleFrame('moduleA/module-type-frame.html','moduleA/module-summary.html');"
+ "\">moduleA</a></li>",
"<li><a href=\"moduleB/module-frame.html\" target=\"packageListFrame\" "
+ "onclick=\"updateModuleFrame('moduleB/module-type-frame.html','moduleB/module-summary.html');"
+ "\">moduleB</a></li>");
checkOutput("script.js", true,
"function updateModuleFrame(pFrame, cFrame) {\n"
+ " top.packageFrame.location = pFrame;\n"
+ " top.classFrame.location = cFrame;\n"
+ "}");
}
void checkModuleClickThrough(boolean found) {
checkFiles(found,
"moduleA/module-type-frame.html",
"moduleB/module-type-frame.html");
}
void checkModuleFilesAndLinks(boolean found) {
checkFileAndOutput("moduleA/testpkgmdlA/package-summary.html", found,
"<li><a href=\"../module-summary.html\">Module</a></li>",
@ -897,26 +850,7 @@ public class TestModules extends JavadocTester {
"<div class=\"subTitle\"><span class=\"packageLabelInType\">"
+ "Package</span>&nbsp;<a href=\"package-summary.html\">testpkgmdlB</a></div>");
checkFiles(found,
"moduleA/module-frame.html",
"moduleA/module-summary.html",
"module-overview-frame.html");
}
void checkModuleFrameFiles(boolean found) {
checkFiles(found,
"moduleC/module-frame.html",
"moduleC/module-type-frame.html",
"module-overview-frame.html");
checkFiles(true,
"moduleC/module-summary.html",
"allclasses-frame.html");
checkFiles(false,
"allclasses-noframe.html");
}
void checkAllModulesLink(boolean found) {
checkOutput("overview-frame.html", found,
"<li><a href=\"module-overview-frame.html\" target=\"packageListFrame\">All&nbsp;Modules</a></li>");
"moduleA/module-summary.html");
}
void checkModulesInSearch(boolean found) {
@ -950,7 +884,7 @@ public class TestModules extends JavadocTester {
}
void checkModuleModeCommon() {
checkOutput("overview-summary.html", true,
checkOutput("index.html", true,
"<th class=\"colFirst\" scope=\"row\"><a href=\"moduleA/module-summary.html\">moduleA</a></th>\n"
+ "<td class=\"colLast\">\n"
+ "<div class=\"block\">This is a test description for the moduleA module with a Search "
@ -1155,13 +1089,6 @@ public class TestModules extends JavadocTester {
"@AnnotationTypeUndocumented");
}
void checkOverviewFrame(boolean found) {
checkOutput("index.html", !found,
"<iframe src=\"overview-frame.html\" name=\"packageListFrame\" title=\"All Packages\"></iframe>");
checkOutput("index.html", found,
"<iframe src=\"module-overview-frame.html\" name=\"packageListFrame\" title=\"All Modules\"></iframe>");
}
void checkModuleSummaryNoExported(boolean found) {
checkOutput("moduleNoExport/module-summary.html", found,
"<!-- ============ PACKAGES SUMMARY =========== -->\n"
@ -1172,7 +1099,7 @@ public class TestModules extends JavadocTester {
}
void checkGroupOption() {
checkOutput("overview-summary.html", true,
checkOutput("index.html", true,
"<div class=\"contentContainer\">\n"
+ "<div class=\"overviewSummary\">\n"
+ "<div role=\"tablist\" aria-orientation=\"horizontal\"><button role=\"tab\""
@ -1194,14 +1121,14 @@ public class TestModules extends JavadocTester {
+ "var rowColor = \"rowColor\";\n"
+ "var tableTab = \"tableTab\";\n"
+ "var activeTableTab = \"activeTableTab\";");
checkOutput("overview-summary.html", false,
checkOutput("index.html", false,
"<div class=\"overviewSummary\">\n<table>\n"
+ "<caption><span>Modules</span><span class=\"tabEnd\">&nbsp;</span></caption>",
"Java SE Modules");
}
void checkGroupOptionOrdering() {
checkOutput("overview-summary.html", true,
checkOutput("index.html", true,
"<div role=\"tablist\" aria-orientation=\"horizontal\"><button role=\"tab\""
+ " aria-selected=\"true\" aria-controls=\"overviewSummary_tabpanel\" tabindex=\"0\""
+ " onkeydown=\"switchTab(event)\" id=\"t0\" class=\"activeTableTab\">All Modules</button>"
@ -1217,7 +1144,7 @@ public class TestModules extends JavadocTester {
+ "Other Modules</button></div>",
"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,
checkOutput("index.html", false,
"<div role=\"tablist\" aria-orientation=\"horizontal\"><button role=\"tab\""
+ " aria-selected=\"true\" aria-controls=\"overviewSummary_tabpanel\" tabindex=\"0\""
+ " onkeydown=\"switchTab(event)\" id=\"t0\" class=\"activeTableTab\">All Modules</button>"
@ -1235,7 +1162,7 @@ public class TestModules extends JavadocTester {
}
void checkUnnamedModuleGroupOption() {
checkOutput("overview-summary.html", true,
checkOutput("index.html", true,
"<div class=\"contentContainer\">\n"
+ "<div class=\"block\">The overview summary page header.</div>\n"
+ "</div>\n"
@ -1260,7 +1187,7 @@ public class TestModules extends JavadocTester {
}
void checkGroupOptionPackageOrdering() {
checkOutput("overview-summary.html", true,
checkOutput("index.html", true,
"<div role=\"tablist\" aria-orientation=\"horizontal\"><button role=\"tab\""
+ " aria-selected=\"true\" aria-controls=\"overviewSummary_tabpanel\" tabindex=\"0\""
+ " onkeydown=\"switchTab(event)\" id=\"t0\" class=\"activeTableTab\">All Packages</button>"
@ -1289,12 +1216,6 @@ public class TestModules extends JavadocTester {
+ "<dd>\n"
+ "<div class=\"block\">This is a test description for the test.moduleFullName.</div>\n"
+ "</dd>");
checkOutput("module-overview-frame.html", found,
"<h1 title=\"Modules\">Modules</h1>\n"
+ "<ul title=\"Modules\">\n"
+ "<li><a href=\"moduleB/module-frame.html\" target=\"packageListFrame\" onclick=\"updateModuleFrame('moduleB/module-type-frame.html','moduleB/module-summary.html');\">moduleB</a></li>\n"
+ "<li><a href=\"test.moduleFullName/module-frame.html\" target=\"packageListFrame\" onclick=\"updateModuleFrame('test.moduleFullName/module-type-frame.html','test.moduleFullName/module-summary.html');\">test.moduleFullName</a></li>\n"
+ "</ul>");
checkOutput("test.moduleFullName/module-summary.html", !found,
"<div class=\"header\">\n"
+ "<h1 title=\"Module\" class=\"title\">Module&nbsp;moduleFullName</h1>\n"

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2019, 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
@ -76,12 +76,11 @@ public class TestModuleNavigation extends JavadocTester {
javadoc("-d", base.resolve("out").toString(), "-use",
"-quiet",
"--frames",
"--module-source-path", src.toString(),
"--module", "m,m2");
checkExit(Exit.OK);
checkOutput("overview-summary.html", false,
checkOutput("index.html", false,
"Prev",
"Next",
"All&nbsp;Classes",

View File

@ -57,7 +57,6 @@ public class TestNavigation extends JavadocTester {
public void test(Path ignore) {
javadoc("-d", "out",
"-overview", testSrc("overview.html"),
"--frames",
"-sourcepath", testSrc,
"pkg");
checkExit(Exit.OK);
@ -65,15 +64,15 @@ public class TestNavigation extends JavadocTester {
checkOutput("pkg/A.html", true,
"<ul class=\"navList\" title=\"Navigation\">\n" +
"<li><a href=\"../overview-summary.html\">Overview</a></li>");
"<li><a href=\"../index.html\">Overview</a></li>");
checkOutput("pkg/C.html", true,
"<ul class=\"navList\" title=\"Navigation\">\n" +
"<li><a href=\"../overview-summary.html\">Overview</a></li>");
"<li><a href=\"../index.html\">Overview</a></li>");
checkOutput("pkg/E.html", true,
"<ul class=\"navList\" title=\"Navigation\">\n" +
"<li><a href=\"../overview-summary.html\">Overview</a></li>");
"<li><a href=\"../index.html\">Overview</a></li>");
checkOutput("pkg/I.html", true,
// Test for 4664607
@ -81,7 +80,7 @@ public class TestNavigation extends JavadocTester {
+ "<a id=\"navbar.top.firstrow\">\n"
+ "<!-- -->\n"
+ "</a>",
"<li><a href=\"../overview-summary.html\">Overview</a></li>");
"<li><a href=\"../index.html\">Overview</a></li>");
// Remaining tests check for additional padding to offset the fixed navigation bar.
checkOutput("pkg/A.html", true,
@ -115,7 +114,6 @@ public class TestNavigation extends JavadocTester {
public void test1(Path ignore) {
javadoc("-d", "out-1",
"-html5",
"--frames",
"-sourcepath", testSrc,
"pkg");
checkExit(Exit.OK);
@ -149,7 +147,6 @@ public class TestNavigation extends JavadocTester {
public void test2(Path ignore) {
javadoc("-d", "out-2",
"-nonavbar",
"--frames",
"-sourcepath", testSrc,
"pkg");
checkExit(Exit.OK);

View File

@ -49,7 +49,6 @@ public class TestNewLanguageFeatures extends JavadocTester {
javadoc("-Xdoclint:none",
"-d", "out",
"-use",
"--frames",
"-sourcepath", testSrc,
"pkg", "pkg1", "pkg2");
checkExit(Exit.OK);
@ -465,13 +464,6 @@ public class TestNewLanguageFeatures extends JavadocTester {
+ "method(Vector&lt;Object&gt;)</a></span>"
);
// No type parameters in class frame.
checkOutput("allclasses-frame.html", false,
"<a href=\"../pkg/TypeParameters.html\" title=\"class in pkg\">"
+ "TypeParameters</a>&lt;<a href=\"../pkg/TypeParameters.html\" "
+ "title=\"type parameter in TypeParameters\">E</a>&gt;"
);
}
//=================================

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2019, 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,39 +23,42 @@
/*
* @test
* @bug 4636655 8196202
* @summary Add title attribute to <FRAME> tags for accessibility
* @author dkramer
* @bug 8215599
* @summary Remove support for javadoc "frames" mode
* @library ../../lib
* @modules jdk.javadoc/jdk.javadoc.internal.tool
* @build javadoc.tester.*
* @run main AccessFrameTitle
* @run main TestNoFrames
*/
import javadoc.tester.JavadocTester;
public class AccessFrameTitle extends JavadocTester {
public class TestNoFrames extends JavadocTester {
public static void main(String... args) throws Exception {
AccessFrameTitle tester = new AccessFrameTitle();
TestNoFrames tester = new TestNoFrames();
tester.runTests();
}
@Test
public void test() {
javadoc("-d", "out",
public void testFrames() {
javadoc("-d", "out-1",
"--frames",
"-sourcepath", testSrc,
"p1", "p2");
"-sourcepath",testSrc,
testSrc("TestNoFrames.java"));
checkExit(Exit.ERROR);
}
@Test
public void testDefault() {
javadoc("-d", "out-2",
"--no-frames",
"-sourcepath",testSrc,
testSrc("TestNoFrames.java"));
checkExit(Exit.OK);
// Testing only for the presence of the title attributes.
// To make this test more robust, only
// the initial part of each title string is tested for,
// in case the ending part of the string later changes
checkOutput("index.html", true,
"title=\"All classes and interfaces (except non-static nested types)\"",
"title=\"All Packages\"",
"title=\"Package, class and interface descriptions\"");
checkOutput(Output.OUT, true,
"javadoc: warning - The --no-frames option is no longer required and may be removed\n"
+ "in a future release.");
}
}

View File

@ -121,10 +121,8 @@ public class TestOrdering extends JavadocTester {
javadoc("-d", "out-1",
"-sourcepath", testSrc,
"-use",
"--frames",
"pkg1");
checkExit(Exit.OK);
checkFiles(false, "allclasses-noframe.html");
checkClassUseOrdering("pkg1/class-use/UsedClass.html");
@ -174,20 +172,6 @@ public class TestOrdering extends JavadocTester {
checkOrder("pkg1/OverrideOrdering.html",
"<dd><code>iterator</code>&nbsp;in interface&nbsp;<code>java.util.Collection&lt;",
"<dd><code>iterator</code>&nbsp;in interface&nbsp;<code>java.lang.Iterable&lt;");
checkOrder("allclasses-frame.html",
"pkg1/A.html\" title=\"class in pkg1",
"pkg1/A.C.html\" title=\"class in pkg1",
"pkg1/B.html\" title=\"class in pkg1",
"pkg1/B.A.html\" title=\"class in pkg1",
"pkg1/C1.html\" title=\"class in pkg1",
"pkg1/C2.html\" title=\"class in pkg1",
"pkg1/C3.html\" title=\"class in pkg1",
"pkg1/C4.html\" title=\"class in pkg1",
"pkg1/ImplementsOrdering.html\" title=\"interface in pkg1",
"pkg1/MethodOrder.html\" title=\"class in pkg1",
"pkg1/OverrideOrdering.html\" title=\"class in pkg1",
"pkg1/UsedClass.html\" title=\"class in pkg1");
}
void checkClassUseOrdering(String usePage) {
@ -359,7 +343,6 @@ public class TestOrdering extends JavadocTester {
List<String> cmdArgs = new ArrayList();
cmdArgs.add("-d");
cmdArgs.add("out-2");
cmdArgs.add("--frames");
cmdArgs.add("-sourcepath");
cmdArgs.add("src");
cmdArgs.add("-package");
@ -419,25 +402,6 @@ public class TestOrdering extends JavadocTester {
"<a href=\"add3/add/Add.ADD.html\" title=\"enum in add3.add\">",
"<a href=\"add3/add/add/Add.ADD.html\" title=\"enum in add3.add.add\">",
"<a href=\"add3/add/add/add/Add.ADD.html\" title=\"enum in add3.add.add.add\">");
checkOrder("overview-frame.html",
"<a href=\"package-frame.html\" target=\"packageFrame\">&lt;unnamed package&gt;</a>",
"<a href=\"add0/package-frame.html\" target=\"packageFrame\">add0</a>",
"<a href=\"add0/add/package-frame.html\" target=\"packageFrame\">add0.add</a>",
"<a href=\"add0/add/add/package-frame.html\" target=\"packageFrame\">add0.add.add</a>",
"<a href=\"add0/add/add/add/package-frame.html\" target=\"packageFrame\">add0.add.add.add</a>",
"<a href=\"add1/package-frame.html\" target=\"packageFrame\">add1</a>",
"<a href=\"add1/add/package-frame.html\" target=\"packageFrame\">add1.add</a>",
"<a href=\"add1/add/add/package-frame.html\" target=\"packageFrame\">add1.add.add</a>",
"<a href=\"add1/add/add/add/package-frame.html\" target=\"packageFrame\">add1.add.add.add</a>",
"<a href=\"add2/package-frame.html\" target=\"packageFrame\">add2</a>",
"<a href=\"add2/add/package-frame.html\" target=\"packageFrame\">add2.add</a>",
"<a href=\"add2/add/add/package-frame.html\" target=\"packageFrame\">add2.add.add</a>",
"<a href=\"add2/add/add/add/package-frame.html\" target=\"packageFrame\">add2.add.add.add</a>",
"<a href=\"add3/package-frame.html\" target=\"packageFrame\">add3</a>",
"<a href=\"add3/add/package-frame.html\" target=\"packageFrame\">add3.add</a>",
"<a href=\"add3/add/add/package-frame.html\" target=\"packageFrame\">add3.add.add</a>",
"<a href=\"add3/add/add/add/package-frame.html\" target=\"packageFrame\">add3.add.add.add</a></li>");
}
void emitFile(String pkgname, String clsname, ListOrder order) throws IOException {

View File

@ -47,7 +47,6 @@ public class TestOverview extends JavadocTester {
"-doctitle", "Document Title",
"-windowtitle", "Window Title",
"-overview", testSrc("overview.html"),
"--frames",
"-sourcepath", testSrc("src"),
"p1", "p2");
checkExit(Exit.OK);
@ -60,7 +59,6 @@ public class TestOverview extends JavadocTester {
"-doctitle", "Document Title",
"-windowtitle", "Window Title",
"-overview", testSrc("overview.html"),
"--frames",
"-sourcepath", testSrc("msrc"),
"p1", "p2");
checkExit(Exit.OK);
@ -68,7 +66,7 @@ public class TestOverview extends JavadocTester {
}
void checkOverview() {
checkOutput("overview-summary.html", true,
checkOutput("index.html", true,
"<main role=\"main\">\n"
+ "<div class=\"header\">\n"
+ "<h1 class=\"title\">Document Title</h1>\n"

View File

@ -46,7 +46,6 @@ public class TestPackageDeprecation extends JavadocTester {
javadoc("-d", "out-default",
"-sourcepath", testSrc,
"-use",
"--frames",
"pkg", "pkg1", testSrc("C2.java"), testSrc("FooDepr.java"));
checkExit(Exit.OK);
@ -66,14 +65,11 @@ public class TestPackageDeprecation extends JavadocTester {
"-sourcepath", testSrc,
"-use",
"-nodeprecated",
"--frames",
"pkg", "pkg1", testSrc("C2.java"), testSrc("FooDepr.java"));
checkExit(Exit.OK);
checkOutput("overview-summary.html", false,
checkOutput("index.html", false,
"pkg1");
checkOutput("allclasses-frame.html", false,
"FooDepr");
checkOutput("class-use/C2.ModalExclusionType.html", true,
"<th class=\"colFirst\" scope=\"row\"><a href=\"#unnamed.package\">&lt;Unnamed&gt;</a></th>");

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2002, 2019, 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
@ -44,19 +44,15 @@ public class TestRecurseSubPackages extends JavadocTester {
@Test
public void test() {
javadoc("-d", "out",
"--frames",
"-sourcepath", testSrc,
"-subpackages", "pkg1",
"-exclude", "pkg1.pkg2.packageToExclude");
checkExit(Exit.OK);
for (int i = 1; i <= 6; i++) {
checkOutput("allclasses-frame.html", true,
checkOutput("allclasses-index.html", true,
"C" + i + ".html");
}
checkOutput("allclasses-frame.html", false,
"DummyClass.html");
}
}

View File

@ -50,7 +50,6 @@ public class TestRelativeLinks extends JavadocTester {
public void test() {
javadoc("-d", "out",
"-use",
"--frames",
"-sourcepath", testSrc,
"pkg", "pkg2");
checkExit(Exit.ERROR);
@ -98,7 +97,7 @@ public class TestRelativeLinks extends JavadocTester {
" <a href=\"../../pkg/relative-multi-line-link.html\">relative-multi-line-link</a>.");
// PACKAGE OVERVIEW
checkOutput("overview-summary.html", true,
checkOutput("index.html", true,
"<a href=\"./pkg/relative-package-link.html\">relative package link</a>");
}

View File

@ -70,7 +70,6 @@ public class TestSearch extends JavadocTester {
"-Xdoclint:none",
"-sourcepath", testSrc,
"-use",
"--frames",
"pkg", "pkg1", "pkg2", "pkg3");
checkExit(Exit.OK);
checkInvalidUsageIndexTag();
@ -97,7 +96,6 @@ public class TestSearch extends JavadocTester {
"-Xdoclint:all",
"-sourcepath", testSrc,
"-use",
"--frames",
"pkg", "pkg1", "pkg2", "pkg3");
checkExit(Exit.ERROR);
checkDocLintErrors();
@ -124,7 +122,6 @@ public class TestSearch extends JavadocTester {
"-Xdoclint:none",
"-sourcepath", testSrc,
"-use",
"--frames",
"pkg", "pkg1", "pkg2", "pkg3");
checkExit(Exit.OK);
checkSearchOutput(false);
@ -150,7 +147,6 @@ public class TestSearch extends JavadocTester {
"-Xdoclint:none",
"-sourcepath", testSrc,
"-use",
"--frames",
"pkg", "pkg1", "pkg2", "pkg3");
checkExit(Exit.OK);
checkSearchOutput(true);
@ -177,7 +173,6 @@ public class TestSearch extends JavadocTester {
"-Xdoclint:none",
"-sourcepath", testSrc,
"-use",
"--frames",
"pkg", "pkg1", "pkg2", "pkg3");
checkExit(Exit.OK);
checkSearchOutput(false);
@ -201,7 +196,6 @@ public class TestSearch extends JavadocTester {
"-Xdoclint:none",
"-sourcepath", testSrc,
"-use",
"--frames",
"pkg", "pkg1", "pkg2", "pkg3");
checkExit(Exit.OK);
checkSearchOutput(true);
@ -226,7 +220,6 @@ public class TestSearch extends JavadocTester {
"-Xdoclint:none",
"-sourcepath", testSrc,
"-use",
"--frames",
"pkg", "pkg1", "pkg2", "pkg3");
checkExit(Exit.OK);
@ -252,7 +245,6 @@ public class TestSearch extends JavadocTester {
"-Xdoclint:none",
"-sourcepath", testSrc,
"-use",
"--frames",
"pkg", "pkg1", "pkg2", "pkg3");
checkExit(Exit.OK);
checkInvalidUsageIndexTag();
@ -280,7 +272,6 @@ public class TestSearch extends JavadocTester {
"--disable-javafx-strict-checks",
"-package",
"-use",
"--frames",
"pkgfx", "pkg3");
checkExit(Exit.OK);
checkSearchOutput(true);
@ -306,7 +297,6 @@ public class TestSearch extends JavadocTester {
"-Xdoclint:none",
"-sourcepath", testSrc,
"-use",
"--frames",
"pkg", "pkg1", "pkg2", "pkg3");
checkExit(Exit.OK);
checkSearchOutput(true, false);
@ -373,7 +363,7 @@ public class TestSearch extends JavadocTester {
}
void checkSearchOutput(boolean expectedOutput) {
checkSearchOutput("overview-summary.html", expectedOutput, true);
checkSearchOutput("index.html", expectedOutput, true);
}
void checkSearchIndex(boolean expectedOutput) {
@ -390,7 +380,7 @@ public class TestSearch extends JavadocTester {
}
void checkSearchOutput(boolean expectedOutput, boolean moduleDirectoriesVar) {
checkSearchOutput("overview-summary.html", expectedOutput, moduleDirectoriesVar);
checkSearchOutput("index.html", expectedOutput, moduleDirectoriesVar);
}
void checkSearchOutput(String fileName, boolean expectedOutput, boolean moduleDirectoriesVar) {

View File

@ -113,13 +113,12 @@ public class TestSummaryTag extends JavadocTester {
@Test
public void test3() {
javadoc("-d", "out3",
"--frames",
"-sourcepath", testSrc,
"-overview", testSrc("p3/overview.html"),
"p3");
checkExit(Exit.OK);
checkOutput("overview-summary.html", true,
checkOutput("index.html", true,
"<div class=\"block\">The first... line second from ...</div>");
}
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 2019, 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
@ -47,7 +47,6 @@ public class TestTopOption extends JavadocTester {
"-use",
"-top", "TOP TEXT",
"-d", "out-1",
"--frames",
"-sourcepath", testSrc,
"pkg");
checkExit(Exit.OK);
@ -59,7 +58,7 @@ public class TestTopOption extends JavadocTester {
"pkg/class-use/Cl.html",
"pkg/package-summary.html",
"pkg/package-use.html",
"overview-summary.html",
"index.html",
"overview-tree.html",
"constant-values.html",
"help-doc.html");
@ -71,7 +70,6 @@ public class TestTopOption extends JavadocTester {
"-use",
"-top", "\u0130{@docroot}TOP TEXT",
"-d", "out-2",
"--frames",
"-sourcepath", testSrc,
"pkg");
checkExit(Exit.OK);
@ -83,7 +81,7 @@ public class TestTopOption extends JavadocTester {
"pkg/class-use/Cl.html",
"pkg/package-summary.html",
"pkg/package-use.html",
"overview-summary.html",
"index.html",
"overview-tree.html",
"constant-values.html",
"help-doc.html");

View File

@ -47,7 +47,6 @@ public class TestUseOption extends JavadocTester {
javadoc("-d", "out-1",
"-sourcepath", testSrc,
"-use",
"--frames",
"pkg1", "pkg2");
checkExit(Exit.OK);
@ -80,10 +79,6 @@ public class TestUseOption extends JavadocTester {
"Method in C8."
);
checkOutput("pkg2/class-use/C3.html", true,
"<a href=\"../../index.html?pkg2/class-use/C3.html\" target=\"_top\">"
+ "Frames</a></li>"
);
checkOutput("pkg1/class-use/UsedClass.html", true,
"that return types with arguments of type"
);

View File

@ -1,228 +0,0 @@
/*
* 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
* 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.
*/
/*
* @test
* @bug 8016675 8026736 8196202
* @summary Test for window title.
* @author Bhavesh Patel
* @library ../../lib
* @modules jdk.javadoc/jdk.javadoc.internal.tool
* @build javadoc.tester.*
* @run main TestWindowTitle
*/
import javadoc.tester.JavadocTester;
public class TestWindowTitle extends JavadocTester {
public static void main(String... args) throws Exception {
TestWindowTitle tester = new TestWindowTitle();
tester.runTests();
tester.printSummary();
}
@Test
public void testJavaScriptChars() {
// Window title with JavaScript special characters.
String title = "Testing \"Window 'Title'\" with a \\ backslash and a / "
+ "forward slash and a \u00e8 unicode char also a tab and also a "
+ "\t special character another \u0002 unicode)";
javadoc("-d", "out-js-chars",
"-windowtitle", title,
"--frames",
"-sourcepath", testSrc,
"p1", "p2");
checkExit(Exit.OK);
checkOutput("overview-summary.html", true,
"parent.document.title=\"Overview (Testing \\\"Window \\\'Title\\\'\\\" "
+ "with a \\\\ backslash and a / forward slash and a \\u00E8 unicode char "
+ "also a tab and also a \\t special character another \\u0002 unicode))\";"
);
checkOutput("overview-summary.html", false,
"parent.document.title=\"Overview (Testing \"Window \'Title\'\" "
+ "with a \\ backslash and a / forward slash and a \u00E8 unicode char "
+ "also a tab and also a \t special character another \u0002 unicode))\";"
);
}
@Test
public void testScriptTag() {
// Window title with a script tag.
String title = "Testing script tag in title </title><script>alert(\"Should not pop up\")</script>.";
javadoc("-d", "out-script",
"-windowtitle", title,
"--frames",
"-sourcepath", testSrc,
"p1", "p2");
checkExit(Exit.OK);
checkOutput("overview-summary.html", true,
"parent.document.title=\"Overview (Testing script tag in title alert"
+ "(\\\"Should not pop up\\\").)\";"
);
checkOutput("p2/C2.html", true,
"parent.document.title=\"C2 (Testing script tag in title alert"
+ "(\\\"Should not pop up\\\").)\";"
);
checkOutput("overview-summary.html", false,
"parent.document.title=\"Overview (Testing script tag in title </title><script>"
+ "alert(\\\"Should not pop up\\\")</script>.)\";"
);
checkOutput("p2/C2.html", false,
"parent.document.title=\"C2 (Testing script tag in title </title><script>"
+ "alert(\\\"Should not pop up\\\")</script>.)\";"
);
}
@Test
public void testHtmlTags() {
// Window title with other HTML tags.
String title = "Testing another <p>HTML</p> tag. Another <h1>tag</h1>. A "
+ "<span id=\"testTag\">tag with attributes</span>. <script and </p are not tags.";
javadoc("-d", "out-html-tags",
"-windowtitle", title,
"--frames",
"-sourcepath", testSrc,
"p1", "p2");
checkExit(Exit.OK);
checkOutput("overview-summary.html", true,
"parent.document.title=\"Overview (Testing another HTML tag. Another tag. A "
+ "tag with attributes. <script and </p are not tags.)\";"
);
checkOutput("overview-summary.html", false,
"parent.document.title=\"Overview (Testing another <p>HTML</p> tag. Another "
+ "<h1>tag</h1>. A <span id=\"testTag\">tag with attributes</span>. <script and "
+ "</p are not tags.)\";"
);
}
@Test
public void testHtmlEntities() {
// Window title using entities.
String title = "Testing entities &lt;script&gt;alert(\"Should not pop up\")&lt;/script&gt;.";
javadoc("-d", "out-html-entities",
"-windowtitle", title,
"--frames",
"-sourcepath", testSrc,
"p1", "p2");
checkOutput("overview-summary.html", true,
"parent.document.title=\"Overview (Testing entities &lt;script&gt;alert(\\\"Should "
+ "not pop up\\\")&lt;/script&gt;.)\";"
);
checkOutput("overview-summary.html", false,
"parent.document.title=\"Overview (Testing entities alert(\\\"Should not pop up\\\").)\";"
);
}
@Test
public void testEmptyTags() {
// Window title with just empty HTML tags.
String title = "</title><script></script>";
javadoc("-d", "out-empty-tags",
"-windowtitle", title,
"--frames",
"-sourcepath", testSrc,
"p1", "p2");
checkOutput("overview-summary.html", true,
"parent.document.title=\"Overview\";"
);
checkOutput("overview-summary.html", false,
"parent.document.title=\"Overview (</title><script></script>)\";"
);
}
@Test
public void testUnicode() {
//Window title with unicode characters.
String title = "Testing unicode \u003cscript\u003ealert(\"Should not pop up\")\u003c/script\u003e.";
javadoc("-d", "out-unicode",
"-windowtitle", title,
"--frames",
"-sourcepath", testSrc,
"p1", "p2");
checkExit(Exit.OK);
checkOutput("overview-summary.html", true,
"parent.document.title=\"Overview (Testing unicode alert(\\\"Should "
+ "not pop up\\\").)\";"
);
checkOutput("overview-summary.html", false,
"parent.document.title=\"Overview (Testing unicode <script>alert(\\\"Should not pop up\\\")"
+ "</script>.)\";"
);
}
@Test
public void testEmpty() {
// An empty window title.
String title = "";
javadoc("-d", "out-empty",
"-windowtitle", title,
"--frames",
"-sourcepath", testSrc, "p1", "p2");
checkExit(Exit.OK);
checkOutput("overview-summary.html", true,
"parent.document.title=\"Overview\";"
);
}
@Test
public void testDocTitle() {
// Window title with JavaScript special characters, specified with -doctitle
String title = "Testing \"Window 'Title'\" with a \\ backslash and a / "
+ "forward slash and a \u00e8 unicode char also a tab and also a "
+ "\t special character another \u0002 unicode)";
javadoc("-d", "out-doctitle",
"-doctitle", title,
"--frames",
"-sourcepath", testSrc,
"p1", "p2");
checkExit(Exit.OK);
checkOutput("overview-summary.html", false,
"parent.document.title=\"Overview (Testing \\\"Window \\\'Title\\\'\\\" "
+ "with a \\\\ backslash and a / forward slash and a \\u00E8 unicode char "
+ "also a tab and also a \\t special character another \\u0002 unicode)\";"
);
}
}

View File

@ -1,27 +0,0 @@
/*
* Copyright (c) 2013, 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 p1;
public class C1 {
}

View File

@ -1,27 +0,0 @@
/*
* Copyright (c) 2013, 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 p2;
public class C2 {
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2016, 2019, 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
@ -240,7 +240,6 @@ public class TestScriptInComment {
opts.add(srcDir.getPath());
opts.add("-d");
opts.add(outDir.getPath());
opts.add("--frames");
if (option.text != null)
opts.add(option.text);
for (String opt: template.getOpts(srcDir)) {