8195795: Organize output files by module/package, not just package
Reviewed-by: ksrini, mchung, erikj
This commit is contained in:
parent
0a40080ee1
commit
e7f7bcdb06
@ -1,4 +1,4 @@
|
||||
# Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@ -200,7 +200,7 @@ JAVASE_LONG_NAME := Java<sup>®</sup> Platform, Standard Edition
|
||||
#
|
||||
define setup_gengraph_dot_to_png
|
||||
$1_$2_DOT_SRC := $$($1_GENGRAPHS_DIR)/$2.dot
|
||||
$1_$2_PNG_TARGET := $$($1_TARGET_DIR)/$2-graph.png
|
||||
$1_$2_PNG_TARGET := $$($1_TARGET_DIR)/$2/module-graph.png
|
||||
|
||||
# For each module needing a graph, create a png file from the dot file
|
||||
# generated by the GenGraphs tool and store it in the target dir.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -64,7 +64,7 @@ public class ModuleGraph implements Taglet {
|
||||
}
|
||||
|
||||
String moduleName = ((ModuleElement) element).getQualifiedName().toString();
|
||||
String imageFile = moduleName + "-graph.png";
|
||||
String imageFile = moduleName + "/module-graph.png";
|
||||
int thumbnailHeight = -1;
|
||||
String hoverImage = "";
|
||||
if (!moduleName.equals("java.base")) {
|
||||
|
@ -75,7 +75,7 @@ public class AnnotationTypeWriterImpl extends SubWriterHolderWriter
|
||||
*/
|
||||
public AnnotationTypeWriterImpl(HtmlConfiguration configuration,
|
||||
TypeElement annotationType) {
|
||||
super(configuration, DocPath.forClass(configuration.utils, annotationType));
|
||||
super(configuration, configuration.docPaths.forClass(annotationType));
|
||||
this.annotationType = annotationType;
|
||||
configuration.currentTypeElement = annotationType;
|
||||
}
|
||||
|
@ -233,9 +233,9 @@ public class ClassUseWriter extends SubWriterHolderWriter {
|
||||
public static void generate(HtmlConfiguration configuration, ClassUseMapper mapper,
|
||||
TypeElement typeElement) throws DocFileIOException {
|
||||
ClassUseWriter clsgen;
|
||||
DocPath path = DocPath.forPackage(configuration.utils, typeElement)
|
||||
DocPath path = configuration.docPaths.forPackage(typeElement)
|
||||
.resolve(DocPaths.CLASS_USE)
|
||||
.resolve(DocPath.forName(configuration.utils, typeElement));
|
||||
.resolve(configuration.docPaths.forName( typeElement));
|
||||
clsgen = new ClassUseWriter(configuration, mapper, path, typeElement);
|
||||
clsgen.generateClassUseFile();
|
||||
}
|
||||
|
@ -85,7 +85,7 @@ public class ClassWriterImpl extends SubWriterHolderWriter implements ClassWrite
|
||||
*/
|
||||
public ClassWriterImpl(HtmlConfiguration configuration, TypeElement typeElement,
|
||||
ClassTree classTree) {
|
||||
super(configuration, DocPath.forClass(configuration.utils, typeElement));
|
||||
super(configuration, configuration.docPaths.forClass(typeElement));
|
||||
this.typeElement = typeElement;
|
||||
configuration.currentTypeElement = typeElement;
|
||||
this.classtree = classTree;
|
||||
|
@ -74,12 +74,18 @@ public class DocFilesHandlerImpl implements DocFilesHandler {
|
||||
|
||||
switch (element.getKind()) {
|
||||
case MODULE:
|
||||
location = configuration.utils.getLocationForModule((ModuleElement)element);
|
||||
ModuleElement mdle = (ModuleElement)element;
|
||||
location = configuration.utils.getLocationForModule(mdle);
|
||||
source = DocPaths.DOC_FILES;
|
||||
break;
|
||||
case PACKAGE:
|
||||
location = configuration.utils.getLocationForPackage((PackageElement)element);
|
||||
source = DocPath.forPackage((PackageElement)element).resolve(DocPaths.DOC_FILES);
|
||||
PackageElement pkg = (PackageElement)element;
|
||||
location = configuration.utils.getLocationForPackage(pkg);
|
||||
// Note, given that we have a module-specific location,
|
||||
// we want a module-relative path for the source, and not the
|
||||
// standard path that may include the module directory
|
||||
source = DocPath.create(pkg.getQualifiedName().toString().replace('.', '/'))
|
||||
.resolve(DocPaths.DOC_FILES);
|
||||
break;
|
||||
default:
|
||||
throw new AssertionError("unsupported element " + element);
|
||||
@ -103,10 +109,10 @@ public class DocFilesHandlerImpl implements DocFilesHandler {
|
||||
DocPath path = null;
|
||||
switch (this.element.getKind()) {
|
||||
case MODULE:
|
||||
path = DocPath.forModule((ModuleElement)this.element);
|
||||
path = DocPaths.forModule((ModuleElement)this.element);
|
||||
break;
|
||||
case PACKAGE:
|
||||
path = DocPath.forPackage((PackageElement)this.element);
|
||||
path = configuration.docPaths.forPackage((PackageElement)this.element);
|
||||
break;
|
||||
default:
|
||||
throw new AssertionError("unknown kind:" + this.element.getKind());
|
||||
|
@ -209,6 +209,12 @@ public class HtmlConfiguration extends BaseConfiguration {
|
||||
*/
|
||||
public HtmlVersion htmlVersion = null;
|
||||
|
||||
/**
|
||||
* Flag to enable/disable use of module directories when generating docs for modules
|
||||
* Default: on (module directories are enabled).
|
||||
*/
|
||||
public boolean useModuleDirectories = true;
|
||||
|
||||
/**
|
||||
* Collected set of doclint options
|
||||
*/
|
||||
@ -245,6 +251,8 @@ public class HtmlConfiguration extends BaseConfiguration {
|
||||
|
||||
protected final Messages messages;
|
||||
|
||||
protected DocPaths docPaths;
|
||||
|
||||
/**
|
||||
* Creates an object to hold the configuration for a doclet.
|
||||
*
|
||||
@ -357,6 +365,7 @@ public class HtmlConfiguration extends BaseConfiguration {
|
||||
}
|
||||
}
|
||||
}
|
||||
docPaths = new DocPaths(utils, useModuleDirectories);
|
||||
setCreateOverview();
|
||||
setTopFile(docEnv);
|
||||
workArounds.initDocLint(doclintOpts.values(), tagletManager.getCustomTagNames(),
|
||||
@ -406,15 +415,15 @@ public class HtmlConfiguration extends BaseConfiguration {
|
||||
topFile = DocPaths.overviewSummary(frames);
|
||||
} else {
|
||||
if (showModules) {
|
||||
topFile = DocPath.empty.resolve(DocPaths.moduleSummary(modules.first()));
|
||||
topFile = DocPath.empty.resolve(docPaths.moduleSummary(modules.first()));
|
||||
} else if (packages.size() == 1 && packages.first().isUnnamed()) {
|
||||
List<TypeElement> classes = new ArrayList<>(getIncludedTypeElements());
|
||||
if (!classes.isEmpty()) {
|
||||
TypeElement te = getValidClass(classes);
|
||||
topFile = DocPath.forClass(utils, te);
|
||||
topFile = docPaths.forClass(te);
|
||||
}
|
||||
} else if (!packages.isEmpty()) {
|
||||
topFile = DocPath.forPackage(packages.first()).resolve(DocPaths.PACKAGE_SUMMARY);
|
||||
topFile = docPaths.forPackage(packages.first()).resolve(DocPaths.PACKAGE_SUMMARY);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -837,6 +846,13 @@ public class HtmlConfiguration extends BaseConfiguration {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
},
|
||||
new XOption(resources, "--no-module-directories") {
|
||||
@Override
|
||||
public boolean process(String option, List<String> args) {
|
||||
useModuleDirectories = false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
};
|
||||
Set<Doclet.Option> oset = new TreeSet<>();
|
||||
|
@ -155,6 +155,8 @@ public class HtmlDocletWriter {
|
||||
|
||||
protected final Links links;
|
||||
|
||||
protected final DocPaths docPaths;
|
||||
|
||||
/**
|
||||
* To check whether annotation heading is printed or not.
|
||||
*/
|
||||
@ -202,6 +204,7 @@ public class HtmlDocletWriter {
|
||||
this.path = path;
|
||||
this.pathToRoot = path.parent().invert();
|
||||
this.filename = path.basename();
|
||||
this.docPaths = configuration.docPaths;
|
||||
|
||||
messages.notice("doclet.Generating_0",
|
||||
DocFile.createFileForOutput(configuration, path).getPath());
|
||||
@ -399,7 +402,7 @@ public class HtmlDocletWriter {
|
||||
*/
|
||||
public Content getTargetModuleLink(String target, Content label, ModuleElement mdle) {
|
||||
return links.createLink(pathToRoot.resolve(
|
||||
DocPaths.moduleSummary(mdle)), label, "", target);
|
||||
docPaths.moduleSummary(mdle)), label, "", target);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -896,7 +899,7 @@ public class HtmlDocletWriter {
|
||||
* @param name File name, to which path string is.
|
||||
*/
|
||||
protected DocPath pathString(PackageElement packageElement, DocPath name) {
|
||||
return pathToRoot.resolve(DocPath.forPackage(packageElement).resolve(name));
|
||||
return pathToRoot.resolve(docPaths.forPackage(packageElement).resolve(name));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -968,7 +971,7 @@ public class HtmlDocletWriter {
|
||||
public Content getModuleLink(ModuleElement mdle, Content label) {
|
||||
boolean included = utils.isIncluded(mdle);
|
||||
return (included)
|
||||
? links.createLink(pathToRoot.resolve(DocPaths.moduleSummary(mdle)), label, "", "")
|
||||
? links.createLink(pathToRoot.resolve(docPaths.moduleSummary(mdle)), label, "", "")
|
||||
: label;
|
||||
}
|
||||
|
||||
@ -997,7 +1000,7 @@ public class HtmlDocletWriter {
|
||||
}
|
||||
DocPath href = pathToRoot
|
||||
.resolve(DocPaths.SOURCE_OUTPUT)
|
||||
.resolve(DocPath.forClass(utils, te));
|
||||
.resolve(docPaths.forClass(te));
|
||||
Content linkContent = links.createLink(href
|
||||
.fragment(SourceToHTMLConverter.getAnchorName(utils, typeElement)), label, "", "");
|
||||
htmltree.addContent(linkContent);
|
||||
@ -1086,7 +1089,7 @@ public class HtmlDocletWriter {
|
||||
|
||||
public DocLink getCrossModuleLink(String mdleName) {
|
||||
return configuration.extern.getExternalLink(mdleName, pathToRoot,
|
||||
DocPaths.moduleSummary(mdleName).getPath());
|
||||
docPaths.moduleSummary(mdleName).getPath());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1945,22 +1948,22 @@ public class HtmlDocletWriter {
|
||||
DocPath redirectPathFromRoot = new SimpleElementVisitor9<DocPath, Void>() {
|
||||
@Override
|
||||
public DocPath visitType(TypeElement e, Void p) {
|
||||
return DocPath.forPackage(utils.containingPackage(e));
|
||||
return docPaths.forPackage(utils.containingPackage(e));
|
||||
}
|
||||
|
||||
@Override
|
||||
public DocPath visitPackage(PackageElement e, Void p) {
|
||||
return DocPath.forPackage(e);
|
||||
return docPaths.forPackage(e);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DocPath visitVariable(VariableElement e, Void p) {
|
||||
return DocPath.forPackage(utils.containingPackage(e));
|
||||
return docPaths.forPackage(utils.containingPackage(e));
|
||||
}
|
||||
|
||||
@Override
|
||||
public DocPath visitExecutable(ExecutableElement e, Void p) {
|
||||
return DocPath.forPackage(utils.containingPackage(e));
|
||||
return docPaths.forPackage(utils.containingPackage(e));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -35,8 +35,9 @@ import javax.lang.model.type.TypeMirror;
|
||||
import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
|
||||
import jdk.javadoc.internal.doclets.toolkit.BaseConfiguration;
|
||||
import jdk.javadoc.internal.doclets.toolkit.Content;
|
||||
import jdk.javadoc.internal.doclets.toolkit.Resources;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.Utils;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.links.LinkFactory;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.links.LinkInfo;
|
||||
|
||||
@ -53,9 +54,12 @@ import jdk.javadoc.internal.doclets.toolkit.util.links.LinkInfo;
|
||||
public class LinkFactoryImpl extends LinkFactory {
|
||||
|
||||
private final HtmlDocletWriter m_writer;
|
||||
private final DocPaths docPaths;
|
||||
|
||||
public LinkFactoryImpl(HtmlDocletWriter writer) {
|
||||
super(writer.configuration.utils);
|
||||
m_writer = writer;
|
||||
docPaths = writer.configuration.docPaths;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -72,7 +76,6 @@ public class LinkFactoryImpl extends LinkFactory {
|
||||
@Override
|
||||
protected Content getClassLink(LinkInfo linkInfo) {
|
||||
BaseConfiguration configuration = m_writer.configuration;
|
||||
Utils utils = configuration.utils;
|
||||
LinkInfoImpl classLinkInfo = (LinkInfoImpl) linkInfo;
|
||||
boolean noLabel = linkInfo.label == null || linkInfo.label.isEmpty();
|
||||
TypeElement typeElement = classLinkInfo.typeElement;
|
||||
@ -84,14 +87,14 @@ public class LinkFactoryImpl extends LinkFactory {
|
||||
utils.isTypeVariable(utils.getComponentType(classLinkInfo.type));
|
||||
title = getClassToolTip(typeElement, isTypeLink);
|
||||
}
|
||||
Content label = classLinkInfo.getClassLinkLabel(m_writer.configuration);
|
||||
Content label = classLinkInfo.getClassLinkLabel(configuration);
|
||||
|
||||
Content link = new ContentBuilder();
|
||||
if (utils.isIncluded(typeElement)) {
|
||||
if (configuration.isGeneratedDoc(typeElement)) {
|
||||
DocPath filename = getPath(classLinkInfo);
|
||||
if (linkInfo.linkToSelf ||
|
||||
!(DocPath.forName(utils, typeElement)).equals(m_writer.filename)) {
|
||||
!(docPaths.forName(typeElement)).equals(m_writer.filename)) {
|
||||
link.addContent(m_writer.links.createLink(
|
||||
filename.fragment(classLinkInfo.where),
|
||||
label,
|
||||
@ -140,7 +143,6 @@ public class LinkFactoryImpl extends LinkFactory {
|
||||
|
||||
@Override
|
||||
public Content getTypeAnnotationLinks(LinkInfo linkInfo) {
|
||||
Utils utils = ((LinkInfoImpl)linkInfo).utils;
|
||||
ContentBuilder links = new ContentBuilder();
|
||||
List<? extends AnnotationMirror> annotations;
|
||||
if (utils.isAnnotated(linkInfo.type)) {
|
||||
@ -191,22 +193,21 @@ public class LinkFactoryImpl extends LinkFactory {
|
||||
* @return the tool tip for the appropriate class.
|
||||
*/
|
||||
private String getClassToolTip(TypeElement typeElement, boolean isTypeLink) {
|
||||
BaseConfiguration configuration = m_writer.configuration;
|
||||
Utils utils = configuration.utils;
|
||||
Resources resources = m_writer.configuration.getResources();
|
||||
if (isTypeLink) {
|
||||
return configuration.getText("doclet.Href_Type_Param_Title",
|
||||
return resources.getText("doclet.Href_Type_Param_Title",
|
||||
utils.getSimpleName(typeElement));
|
||||
} else if (utils.isInterface(typeElement)){
|
||||
return configuration.getText("doclet.Href_Interface_Title",
|
||||
return resources.getText("doclet.Href_Interface_Title",
|
||||
utils.getPackageName(utils.containingPackage(typeElement)));
|
||||
} else if (utils.isAnnotationType(typeElement)) {
|
||||
return configuration.getText("doclet.Href_Annotation_Title",
|
||||
return resources.getText("doclet.Href_Annotation_Title",
|
||||
utils.getPackageName(utils.containingPackage(typeElement)));
|
||||
} else if (utils.isEnum(typeElement)) {
|
||||
return configuration.getText("doclet.Href_Enum_Title",
|
||||
return resources.getText("doclet.Href_Enum_Title",
|
||||
utils.getPackageName(utils.containingPackage(typeElement)));
|
||||
} else {
|
||||
return configuration.getText("doclet.Href_Class_Title",
|
||||
return resources.getText("doclet.Href_Class_Title",
|
||||
utils.getPackageName(utils.containingPackage(typeElement)));
|
||||
}
|
||||
}
|
||||
@ -223,8 +224,8 @@ public class LinkFactoryImpl extends LinkFactory {
|
||||
if (linkInfo.context == LinkInfoImpl.Kind.PACKAGE_FRAME) {
|
||||
//Not really necessary to do this but we want to be consistent
|
||||
//with 1.4.2 output.
|
||||
return DocPath.forName(linkInfo.utils, linkInfo.typeElement);
|
||||
return docPaths.forName(linkInfo.typeElement);
|
||||
}
|
||||
return m_writer.pathToRoot.resolve(DocPath.forClass(linkInfo.utils, linkInfo.typeElement));
|
||||
return m_writer.pathToRoot.resolve(docPaths.forClass(linkInfo.typeElement));
|
||||
}
|
||||
}
|
||||
|
@ -76,7 +76,7 @@ public class ModuleFrameWriter extends HtmlDocletWriter {
|
||||
* @param moduleElement moduleElement under consideration.
|
||||
*/
|
||||
public ModuleFrameWriter(HtmlConfiguration configuration, ModuleElement moduleElement) {
|
||||
super(configuration, DocPaths.moduleTypeFrame(moduleElement));
|
||||
super(configuration, configuration.docPaths.moduleTypeFrame(moduleElement));
|
||||
this.mdle = moduleElement;
|
||||
if (configuration.getSpecifiedPackageElements().isEmpty()) {
|
||||
documentedClasses = new TreeSet<>(utils.makeGeneralPurposeComparator());
|
||||
@ -101,7 +101,7 @@ public class ModuleFrameWriter extends HtmlDocletWriter {
|
||||
? HtmlTree.MAIN()
|
||||
: body;
|
||||
Content heading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, HtmlStyle.bar,
|
||||
mdlgen.links.createLink(DocPaths.moduleSummary(moduleElement), mdlLabel, "", "classFrame"));
|
||||
mdlgen.links.createLink(configuration.docPaths.moduleSummary(moduleElement), mdlLabel, "", "classFrame"));
|
||||
htmlTree.addContent(heading);
|
||||
HtmlTree div = new HtmlTree(HtmlTag.DIV);
|
||||
div.setStyle(HtmlStyle.indexContainer);
|
||||
|
@ -114,9 +114,9 @@ public class ModuleIndexFrameWriter extends AbstractModuleIndexWriter {
|
||||
}
|
||||
|
||||
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));
|
||||
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.addAttr(HtmlAttr.TARGET, target);
|
||||
|
@ -76,7 +76,7 @@ public class ModulePackageIndexFrameWriter extends AbstractModuleIndexWriter {
|
||||
* @param mdle the module being documented
|
||||
*/
|
||||
public static void generate(HtmlConfiguration configuration, ModuleElement mdle) throws DocFileIOException {
|
||||
DocPath filename = DocPaths.moduleFrame(mdle);
|
||||
DocPath filename = configuration.docPaths.moduleFrame(mdle);
|
||||
ModulePackageIndexFrameWriter modpackgen = new ModulePackageIndexFrameWriter(configuration, filename);
|
||||
modpackgen.buildModulePackagesIndexFile("doclet.Window_Overview", false, mdle);
|
||||
}
|
||||
|
@ -178,7 +178,7 @@ public class ModuleWriterImpl extends HtmlDocletWriter implements ModuleSummaryW
|
||||
* @param mdle Module under consideration.
|
||||
*/
|
||||
public ModuleWriterImpl(HtmlConfiguration configuration, ModuleElement mdle) {
|
||||
super(configuration, DocPaths.moduleSummary(mdle));
|
||||
super(configuration, configuration.docPaths.moduleSummary(mdle));
|
||||
this.mdle = mdle;
|
||||
this.moduleMode = configuration.docEnv.getModuleMode();
|
||||
computeModulesData();
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -38,7 +38,6 @@ 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.DocPath;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
|
||||
|
||||
/**
|
||||
@ -79,7 +78,8 @@ public class PackageFrameWriter extends HtmlDocletWriter {
|
||||
* @param packageElement PackageElement under consideration.
|
||||
*/
|
||||
public PackageFrameWriter(HtmlConfiguration configuration, PackageElement packageElement) {
|
||||
super(configuration, DocPath.forPackage(packageElement).resolve(DocPaths.PACKAGE_FRAME));
|
||||
super(configuration,
|
||||
configuration.docPaths.forPackage(packageElement).resolve(DocPaths.PACKAGE_FRAME));
|
||||
this.packageElement = packageElement;
|
||||
if (configuration.getSpecifiedPackageElements().isEmpty()) {
|
||||
documentedClasses = new TreeSet<>(utils.makeGeneralPurposeComparator());
|
||||
|
@ -82,7 +82,7 @@ public class PackageTreeWriter extends AbstractTreeWriter {
|
||||
public static void generate(HtmlConfiguration configuration,
|
||||
PackageElement pkg, boolean noDeprecated)
|
||||
throws DocFileIOException {
|
||||
DocPath path = DocPath.forPackage(pkg).resolve(DocPaths.PACKAGE_TREE);
|
||||
DocPath path = configuration.docPaths.forPackage(pkg).resolve(DocPaths.PACKAGE_TREE);
|
||||
PackageTreeWriter packgen = new PackageTreeWriter(configuration, path, pkg);
|
||||
packgen.generatePackageTreeFile();
|
||||
}
|
||||
|
@ -75,7 +75,7 @@ public class PackageUseWriter extends SubWriterHolderWriter {
|
||||
public PackageUseWriter(HtmlConfiguration configuration,
|
||||
ClassUseMapper mapper, DocPath filename,
|
||||
PackageElement pkgElement) {
|
||||
super(configuration, DocPath.forPackage(pkgElement).resolve(filename));
|
||||
super(configuration, configuration.docPaths.forPackage(pkgElement).resolve(filename));
|
||||
this.packageElement = pkgElement;
|
||||
|
||||
// by examining all classes in this package, find what packages
|
||||
@ -221,7 +221,7 @@ public class PackageUseWriter extends SubWriterHolderWriter {
|
||||
.setColumnStyles(HtmlStyle.colFirst, HtmlStyle.colLast);
|
||||
for (TypeElement te : usingPackageToUsedClasses.get(packageName)) {
|
||||
DocPath dp = pathString(te,
|
||||
DocPaths.CLASS_USE.resolve(DocPath.forName(utils, te)));
|
||||
DocPaths.CLASS_USE.resolve(docPaths.forName(te)));
|
||||
Content stringContent = new StringContent(utils.getSimpleName(te));
|
||||
Content typeContent = links.createLink(dp.fragment(getPackageAnchorName(usingPackage)),
|
||||
stringContent);
|
||||
|
@ -91,8 +91,8 @@ public class PackageWriterImpl extends HtmlDocletWriter
|
||||
* @param packageElement PackageElement under consideration.
|
||||
*/
|
||||
public PackageWriterImpl(HtmlConfiguration configuration, PackageElement packageElement) {
|
||||
super(configuration, DocPath
|
||||
.forPackage(packageElement)
|
||||
super(configuration,
|
||||
configuration.docPaths.forPackage(packageElement)
|
||||
.resolve(DocPaths.PACKAGE_SUMMARY));
|
||||
this.packageElement = packageElement;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 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
|
||||
@ -182,7 +182,7 @@ public class SourceToHTMLConverter {
|
||||
int lineno = 1;
|
||||
String line;
|
||||
relativePath = DocPaths.SOURCE_OUTPUT
|
||||
.resolve(DocPath.forPackage(utils, te))
|
||||
.resolve(configuration.docPaths.forPackage(te))
|
||||
.invert();
|
||||
Content body = getHeader();
|
||||
Content pre = new HtmlTree(HtmlTag.PRE);
|
||||
@ -196,7 +196,7 @@ public class SourceToHTMLConverter {
|
||||
addBlankLines(pre);
|
||||
Content div = HtmlTree.DIV(HtmlStyle.sourceContainer, pre);
|
||||
body.addContent((configuration.allowTag(HtmlTag.MAIN)) ? HtmlTree.MAIN(div) : div);
|
||||
writeToFile(body, outputdir.resolve(DocPath.forClass(utils, te)));
|
||||
writeToFile(body, outputdir.resolve(configuration.docPaths.forClass(te)));
|
||||
} catch (IOException e) {
|
||||
String message = resources.getText("doclet.exception.read.file", fo.getName());
|
||||
throw new SimpleDocletException(message, e);
|
||||
|
@ -112,17 +112,18 @@ public class TagletWriterImpl extends TagletWriter {
|
||||
SearchIndexItem si = new SearchIndexItem();
|
||||
si.setLabel(tagText);
|
||||
si.setDescription(desc);
|
||||
DocPaths docPaths = configuration.docPaths;
|
||||
new SimpleElementVisitor9<Void, Void>() {
|
||||
@Override
|
||||
public Void visitModule(ModuleElement e, Void p) {
|
||||
si.setUrl(DocPaths.moduleSummary(e).getPath() + "#" + anchorName);
|
||||
si.setUrl(docPaths.moduleSummary(e).getPath() + "#" + anchorName);
|
||||
si.setHolder(utils.getFullyQualifiedName(element));
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Void visitPackage(PackageElement e, Void p) {
|
||||
si.setUrl(DocPath.forPackage(e).getPath()
|
||||
si.setUrl(docPaths.forPackage(e).getPath()
|
||||
+ "/" + DocPaths.PACKAGE_SUMMARY.getPath() + "#" + anchorName);
|
||||
si.setHolder(utils.getSimpleName(element));
|
||||
return null;
|
||||
@ -130,7 +131,7 @@ public class TagletWriterImpl extends TagletWriter {
|
||||
|
||||
@Override
|
||||
public Void visitType(TypeElement e, Void p) {
|
||||
si.setUrl(DocPath.forClass(utils, e).getPath() + "#" + anchorName);
|
||||
si.setUrl(docPaths.forClass(e).getPath() + "#" + anchorName);
|
||||
si.setHolder(utils.getFullyQualifiedName(e));
|
||||
return null;
|
||||
}
|
||||
@ -138,7 +139,7 @@ public class TagletWriterImpl extends TagletWriter {
|
||||
@Override
|
||||
public Void visitVariable(VariableElement e, Void p) {
|
||||
TypeElement te = utils.getEnclosingTypeElement(e);
|
||||
si.setUrl(DocPath.forClass(utils, te).getPath() + "#" + anchorName);
|
||||
si.setUrl(docPaths.forClass(te).getPath() + "#" + anchorName);
|
||||
si.setHolder(utils.getFullyQualifiedName(e) + "." + utils.getSimpleName(e));
|
||||
return null;
|
||||
}
|
||||
@ -146,7 +147,7 @@ public class TagletWriterImpl extends TagletWriter {
|
||||
@Override
|
||||
protected Void defaultAction(Element e, Void p) {
|
||||
TypeElement te = utils.getEnclosingTypeElement(e);
|
||||
si.setUrl(DocPath.forClass(utils, te).getPath() + "#" + anchorName);
|
||||
si.setUrl(docPaths.forClass(te).getPath() + "#" + anchorName);
|
||||
si.setHolder(utils.getFullyQualifiedName(e));
|
||||
return null;
|
||||
}
|
||||
|
@ -335,6 +335,10 @@ doclet.usage.notimestamp.description=\
|
||||
doclet.usage.nodeprecatedlist.description=\
|
||||
Do not generate deprecated list
|
||||
|
||||
doclet.usage.no-module-directories.description=\
|
||||
Do not group files for module documentation into \n\
|
||||
module-specific directories
|
||||
|
||||
doclet.usage.notree.description=\
|
||||
Do not generate class hierarchy
|
||||
|
||||
@ -370,7 +374,7 @@ doclet.usage.charset.description=\
|
||||
Charset for cross-platform viewing of generated documentation
|
||||
|
||||
doclet.usage.javafx.description=\
|
||||
Enable javafx functionality
|
||||
Enable JavaFX functionality
|
||||
|
||||
doclet.usage.helpfile.parameters=\
|
||||
<file>
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -65,8 +65,7 @@ import static javax.tools.Diagnostic.Kind.*;
|
||||
/**
|
||||
* Configure the output based on the options. Doclets should sub-class
|
||||
* BaseConfiguration, to configure and add their own options. This class contains
|
||||
* all user options which are supported by the 1.1 doclet and the standard
|
||||
* doclet.
|
||||
* all user options which are supported by the standard doclet.
|
||||
* <p>
|
||||
* <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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -46,7 +46,7 @@ import javax.lang.model.util.SimpleTypeVisitor9;
|
||||
import javax.lang.model.util.Types;
|
||||
|
||||
import jdk.javadoc.doclet.DocletEnvironment;
|
||||
import jdk.javadoc.internal.doclets.formats.html.HtmlConfiguration;
|
||||
import jdk.javadoc.internal.doclets.toolkit.BaseConfiguration;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.VisibleMemberMap.Kind;
|
||||
|
||||
/**
|
||||
@ -192,7 +192,7 @@ public class ClassUseMapper {
|
||||
private final Types typeUtils;
|
||||
private final Utils utils;
|
||||
|
||||
public ClassUseMapper(HtmlConfiguration configuration, ClassTree classtree) {
|
||||
public ClassUseMapper(BaseConfiguration configuration, ClassTree classtree) {
|
||||
docEnv = configuration.docEnv;
|
||||
elementUtils = docEnv.getElementUtils();
|
||||
typeUtils = docEnv.getTypeUtils();
|
||||
@ -414,11 +414,11 @@ public class ClassUseMapper {
|
||||
}
|
||||
}
|
||||
|
||||
private <T> List<T> refList(Map<TypeElement, List<T>> map, Element element) {
|
||||
private <T> List<T> refList(Map<TypeElement, List<T>> map, TypeElement element) {
|
||||
List<T> list = map.get(element);
|
||||
if (list == null) {
|
||||
list = new ArrayList<>();
|
||||
map.put((TypeElement) element, list);
|
||||
map.put(element, list);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
@ -570,7 +570,7 @@ public class ClassUseMapper {
|
||||
@Override
|
||||
public Void visitPackage(PackageElement e, Void p) {
|
||||
for (AnnotationMirror a : e.getAnnotationMirrors()) {
|
||||
refList(map, a.getAnnotationType().asElement()).add(holder);
|
||||
refList(map, (TypeElement) a.getAnnotationType().asElement()).add(holder);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
@ -61,94 +61,6 @@ public class DocPath {
|
||||
return (p == null) || p.isEmpty() ? empty : new DocPath(p);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the path for a class.
|
||||
* For example, if the class is java.lang.Object,
|
||||
* the path is java/lang/Object.html.
|
||||
* @param utils utility class for handling type elements
|
||||
* @param typeElement the type element
|
||||
* @return the path
|
||||
*/
|
||||
public static DocPath forClass(Utils utils, TypeElement typeElement) {
|
||||
return (typeElement == null)
|
||||
? empty
|
||||
: forPackage(utils.containingPackage(typeElement)).resolve(forName(utils, typeElement));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the path for the simple name of a class.
|
||||
* For example, if the class is java.lang.Object,
|
||||
* the path is Object.html.
|
||||
* @param utils utility class for handling type elements
|
||||
* @param typeElement the type element
|
||||
* @return the path
|
||||
*/
|
||||
public static DocPath forName(Utils utils, TypeElement typeElement) {
|
||||
return (typeElement == null) ? empty : new DocPath(utils.getSimpleName(typeElement) + ".html");
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the path for the name of a module.
|
||||
* For example, if the module is java.base,
|
||||
* the path is java.base.
|
||||
* @param mdle the module element
|
||||
* @return the path
|
||||
*/
|
||||
public static DocPath forModule(ModuleElement mdle) {
|
||||
return mdle == null || mdle.isUnnamed()
|
||||
? empty
|
||||
: DocPath.create(mdle.getQualifiedName().toString());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the path for the package of a class.
|
||||
* For example, if the class is java.lang.Object,
|
||||
* the path is java/lang.
|
||||
* @param utils utility class for handling type elements
|
||||
* @param typeElement the type element
|
||||
* @return the path
|
||||
*/
|
||||
public static DocPath forPackage(Utils utils, TypeElement typeElement) {
|
||||
return (typeElement == null) ? empty : forPackage(utils.containingPackage(typeElement));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the path for a package.
|
||||
* For example, if the package is java.lang,
|
||||
* the path is java/lang.
|
||||
* @param pkgElement the package element
|
||||
* @return the path
|
||||
*/
|
||||
public static DocPath forPackage(PackageElement pkgElement) {
|
||||
return pkgElement == null || pkgElement.isUnnamed()
|
||||
? empty
|
||||
: DocPath.create(pkgElement.getQualifiedName().toString().replace('.', '/'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the inverse path for a package.
|
||||
* For example, if the package is java.lang,
|
||||
* the inverse path is ../...
|
||||
* @param pkgElement the package element
|
||||
* @return the path
|
||||
*/
|
||||
public static DocPath forRoot(PackageElement pkgElement) {
|
||||
String name = (pkgElement == null || pkgElement.isUnnamed())
|
||||
? ""
|
||||
: pkgElement.getQualifiedName().toString();
|
||||
return new DocPath(name.replace('.', '/').replaceAll("[^/]+", ".."));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the relative path from one package to another.
|
||||
* @param from the initial package
|
||||
* @param to the target package
|
||||
* @return the path
|
||||
*/
|
||||
public static DocPath relativePath(PackageElement from, PackageElement to) {
|
||||
return forRoot(from).resolve(forPackage(to));
|
||||
}
|
||||
|
||||
protected DocPath(String p) {
|
||||
path = (p.endsWith("/") ? p.substring(0, p.length() - 1) : p);
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -26,6 +26,8 @@
|
||||
package jdk.javadoc.internal.doclets.toolkit.util;
|
||||
|
||||
import javax.lang.model.element.ModuleElement;
|
||||
import javax.lang.model.element.PackageElement;
|
||||
import javax.lang.model.element.TypeElement;
|
||||
|
||||
/**
|
||||
* Standard DocPath objects.
|
||||
@ -37,6 +39,16 @@ import javax.lang.model.element.ModuleElement;
|
||||
*
|
||||
*/
|
||||
public class DocPaths {
|
||||
private final boolean useModuleDirectories;
|
||||
private final String moduleSeparator;
|
||||
private final Utils utils;
|
||||
|
||||
public DocPaths(Utils utils, boolean useModuleDirectories) {
|
||||
this.utils = utils;
|
||||
this.useModuleDirectories = useModuleDirectories;
|
||||
moduleSeparator = useModuleDirectories ? "/module-" : "-";
|
||||
}
|
||||
|
||||
/** 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");
|
||||
|
||||
@ -80,7 +92,11 @@ public class DocPaths {
|
||||
/** The name of the directory for the split index files. */
|
||||
public static final DocPath INDEX_FILES = DocPath.create("index-files");
|
||||
|
||||
/** Generate the name of one of the files in the split index. */
|
||||
/**
|
||||
* Generate the name of one of the files in the split index.
|
||||
* @param n the position in the index
|
||||
* @return the path
|
||||
*/
|
||||
public static DocPath indexN(int n) {
|
||||
return DocPath.create("index-" + n + ".html");
|
||||
}
|
||||
@ -173,29 +189,153 @@ public class DocPaths {
|
||||
/** The name of the file for the package usage info. */
|
||||
public static final DocPath PACKAGE_USE = DocPath.create("package-use.html");
|
||||
|
||||
/** The name of the output directory for module documentation files. */
|
||||
public static DocPath moduleDocFiles(ModuleElement mdle) {
|
||||
return DocPath.create(mdle.getQualifiedName() + "-doc-files");
|
||||
/**
|
||||
* Returns the path for a type element.
|
||||
* For example, if the type element is {@code java.lang.Object},
|
||||
* the path is {@code java/lang/Object.html}.
|
||||
*
|
||||
* @param typeElement the type element
|
||||
* @return the path
|
||||
*/
|
||||
public DocPath forClass(TypeElement typeElement) {
|
||||
return (typeElement == null)
|
||||
? DocPath.empty
|
||||
: forPackage(utils.containingPackage(typeElement)).resolve(forName(typeElement));
|
||||
}
|
||||
|
||||
/** The name of the file for the module frame. */
|
||||
public static DocPath moduleFrame(ModuleElement mdle) {
|
||||
return DocPath.create(mdle.getQualifiedName() + "-frame.html");
|
||||
/**
|
||||
* Returns the path for the simple name of a type element.
|
||||
* For example, if the type element is {@code java.lang.Object},
|
||||
* the path is {@code Object.html}.
|
||||
*
|
||||
* @param typeElement the type element
|
||||
* @return the path
|
||||
*/
|
||||
public DocPath forName(TypeElement typeElement) {
|
||||
return (typeElement == null)
|
||||
? DocPath.empty
|
||||
: new DocPath(utils.getSimpleName(typeElement) + ".html");
|
||||
}
|
||||
|
||||
/** The name of the file for the module summary. */
|
||||
public static DocPath moduleSummary(ModuleElement mdle) {
|
||||
return DocPaths.moduleSummary(mdle.getQualifiedName().toString());
|
||||
public static DocPath forModule(ModuleElement mdle) {
|
||||
return mdle == null || mdle.isUnnamed()
|
||||
? DocPath.empty
|
||||
: DocPath.create(mdle.getQualifiedName().toString());
|
||||
}
|
||||
|
||||
/** The name of the file for the module summary. */
|
||||
public static DocPath moduleSummary(String mdleName) {
|
||||
return DocPath.create(mdleName + "-summary.html");
|
||||
/**
|
||||
* Returns the path for the package of a type element.
|
||||
* For example, if the type element is {@code java.lang.Object},
|
||||
* the path is {@code java/lang}.
|
||||
*
|
||||
* @param typeElement the type element
|
||||
* @return the path
|
||||
*/
|
||||
public DocPath forPackage(TypeElement typeElement) {
|
||||
return (typeElement == null)
|
||||
? DocPath.empty
|
||||
: forPackage(utils.containingPackage(typeElement));
|
||||
}
|
||||
|
||||
/** The name of the file for the module frame. */
|
||||
public static DocPath moduleTypeFrame(ModuleElement mdle) {
|
||||
return DocPath.create(mdle.getQualifiedName() + "-type-frame.html");
|
||||
/**
|
||||
* Returns the path for a package.
|
||||
* For example, if the package is {@code java.lang},
|
||||
* the path is {@code java/lang}.
|
||||
*
|
||||
* @param pkgElement the package element
|
||||
* @return the path
|
||||
*/
|
||||
public DocPath forPackage(PackageElement pkgElement) {
|
||||
if (pkgElement == null || pkgElement.isUnnamed()) {
|
||||
return DocPath.empty;
|
||||
}
|
||||
|
||||
DocPath pkgPath = DocPath.create(pkgElement.getQualifiedName().toString().replace('.', '/'));
|
||||
if (useModuleDirectories) {
|
||||
ModuleElement mdle = (ModuleElement) pkgElement.getEnclosingElement();
|
||||
return forModule(mdle).resolve(pkgPath);
|
||||
} else {
|
||||
return pkgPath;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the inverse path for a package.
|
||||
* For example, if the package is {@code java.lang},
|
||||
* the inverse path is {@code ../..}.
|
||||
*
|
||||
* @param pkgElement the package element
|
||||
* @return the path
|
||||
*/
|
||||
public static DocPath forRoot(PackageElement pkgElement) {
|
||||
String name = (pkgElement == null || pkgElement.isUnnamed())
|
||||
? ""
|
||||
: pkgElement.getQualifiedName().toString();
|
||||
return new DocPath(name.replace('.', '/').replaceAll("[^/]+", ".."));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a relative path from one package to another.
|
||||
*
|
||||
* @param from the origin of the relative path
|
||||
* @param to the destination of the relative path
|
||||
* @return the path
|
||||
*/
|
||||
public DocPath relativePath(PackageElement from, PackageElement to) {
|
||||
return forRoot(from).resolve(forPackage(to));
|
||||
}
|
||||
|
||||
/**
|
||||
* The path for the output directory for module documentation files.
|
||||
* @param mdle the module
|
||||
* @return the path
|
||||
*/
|
||||
public DocPath moduleDocFiles(ModuleElement mdle) {
|
||||
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
|
||||
* @return the path
|
||||
*/
|
||||
public DocPath moduleSummary(ModuleElement mdle) {
|
||||
return createModulePath(mdle, "summary.html");
|
||||
}
|
||||
|
||||
/**
|
||||
* The path for the file for a module's summary page.
|
||||
* @param mdleName the module
|
||||
* @return the path
|
||||
*/
|
||||
public DocPath moduleSummary(String mdleName) {
|
||||
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);
|
||||
}
|
||||
|
||||
private DocPath createModulePath(String moduleName, String path) {
|
||||
return DocPath.create(moduleName + moduleSeparator + path);
|
||||
}
|
||||
|
||||
/** The name of the file for the module overview frame. */
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1999, 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
|
||||
@ -82,7 +82,6 @@ import com.sun.source.util.DocTrees;
|
||||
import com.sun.source.util.SimpleDocTreeVisitor;
|
||||
import com.sun.source.util.TreePath;
|
||||
import com.sun.tools.javac.model.JavacTypes;
|
||||
import jdk.javadoc.internal.doclets.formats.html.HtmlConfiguration;
|
||||
import jdk.javadoc.internal.doclets.toolkit.BaseConfiguration;
|
||||
import jdk.javadoc.internal.doclets.toolkit.CommentUtils.DocCommentDuo;
|
||||
import jdk.javadoc.internal.doclets.toolkit.Messages;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -28,7 +28,6 @@ package jdk.javadoc.internal.doclets.toolkit.util.links;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.lang.model.element.AnnotationMirror;
|
||||
import javax.lang.model.element.Element;
|
||||
import javax.lang.model.element.TypeElement;
|
||||
import javax.lang.model.element.TypeParameterElement;
|
||||
@ -39,7 +38,6 @@ import javax.lang.model.type.TypeVariable;
|
||||
import javax.lang.model.type.WildcardType;
|
||||
import javax.lang.model.util.SimpleTypeVisitor9;
|
||||
|
||||
import jdk.javadoc.internal.doclets.formats.html.LinkInfoImpl;
|
||||
import jdk.javadoc.internal.doclets.toolkit.Content;
|
||||
import jdk.javadoc.internal.doclets.toolkit.util.Utils;
|
||||
|
||||
@ -54,6 +52,11 @@ import jdk.javadoc.internal.doclets.toolkit.util.Utils;
|
||||
* @author Jamie Ho
|
||||
*/
|
||||
public abstract class LinkFactory {
|
||||
protected final Utils utils;
|
||||
|
||||
protected LinkFactory(Utils utils) {
|
||||
this.utils = utils;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return an empty instance of a content object.
|
||||
@ -69,7 +72,6 @@ public abstract class LinkFactory {
|
||||
* @return the output of the link.
|
||||
*/
|
||||
public Content getLink(LinkInfo linkInfo) {
|
||||
Utils utils = ((LinkInfoImpl) linkInfo).configuration.utils;
|
||||
if (linkInfo.type != null) {
|
||||
SimpleTypeVisitor9<Content, LinkInfo> linkVisitor =
|
||||
new SimpleTypeVisitor9<Content, LinkInfo>() {
|
||||
@ -207,26 +209,27 @@ public abstract class LinkFactory {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the link to the given class.
|
||||
* Returns a link to the given class.
|
||||
*
|
||||
* @param linkInfo the information about the link to construct.
|
||||
* @param linkInfo the information about the link to construct
|
||||
*
|
||||
* @return the link for the given class.
|
||||
*/
|
||||
protected abstract Content getClassLink(LinkInfo linkInfo);
|
||||
|
||||
/**
|
||||
* Return the link to the given type parameter.
|
||||
* Returns a link to the given type parameter.
|
||||
*
|
||||
* @param linkInfo the information about the link to construct.
|
||||
* @param typeParam the type parameter to link to.
|
||||
* @param linkInfo the information about the link to construct
|
||||
* @param typeParam the type parameter to link to
|
||||
* @return the link
|
||||
*/
|
||||
protected abstract Content getTypeParameterLink(LinkInfo linkInfo, TypeMirror typeParam);
|
||||
|
||||
/**
|
||||
* Return the links to the type parameters.
|
||||
* Returns links to the type parameters.
|
||||
*
|
||||
* @param linkInfo the information about the link to construct.
|
||||
* @param linkInfo the information about the link to construct
|
||||
* @return the links to the type parameters.
|
||||
*/
|
||||
public Content getTypeParameterLinks(LinkInfo linkInfo) {
|
||||
@ -234,15 +237,14 @@ public abstract class LinkFactory {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the links to the type parameters.
|
||||
* Returns links to the type parameters.
|
||||
*
|
||||
* @param linkInfo the information about the link to construct.
|
||||
* @param isClassLabel true if this is a class label. False if it is
|
||||
* the type parameters portion of the link.
|
||||
* @return the links to the type parameters.
|
||||
* @param linkInfo the information about the link to construct
|
||||
* @param isClassLabel true if this is a class label, or false if it is
|
||||
* the type parameters portion of the link
|
||||
* @return the links to the type parameters
|
||||
*/
|
||||
public Content getTypeParameterLinks(LinkInfo linkInfo, boolean isClassLabel) {
|
||||
Utils utils = ((LinkInfoImpl)linkInfo).utils;
|
||||
Content links = newContent();
|
||||
List<TypeMirror> vars = new ArrayList<>();
|
||||
TypeMirror ctype = linkInfo.type != null
|
||||
|
@ -49,26 +49,26 @@ public class TestCopyFiles extends JavadocTester {
|
||||
"--module-source-path", testSrc("modules"),
|
||||
"--module", "acme.mdle");
|
||||
checkExit(Exit.OK);
|
||||
checkOrder("p/doc-files/inpackage.html",
|
||||
checkOrder("acme.mdle/p/doc-files/inpackage.html",
|
||||
"\"Hello World\" (phi-WINDOW-TITLE-phi)",
|
||||
"phi-TOP-phi",
|
||||
// check top navbar
|
||||
"<a href=\"../../acme.mdle-summary.html\">Module</a>",
|
||||
"<a href=\"../../module-summary.html\">Module</a>",
|
||||
"<a href=\"../package-summary.html\">Package</a>",
|
||||
"<a href=\"../../overview-tree.html\">Tree</a>",
|
||||
"<a href=\"../../deprecated-list.html\">Deprecated</a>",
|
||||
"<a href=\"../../index-all.html\">Index</a>",
|
||||
"<a href=\"../../../overview-tree.html\">Tree</a>",
|
||||
"<a href=\"../../../deprecated-list.html\">Deprecated</a>",
|
||||
"<a href=\"../../../index-all.html\">Index</a>",
|
||||
"phi-HEADER-phi",
|
||||
"In a named module acme.module and named package "
|
||||
+ "<a href=\"../package-summary.html\"><code>p</code></a>.",
|
||||
"\"simpleTagLabel\">Since:</",
|
||||
"1940",
|
||||
// check bottom navbar
|
||||
"<a href=\"../../acme.mdle-summary.html\">Module</a>",
|
||||
"<a href=\"../../module-summary.html\">Module</a>",
|
||||
"<a href=\"../package-summary.html\">Package</a>",
|
||||
"<a href=\"../../overview-tree.html\">Tree</a>",
|
||||
"<a href=\"../../deprecated-list.html\">Deprecated</a>",
|
||||
"<a href=\"../../index-all.html\">Index</a>",
|
||||
"<a href=\"../../../overview-tree.html\">Tree</a>",
|
||||
"<a href=\"../../../deprecated-list.html\">Deprecated</a>",
|
||||
"<a href=\"../../../index-all.html\">Index</a>",
|
||||
"phi-FOOTER-phi",
|
||||
"phi-BOTTOM-phi"
|
||||
);
|
||||
@ -86,52 +86,53 @@ public class TestCopyFiles extends JavadocTester {
|
||||
"--module-source-path", testSrc("modules"),
|
||||
"--module", "acme.mdle,acme2.mdle");
|
||||
checkExit(Exit.OK);
|
||||
checkOrder("p/doc-files/inpackage.html",
|
||||
checkOrder("acme.mdle/p/doc-files/inpackage.html",
|
||||
"\"Hello World\" (phi-WINDOW-TITLE-phi)",
|
||||
"phi-TOP-phi",
|
||||
// check top navbar
|
||||
"<a href=\"../../acme.mdle-summary.html\">Module</a>",
|
||||
"<a href=\"../../module-summary.html\">Module</a>",
|
||||
"<a href=\"../package-summary.html\">Package</a>",
|
||||
"<a href=\"../../overview-tree.html\">Tree</a>",
|
||||
"<a href=\"../../deprecated-list.html\">Deprecated</a>",
|
||||
"<a href=\"../../index-all.html\">Index</a>",
|
||||
"<a href=\"../../../overview-tree.html\">Tree</a>",
|
||||
"<a href=\"../../../deprecated-list.html\">Deprecated</a>",
|
||||
"<a href=\"../../../index-all.html\">Index</a>",
|
||||
"phi-HEADER-phi",
|
||||
"In a named module acme.module and named package "
|
||||
+ "<a href=\"../package-summary.html\"><code>p</code></a>.",
|
||||
"\"simpleTagLabel\">Since:</",
|
||||
"1940",
|
||||
// check bottom navbar
|
||||
"<a href=\"../../acme.mdle-summary.html\">Module</a>",
|
||||
"<a href=\"../../module-summary.html\">Module</a>",
|
||||
"<a href=\"../package-summary.html\">Package</a>",
|
||||
"<a href=\"../../overview-tree.html\">Tree</a>",
|
||||
"<a href=\"../../deprecated-list.html\">Deprecated</a>",
|
||||
"<a href=\"../../index-all.html\">Index</a>",
|
||||
"<a href=\"../../../overview-tree.html\">Tree</a>",
|
||||
"<a href=\"../../../deprecated-list.html\">Deprecated</a>",
|
||||
"<a href=\"../../../index-all.html\">Index</a>",
|
||||
"phi-FOOTER-phi",
|
||||
"phi-BOTTOM-phi"
|
||||
);
|
||||
|
||||
// check the bottom most doc file
|
||||
checkOrder("p2/doc-files/sub-dir/sub-dir-1/SubSubReadme.html",
|
||||
checkOrder("acme2.mdle/p2/doc-files/sub-dir/sub-dir-1/SubSubReadme.html",
|
||||
"SubSubReadme (phi-WINDOW-TITLE-phi)",
|
||||
"phi-TOP-phi",
|
||||
// check top navbar
|
||||
"<a href=\"../../../../acme2.mdle-summary.html\">Module</a>",
|
||||
"<a href=\"../../../../module-summary.html\">Module</a>",
|
||||
"<a href=\"../../../package-summary.html\">Package</a>",
|
||||
"<a href=\"../../../../overview-tree.html\">Tree</a>",
|
||||
"<a href=\"../../../../deprecated-list.html\">Deprecated</a>",
|
||||
"<a href=\"../../../../index-all.html\">Index</a>",
|
||||
"<a href=\"../../../../../overview-tree.html\">Tree</a>",
|
||||
"<a href=\"../../../../../deprecated-list.html\">Deprecated</a>",
|
||||
"<a href=\"../../../../../index-all.html\">Index</a>",
|
||||
"phi-HEADER-phi",
|
||||
"SubSubReadme.html at third level of doc-file directory.",
|
||||
// check bottom navbar
|
||||
"<a href=\"../../../../acme2.mdle-summary.html\">Module</a>",
|
||||
"<a href=\"../../../../module-summary.html\">Module</a>",
|
||||
"<a href=\"../../../package-summary.html\">Package</a>",
|
||||
"<a href=\"../../../../overview-tree.html\">Tree</a>",
|
||||
"<a href=\"../../../../deprecated-list.html\">Deprecated</a>",
|
||||
"<a href=\"../../../../index-all.html\">Index</a>",
|
||||
"<a href=\"../../../../../overview-tree.html\">Tree</a>",
|
||||
"<a href=\"../../../../../deprecated-list.html\">Deprecated</a>",
|
||||
"<a href=\"../../../../../index-all.html\">Index</a>",
|
||||
"phi-FOOTER-phi",
|
||||
"phi-BOTTOM-phi"
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testDocFilesInModulePackagesWithRecursiveCopy() {
|
||||
javadoc("-d", "modules-out-recursive",
|
||||
@ -139,7 +140,7 @@ public class TestCopyFiles extends JavadocTester {
|
||||
"--module-source-path", testSrc("modules"),
|
||||
"--module", "acme.mdle");
|
||||
checkExit(Exit.OK);
|
||||
checkOutput("p/doc-files/inpackage.html", true,
|
||||
checkOutput("acme.mdle/p/doc-files/inpackage.html", true,
|
||||
"In a named module acme.module and named package "
|
||||
+ "<a href=\"../package-summary.html\"><code>p</code></a>."
|
||||
);
|
||||
@ -153,7 +154,7 @@ public class TestCopyFiles extends JavadocTester {
|
||||
"--module-source-path", testSrc("modules"),
|
||||
"--module", "acme.mdle");
|
||||
checkExit(Exit.OK);
|
||||
checkOutput("p/doc-files/inpackage.html", true,
|
||||
checkOutput("acme.mdle/p/doc-files/inpackage.html", true,
|
||||
"In a named module acme.module and named package "
|
||||
+ "<a href=\"../package-summary.html\"><code>p</code></a>."
|
||||
);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -301,18 +301,20 @@ public class TestFramesNoFrames extends JavadocTester {
|
||||
private void checkFrameFiles() {
|
||||
// these files are all only generated in frames mode
|
||||
|
||||
// <module>-frame.html and <module>-type-frame.html files
|
||||
// <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 + "-frame.html",
|
||||
m + "-type-frame.html").stream())
|
||||
m + "/module-frame.html",
|
||||
m + "/module-type-frame.html").stream())
|
||||
.collect(Collectors.toSet()));
|
||||
|
||||
// <package>/package-frame.html files
|
||||
checkFiles(frames, classes.stream()
|
||||
.map(c -> packagePart(c) + "/package-frame.html")
|
||||
.map(c -> (isInModule(c) ? (modulePart(c) + "/") : "")
|
||||
+ packagePart(c)
|
||||
+ "/package-frame.html")
|
||||
.collect(Collectors.toSet()));
|
||||
}
|
||||
|
||||
@ -360,7 +362,8 @@ public class TestFramesNoFrames extends JavadocTester {
|
||||
// contain FRAMES/NO-FRAMES links in frames mode
|
||||
List<String> navbarFiles = new ArrayList<>();
|
||||
navbarFiles.addAll(classes.stream()
|
||||
.map(c -> toHtml(packageClassPart(c)))
|
||||
.map(c -> (isInModule(c) ? (modulePart(c) + "/") : "")
|
||||
+ toHtml(packageClassPart(c)))
|
||||
.collect(Collectors.toSet()));
|
||||
for (String f : navbarFiles) {
|
||||
checkOutput(f, frames,
|
||||
|
@ -0,0 +1,116 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* 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 8195795
|
||||
* @summary test the use of module directories in output,
|
||||
* and the --no-module-directories option
|
||||
* @modules jdk.javadoc/jdk.javadoc.internal.api
|
||||
* jdk.javadoc/jdk.javadoc.internal.tool
|
||||
* jdk.compiler/com.sun.tools.javac.api
|
||||
* jdk.compiler/com.sun.tools.javac.main
|
||||
* @library ../lib /tools/lib
|
||||
* @build toolbox.ToolBox toolbox.ModuleBuilder JavadocTester
|
||||
* @run main TestModuleDirs
|
||||
*/
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
import toolbox.ModuleBuilder;
|
||||
import toolbox.ToolBox;
|
||||
|
||||
public class TestModuleDirs extends JavadocTester {
|
||||
|
||||
public final ToolBox tb;
|
||||
public static void main(String... args) throws Exception {
|
||||
TestModuleDirs tester = new TestModuleDirs();
|
||||
tester.runTests(m -> new Object[] { Paths.get(m.getName()) });
|
||||
}
|
||||
|
||||
public TestModuleDirs() {
|
||||
tb = new ToolBox();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNoModules(Path base) throws IOException {
|
||||
Path src = base.resolve("src");
|
||||
tb.writeJavaFiles(src, "package p; public class C { }");
|
||||
|
||||
javadoc("-d", base.resolve("api").toString(),
|
||||
"-sourcepath", src.toString(),
|
||||
"-quiet",
|
||||
"p");
|
||||
|
||||
checkExit(Exit.OK);
|
||||
checkFiles(true, "p/package-summary.html");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNoModuleDirs(Path base) throws IOException {
|
||||
Path src = base.resolve("src");
|
||||
new ModuleBuilder(tb, "m")
|
||||
.classes("package p; public class A {}")
|
||||
.exports("p")
|
||||
.write(src);
|
||||
|
||||
javadoc("-d", base.resolve("api").toString(),
|
||||
"-quiet",
|
||||
"--module-source-path", src.toString(),
|
||||
"--no-module-directories",
|
||||
"--module", "m");
|
||||
|
||||
checkExit(Exit.OK);
|
||||
checkFiles(true,
|
||||
"m-summary.html",
|
||||
"p/package-summary.html");
|
||||
checkFiles(false,
|
||||
"m/module-summary.html",
|
||||
"m/p/package-summary.html");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testModuleDirs(Path base) throws IOException {
|
||||
Path src = base.resolve("src");
|
||||
new ModuleBuilder(tb, "m")
|
||||
.classes("package p; public class A {}")
|
||||
.exports("p")
|
||||
.write(src);
|
||||
|
||||
javadoc("-d", base.resolve("api").toString(),
|
||||
"-quiet",
|
||||
"--module-source-path", src.toString(),
|
||||
"--module", "m");
|
||||
|
||||
checkExit(Exit.OK);
|
||||
checkFiles(false,
|
||||
"m-summary.html",
|
||||
"p/package-summary.html");
|
||||
checkFiles(true,
|
||||
"m/module-summary.html",
|
||||
"m/p/package-summary.html");
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -64,7 +64,7 @@ public class TestEmptyModule extends JavadocTester {
|
||||
"--module", "empty");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("empty-summary.html", true,
|
||||
checkOutput("empty/module-summary.html", true,
|
||||
"module empty.");
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -156,15 +156,15 @@ public class TestIndirectExportsOpens extends JavadocTester {
|
||||
// In details mode all kinds of packages from java.base,
|
||||
// could be listed in the indirects section, so just
|
||||
// check for minimal expected strings.
|
||||
checkOutput("a-summary.html", true,
|
||||
checkOutput("a/module-summary.html", true,
|
||||
"Indirect Exports table",
|
||||
"<th class=\"colFirst\" scope=\"row\"><a href=\"m-summary.html\">m</a></th>\n"
|
||||
+ "<td class=\"colLast\"><a href=\"exportsto/package-summary.html\">exportsto</a></td>\n"
|
||||
"<th class=\"colFirst\" scope=\"row\"><a href=\"../m/module-summary.html\">m</a></th>\n"
|
||||
+ "<td class=\"colLast\"><a href=\"../m/exportsto/package-summary.html\">exportsto</a></td>\n"
|
||||
+ "</tr>\n");
|
||||
|
||||
checkOutput("a-summary.html", true,
|
||||
checkOutput("a/module-summary.html", true,
|
||||
"Indirect Opens table",
|
||||
"<th class=\"colFirst\" scope=\"row\"><a href=\"m-summary.html\">m</a></th>\n"
|
||||
"<th class=\"colFirst\" scope=\"row\"><a href=\"../m/module-summary.html\">m</a></th>\n"
|
||||
+ "<td class=\"colLast\">opensto</td>\n"
|
||||
+ "</tr>\n");
|
||||
}
|
||||
@ -183,11 +183,11 @@ public class TestIndirectExportsOpens extends JavadocTester {
|
||||
|
||||
// Avoid false positives, just check for primary string absence.
|
||||
if (!present) {
|
||||
checkOutput("a-summary.html", false, typeString);
|
||||
checkOutput("a/module-summary.html", false, typeString);
|
||||
return;
|
||||
}
|
||||
|
||||
checkOutput("a-summary.html", present,
|
||||
checkOutput("a/module-summary.html", present,
|
||||
"<table class=\"packagesSummary\" summary=\"" + typeString + " table, listing modules, and packages\">\n"
|
||||
+ "<caption><span>" + typeString + "</span><span class=\"tabEnd\"> </span></caption>\n"
|
||||
+ "<tr>\n"
|
||||
@ -196,8 +196,8 @@ public class TestIndirectExportsOpens extends JavadocTester {
|
||||
+ "</tr>\n"
|
||||
+ "<tbody>\n"
|
||||
+ "<tr class=\"altColor\">\n"
|
||||
+ "<th class=\"colFirst\" scope=\"row\"><a href=\"m-summary.html\">m</a></th>\n"
|
||||
+ "<td class=\"colLast\"><a href=\"pm/package-summary.html\">pm</a></td>\n"
|
||||
+ "<th class=\"colFirst\" scope=\"row\"><a href=\"../m/module-summary.html\">m</a></th>\n"
|
||||
+ "<td class=\"colLast\"><a href=\"../m/pm/package-summary.html\">pm</a></td>\n"
|
||||
+ "</tr>\n"
|
||||
+ "</tbody>\n"
|
||||
+ "</table>\n");
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -70,7 +70,7 @@ public class TestModulePackages extends JavadocTester {
|
||||
"--module", "m");
|
||||
|
||||
checkExit(Exit.OK);
|
||||
checkOutput("m-summary.html", false,
|
||||
checkOutput("m/module-summary.html", false,
|
||||
"<h3>Packages</h3>\n"
|
||||
+ "<table class=\"packagesSummary\" summary=\"Packages table, "
|
||||
+ "listing packages, and an explanation\">");
|
||||
@ -159,7 +159,7 @@ public class TestModulePackages extends JavadocTester {
|
||||
checkTableHead("m", ColKind.EXPORTED_TO);
|
||||
checkPackageRow("m", "p", "i0", "All Modules", null, " ");
|
||||
checkPackageRow("m", "q", "i1",
|
||||
"<a href=\"other-summary.html\">other</a>", null, " ");
|
||||
"<a href=\"../other/module-summary.html\">other</a>", null, " ");
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -247,11 +247,11 @@ public class TestModulePackages extends JavadocTester {
|
||||
checkPackageRow("m", "c", "i0", "None", "None", " ");
|
||||
checkPackageRow("m", "e.all", "i1", "All Modules", "None", " ");
|
||||
checkPackageRow("m", "e.other", "i2",
|
||||
"<a href=\"other-summary.html\">other</a>", "None", " ");
|
||||
"<a href=\"../other/module-summary.html\">other</a>", "None", " ");
|
||||
checkPackageRow("m", "eo", "i3", "All Modules", "All Modules", " ");
|
||||
checkPackageRow("m", "o.all", "i4", "None", "All Modules", " ");
|
||||
checkPackageRow("m", "o.other", "i5", "None",
|
||||
"<a href=\"other-summary.html\">other</a>", " ");
|
||||
"<a href=\"../other/module-summary.html\">other</a>", " ");
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -367,7 +367,7 @@ public class TestModulePackages extends JavadocTester {
|
||||
checkTableHead("m", ColKind.OPENED_TO);
|
||||
checkPackageRow("m", "p", "i0", null, "All Modules", " ");
|
||||
checkPackageRow("m", "q", "i1", null,
|
||||
"<a href=\"other-summary.html\">other</a>", " ");
|
||||
"<a href=\"../other/module-summary.html\">other</a>", " ");
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -443,7 +443,7 @@ public class TestModulePackages extends JavadocTester {
|
||||
+ "</caption>";
|
||||
}
|
||||
|
||||
checkOutput(moduleName + "-summary.html", true, expect);
|
||||
checkOutput(moduleName + "/module-summary.html", true, expect);
|
||||
}
|
||||
|
||||
|
||||
@ -461,7 +461,7 @@ public class TestModulePackages extends JavadocTester {
|
||||
sb.append("<th class=\"colLast\" scope=\"col\">Description</th>\n"
|
||||
+ "</tr>");
|
||||
|
||||
checkOutput(moduleName + "-summary.html", true, sb.toString());
|
||||
checkOutput(moduleName + "/module-summary.html", true, sb.toString());
|
||||
}
|
||||
|
||||
private void checkPackageRow(String moduleName, String packageName,
|
||||
@ -481,7 +481,7 @@ public class TestModulePackages extends JavadocTester {
|
||||
}
|
||||
sb.append("<td class=\"colLast\">" + desc + "</td>");
|
||||
|
||||
checkOutput(moduleName + "-summary.html", true, sb.toString());
|
||||
checkOutput(moduleName + "/module-summary.html", true, sb.toString());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -124,31 +124,31 @@ public class TestModuleServices extends JavadocTester {
|
||||
"moduleServiceUserNoDescription/pkgServiceUserNoDescription");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("moduleServiceProvider-summary.html", true,
|
||||
checkOutput("moduleServiceProvider/module-summary.html", true,
|
||||
"<tr class=\"altColor\">\n"
|
||||
+ "<th class=\"colFirst\" scope=\"row\"><a href=\"pkgService/Service.html\" "
|
||||
+ "<th class=\"colFirst\" scope=\"row\"><a href=\"../moduleService/pkgService/Service.html\" "
|
||||
+ "title=\"interface in pkgService\">Service</a></th>\n"
|
||||
+ "<td class=\"colLast\">\n"
|
||||
+ "<div class=\"block\">Provides a service whose name is ServiceProvider.</div>\n"
|
||||
+ "</td>\n"
|
||||
+ "</tr>");
|
||||
checkOutput("moduleServiceUser-summary.html", true,
|
||||
checkOutput("moduleServiceUser/module-summary.html", true,
|
||||
"<tr class=\"altColor\">\n"
|
||||
+ "<th class=\"colFirst\" scope=\"row\"><a href=\"pkgService/Service.html\" title=\"interface in pkgService\">Service</a></th>\n"
|
||||
+ "<th class=\"colFirst\" scope=\"row\"><a href=\"../moduleService/pkgService/Service.html\" title=\"interface in pkgService\">Service</a></th>\n"
|
||||
+ "<td class=\"colLast\">\n"
|
||||
+ "<div class=\"block\">If no other provider is found, a default internal implementation will be used.</div>\n"
|
||||
+ "</td>\n"
|
||||
+ "</tr>");
|
||||
checkOutput("moduleServiceUserNoDescription-summary.html", true,
|
||||
checkOutput("moduleServiceUserNoDescription/module-summary.html", true,
|
||||
"<tr class=\"altColor\">\n"
|
||||
+ "<th class=\"colFirst\" scope=\"row\"><a href=\"pkgService/Service.html\" title=\"interface in pkgService\">Service</a></th>\n"
|
||||
+ "<th class=\"colFirst\" scope=\"row\"><a href=\"../moduleService/pkgService/Service.html\" title=\"interface in pkgService\">Service</a></th>\n"
|
||||
+ "<td class=\"colLast\">\n"
|
||||
+ "<div class=\"block\">A service Interface for service providers.</div>\n"
|
||||
+ "</td>\n"
|
||||
+ "</tr>");
|
||||
checkOutput("moduleServiceProvider-summary.html", false,
|
||||
checkOutput("moduleServiceProvider/module-summary.html", false,
|
||||
"A service Interface for service providers.");
|
||||
checkOutput("moduleServiceUser-summary.html", false,
|
||||
checkOutput("moduleServiceUser/module-summary.html", false,
|
||||
"A service Interface for service providers.");
|
||||
}
|
||||
|
||||
@ -169,7 +169,7 @@ public class TestModuleServices extends JavadocTester {
|
||||
"--module", "m");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("m-summary.html", false,
|
||||
checkOutput("m/module-summary.html", false,
|
||||
"<h3>Services</h3>");
|
||||
}
|
||||
|
||||
@ -190,10 +190,10 @@ public class TestModuleServices extends JavadocTester {
|
||||
"--module", "m");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("m-summary.html", true,
|
||||
checkOutput("m/module-summary.html", true,
|
||||
"<h3>Services</h3>");
|
||||
|
||||
checkOutput("m-summary.html", true,
|
||||
checkOutput("m/module-summary.html", true,
|
||||
"<table class=\"usesSummary\" summary=\"Uses table, listing types, and an explanation\">\n" +
|
||||
"<caption><span>Uses</span><span class=\"tabEnd\"> </span></caption>\n" +
|
||||
"<tr>\n" +
|
||||
@ -230,10 +230,10 @@ public class TestModuleServices extends JavadocTester {
|
||||
"--module", "m");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("m-summary.html", true,
|
||||
checkOutput("m/module-summary.html", true,
|
||||
"<h3>Services</h3>");
|
||||
|
||||
checkOutput("m-summary.html", true,
|
||||
checkOutput("m/module-summary.html", true,
|
||||
"<table class=\"usesSummary\" summary=\"Uses table, listing types, and an explanation\">\n" +
|
||||
"<caption><span>Uses</span><span class=\"tabEnd\"> </span></caption>\n" +
|
||||
"<tr>\n" +
|
||||
@ -270,7 +270,7 @@ public class TestModuleServices extends JavadocTester {
|
||||
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("m-summary.html", false,
|
||||
checkOutput("m/module-summary.html", false,
|
||||
"<h3>Services</h3>");
|
||||
}
|
||||
|
||||
@ -296,10 +296,10 @@ public class TestModuleServices extends JavadocTester {
|
||||
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("m-summary.html", true,
|
||||
checkOutput("m/module-summary.html", true,
|
||||
"<h3>Services</h3>");
|
||||
|
||||
checkOutput("m-summary.html", true,
|
||||
checkOutput("m/module-summary.html", true,
|
||||
"<table class=\"providesSummary\" summary=\"Provides table, listing types, and an explanation\">\n" +
|
||||
"<caption><span>Provides</span><span class=\"tabEnd\"> </span></caption>\n" +
|
||||
"<tr>\n" +
|
||||
@ -339,10 +339,10 @@ public class TestModuleServices extends JavadocTester {
|
||||
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("m-summary.html", true,
|
||||
checkOutput("m/module-summary.html", true,
|
||||
"<h3>Services</h3>");
|
||||
|
||||
checkOutput("m-summary.html", true,
|
||||
checkOutput("m/module-summary.html", true,
|
||||
"<table class=\"providesSummary\" summary=\"Provides table, listing types, and an explanation\">\n" +
|
||||
"<caption><span>Provides</span><span class=\"tabEnd\"> </span></caption>\n" +
|
||||
"<tr>\n" +
|
||||
@ -381,10 +381,10 @@ public class TestModuleServices extends JavadocTester {
|
||||
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("m-summary.html", true,
|
||||
checkOutput("m/module-summary.html", true,
|
||||
"<h3>Services</h3>");
|
||||
|
||||
checkOutput("m-summary.html", true,
|
||||
checkOutput("m/module-summary.html", true,
|
||||
"<table class=\"providesSummary\" summary=\"Provides table, listing types, and an explanation\">\n" +
|
||||
"<caption><span>Provides</span><span class=\"tabEnd\"> </span></caption>\n" +
|
||||
"<tr>\n" +
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -68,7 +68,7 @@ public class TestModuleServicesLink extends JavadocTester {
|
||||
"--module", "m");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("m-summary.html", true,
|
||||
checkOutput("m/module-summary.html", true,
|
||||
"<a href=\"#module.description\">Description</a> |"
|
||||
+ " Modules |"
|
||||
+ " <a href=\"#packages.summary\">Packages</a> |"
|
||||
@ -92,7 +92,7 @@ public class TestModuleServicesLink extends JavadocTester {
|
||||
"--module", "m");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("m-summary.html", true,
|
||||
checkOutput("m/module-summary.html", true,
|
||||
"<a href=\"#module.description\">Description</a> |"
|
||||
+ " Modules |"
|
||||
+ " <a href=\"#packages.summary\">Packages</a> |"
|
||||
@ -114,7 +114,7 @@ public class TestModuleServicesLink extends JavadocTester {
|
||||
"--module", "m");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("m-summary.html", true,
|
||||
checkOutput("m/module-summary.html", true,
|
||||
"Description | Modules |"
|
||||
+ " <a href=\"#packages.summary\">Packages</a> |"
|
||||
+ " Services");
|
||||
|
@ -444,14 +444,14 @@ public class TestModules extends JavadocTester {
|
||||
}
|
||||
|
||||
void checkDescription(boolean found) {
|
||||
checkOutput("moduleA-summary.html", found,
|
||||
checkOutput("moduleA/module-summary.html", found,
|
||||
"<!-- ============ MODULE DESCRIPTION =========== -->\n"
|
||||
+ "<a name=\"module.description\">\n"
|
||||
+ "<!-- -->\n"
|
||||
+ "</a>\n"
|
||||
+ "<div class=\"block\">This is a test description for the moduleA module with a Search "
|
||||
+ "phrase <a id=\"searchphrase\" class=\"searchTagResult\">search phrase</a>.</div>");
|
||||
checkOutput("moduleB-summary.html", found,
|
||||
checkOutput("moduleB/module-summary.html", found,
|
||||
"<!-- ============ MODULE DESCRIPTION =========== -->\n"
|
||||
+ "<a name=\"module.description\">\n"
|
||||
+ "<!-- -->\n"
|
||||
@ -478,14 +478,14 @@ public class TestModules extends JavadocTester {
|
||||
}
|
||||
|
||||
void checkNoDescription(boolean found) {
|
||||
checkOutput("moduleA-summary.html", found,
|
||||
checkOutput("moduleA/module-summary.html", found,
|
||||
"<div class=\"contentContainer\">\n"
|
||||
+ "<ul class=\"blockList\">\n"
|
||||
+ "<li class=\"blockList\">\n"
|
||||
+ "<ul class=\"blockList\">\n"
|
||||
+ "<li class=\"blockList\">\n"
|
||||
+ "<!-- ============ PACKAGES SUMMARY =========== -->");
|
||||
checkOutput("moduleB-summary.html", found,
|
||||
checkOutput("moduleB/module-summary.html", found,
|
||||
"<div class=\"contentContainer\">\n"
|
||||
+ "<ul class=\"blockList\">\n"
|
||||
+ "<li class=\"blockList\">\n"
|
||||
@ -495,7 +495,7 @@ public class TestModules extends JavadocTester {
|
||||
}
|
||||
|
||||
void checkHtml5Description(boolean found) {
|
||||
checkOutput("moduleA-summary.html", found,
|
||||
checkOutput("moduleA/module-summary.html", found,
|
||||
"<section role=\"region\">\n"
|
||||
+ "<div class=\"deprecationBlock\"><span class=\"deprecatedLabel\">Deprecated, for removal:"
|
||||
+ " This API element is subject to removal in a future version.</span>\n"
|
||||
@ -507,7 +507,7 @@ public class TestModules extends JavadocTester {
|
||||
+ "</a>\n"
|
||||
+ "<div class=\"block\">This is a test description for the moduleA module with a Search "
|
||||
+ "phrase <a id=\"searchphrase\" class=\"searchTagResult\">search phrase</a>.</div>");
|
||||
checkOutput("moduleB-summary.html", found,
|
||||
checkOutput("moduleB/module-summary.html", found,
|
||||
"<section role=\"region\">\n"
|
||||
+ "<!-- ============ MODULE DESCRIPTION =========== -->\n"
|
||||
+ "<a id=\"module.description\">\n"
|
||||
@ -539,14 +539,14 @@ public class TestModules extends JavadocTester {
|
||||
}
|
||||
|
||||
void checkHtml5NoDescription(boolean found) {
|
||||
checkOutput("moduleA-summary.html", found,
|
||||
checkOutput("moduleA/module-summary.html", found,
|
||||
"<div class=\"contentContainer\">\n"
|
||||
+ "<ul class=\"blockList\">\n"
|
||||
+ "<li class=\"blockList\">\n"
|
||||
+ "<ul class=\"blockList\">\n"
|
||||
+ "<li class=\"blockList\">\n"
|
||||
+ "<!-- ============ PACKAGES SUMMARY =========== -->");
|
||||
checkOutput("moduleB-summary.html", found,
|
||||
checkOutput("moduleB/module-summary.html", found,
|
||||
"<div class=\"contentContainer\">\n"
|
||||
+ "<ul class=\"blockList\">\n"
|
||||
+ "<li class=\"blockList\">\n"
|
||||
@ -558,18 +558,18 @@ public class TestModules extends JavadocTester {
|
||||
void checkModuleLink() {
|
||||
checkOutput("overview-summary.html", true,
|
||||
"<li>Module</li>");
|
||||
checkOutput("moduleA-summary.html", true,
|
||||
checkOutput("moduleA/module-summary.html", true,
|
||||
"<li class=\"navBarCell1Rev\">Module</li>");
|
||||
checkOutput("moduleB-summary.html", true,
|
||||
checkOutput("moduleB/module-summary.html", true,
|
||||
"<li class=\"navBarCell1Rev\">Module</li>");
|
||||
checkOutput("testpkgmdlA/class-use/TestClassInModuleA.html", true,
|
||||
"<li><a href=\"../../moduleA-summary.html\">Module</a></li>");
|
||||
checkOutput("testpkgmdlB/package-summary.html", true,
|
||||
"<li><a href=\"../moduleB-summary.html\">Module</a></li>");
|
||||
checkOutput("testpkgmdlB/TestClassInModuleB.html", true,
|
||||
"<li><a href=\"../moduleB-summary.html\">Module</a></li>");
|
||||
checkOutput("testpkgmdlB/class-use/TestClassInModuleB.html", true,
|
||||
"<li><a href=\"../../moduleB-summary.html\">Module</a></li>");
|
||||
checkOutput("moduleA/testpkgmdlA/class-use/TestClassInModuleA.html", true,
|
||||
"<li><a href=\"../../module-summary.html\">Module</a></li>");
|
||||
checkOutput("moduleB/testpkgmdlB/package-summary.html", true,
|
||||
"<li><a href=\"../module-summary.html\">Module</a></li>");
|
||||
checkOutput("moduleB/testpkgmdlB/TestClassInModuleB.html", true,
|
||||
"<li><a href=\"../module-summary.html\">Module</a></li>");
|
||||
checkOutput("moduleB/testpkgmdlB/class-use/TestClassInModuleB.html", true,
|
||||
"<li><a href=\"../../module-summary.html\">Module</a></li>");
|
||||
}
|
||||
|
||||
void checkNoModuleLink() {
|
||||
@ -585,7 +585,7 @@ public class TestModules extends JavadocTester {
|
||||
}
|
||||
|
||||
void checkModuleTags() {
|
||||
checkOutput("moduletags-summary.html", true,
|
||||
checkOutput("moduletags/module-summary.html", true,
|
||||
"Type Link: <a href=\"testpkgmdltags/TestClassInModuleTags.html\" title=\"class in "
|
||||
+ "testpkgmdltags\"><code>TestClassInModuleTags</code></a>.",
|
||||
"Member Link: <a href=\"testpkgmdltags/TestClassInModuleTags.html#"
|
||||
@ -605,7 +605,7 @@ public class TestModules extends JavadocTester {
|
||||
+ "<dd>1.0</dd>",
|
||||
"<dt><span class=\"simpleTagLabel\">Author:</span></dt>\n"
|
||||
+ "<dd>Bhavesh Patel</dd>");
|
||||
checkOutput("testpkgmdltags/TestClassInModuleTags.html", false,
|
||||
checkOutput("moduletags/testpkgmdltags/TestClassInModuleTags.html", false,
|
||||
"<dt><span class=\"simpleTagLabel\">Module Tag:</span></dt>\n"
|
||||
+ "<dd>Just a simple module tag.</dd>");
|
||||
}
|
||||
@ -716,7 +716,7 @@ public class TestModules extends JavadocTester {
|
||||
}
|
||||
|
||||
void checkModuleSummary() {
|
||||
checkOutput("moduleA-summary.html", true,
|
||||
checkOutput("moduleA/module-summary.html", true,
|
||||
"<ul class=\"subNavList\">\n"
|
||||
+ "<li>Module: </li>\n"
|
||||
+ "<li><a href=\"#module.description\">Description</a> | <a "
|
||||
@ -737,12 +737,12 @@ public class TestModules extends JavadocTester {
|
||||
+ "</a>",
|
||||
"<tr class=\"altColor\">\n"
|
||||
+ "<td class=\"colFirst\">transitive</td>\n"
|
||||
+ "<th class=\"colSecond\" scope=\"row\"><a href=\"moduleB-summary.html\">moduleB</a></th>\n"
|
||||
+ "<th class=\"colSecond\" scope=\"row\"><a href=\"../moduleB/module-summary.html\">moduleB</a></th>\n"
|
||||
+ "<td class=\"colLast\">\n"
|
||||
+ "<div class=\"block\">This is a test description for the moduleB module.</div>\n"
|
||||
+ "</td>\n"
|
||||
+ "</tr>");
|
||||
checkOutput("moduleB-summary.html", true,
|
||||
checkOutput("moduleB/module-summary.html", true,
|
||||
"<li><a href=\"#module.description\">Description</a> | Modules | "
|
||||
+ "<a href=\"#packages.summary\">Packages</a> | <a href=\"#services.summary\">"
|
||||
+ "Services</a></li>",
|
||||
@ -785,7 +785,7 @@ public class TestModules extends JavadocTester {
|
||||
}
|
||||
|
||||
void checkAggregatorModuleSummary() {
|
||||
checkOutput("moduleT-summary.html", true,
|
||||
checkOutput("moduleT/module-summary.html", true,
|
||||
"<div class=\"header\">\n"
|
||||
+ "<h1 title=\"Module\" class=\"title\">Module moduleT</h1>\n"
|
||||
+ "</div>",
|
||||
@ -795,7 +795,7 @@ public class TestModules extends JavadocTester {
|
||||
"<tbody>\n"
|
||||
+ "<tr class=\"altColor\">\n"
|
||||
+ "<td class=\"colFirst\">transitive</td>\n"
|
||||
+ "<th class=\"colSecond\" scope=\"row\"><a href=\"moduleA-summary.html\">moduleA</a></th>\n"
|
||||
+ "<th class=\"colSecond\" 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 "
|
||||
+ "phrase <a id=\"searchphrase\" class=\"searchTagResult\">search phrase</a>.</div>\n"
|
||||
@ -803,7 +803,7 @@ public class TestModules extends JavadocTester {
|
||||
+ "</tr>\n"
|
||||
+ "<tr class=\"rowColor\">\n"
|
||||
+ "<td class=\"colFirst\">transitive</td>\n"
|
||||
+ "<th class=\"colSecond\" scope=\"row\"><a href=\"moduleB-summary.html\">moduleB</a></th>\n"
|
||||
+ "<th class=\"colSecond\" scope=\"row\"><a href=\"../moduleB/module-summary.html\">moduleB</a></th>\n"
|
||||
+ "<td class=\"colLast\">\n"
|
||||
+ "<div class=\"block\">This is a test description for the moduleB module.</div>\n"
|
||||
+ "</td>\n"
|
||||
@ -812,7 +812,7 @@ public class TestModules extends JavadocTester {
|
||||
}
|
||||
|
||||
void checkNegatedModuleSummary() {
|
||||
checkOutput("moduleA-summary.html", false,
|
||||
checkOutput("moduleA/module-summary.html", false,
|
||||
"<!-- ============ SERVICES SUMMARY =========== -->\n"
|
||||
+ "<a name=\"services.summary\">\n"
|
||||
+ "<!-- -->\n"
|
||||
@ -821,11 +821,11 @@ public class TestModules extends JavadocTester {
|
||||
|
||||
void checkModuleClickThroughLinks() {
|
||||
checkOutput("module-overview-frame.html", true,
|
||||
"<li><a href=\"moduleA-frame.html\" target=\"packageListFrame\" "
|
||||
+ "onclick=\"updateModuleFrame('moduleA-type-frame.html','moduleA-summary.html');"
|
||||
"<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-frame.html\" target=\"packageListFrame\" "
|
||||
+ "onclick=\"updateModuleFrame('moduleB-type-frame.html','moduleB-summary.html');"
|
||||
"<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"
|
||||
@ -837,37 +837,37 @@ public class TestModules extends JavadocTester {
|
||||
|
||||
void checkModuleClickThrough(boolean found) {
|
||||
checkFiles(found,
|
||||
"moduleA-type-frame.html",
|
||||
"moduleB-type-frame.html");
|
||||
"moduleA/module-type-frame.html",
|
||||
"moduleB/module-type-frame.html");
|
||||
}
|
||||
|
||||
void checkModuleFilesAndLinks(boolean found) {
|
||||
checkFileAndOutput("testpkgmdlA/package-summary.html", found,
|
||||
"<li><a href=\"../moduleA-summary.html\">Module</a></li>",
|
||||
checkFileAndOutput("moduleA/testpkgmdlA/package-summary.html", found,
|
||||
"<li><a href=\"../module-summary.html\">Module</a></li>",
|
||||
"<div class=\"subTitle\"><span class=\"moduleLabelInPackage\">Module</span> "
|
||||
+ "<a href=\"../moduleA-summary.html\">moduleA</a></div>");
|
||||
checkFileAndOutput("testpkgmdlA/TestClassInModuleA.html", found,
|
||||
"<li><a href=\"../moduleA-summary.html\">Module</a></li>",
|
||||
+ "<a href=\"../module-summary.html\">moduleA</a></div>");
|
||||
checkFileAndOutput("moduleA/testpkgmdlA/TestClassInModuleA.html", found,
|
||||
"<li><a href=\"../module-summary.html\">Module</a></li>",
|
||||
"<div class=\"subTitle\"><span class=\"moduleLabelInType\">Module</span> "
|
||||
+ "<a href=\"../moduleA-summary.html\">moduleA</a></div>");
|
||||
checkFileAndOutput("testpkgmdlB/AnnotationType.html", found,
|
||||
+ "<a href=\"../module-summary.html\">moduleA</a></div>");
|
||||
checkFileAndOutput("moduleB/testpkgmdlB/AnnotationType.html", found,
|
||||
"<div class=\"subTitle\"><span class=\"moduleLabelInType\">Module</span> "
|
||||
+ "<a href=\"../moduleB-summary.html\">moduleB</a></div>",
|
||||
+ "<a href=\"../module-summary.html\">moduleB</a></div>",
|
||||
"<div class=\"subTitle\"><span class=\"packageLabelInType\">"
|
||||
+ "Package</span> <a href=\"package-summary.html\">testpkgmdlB</a></div>");
|
||||
checkFiles(found,
|
||||
"moduleA-frame.html",
|
||||
"moduleA-summary.html",
|
||||
"moduleA/module-frame.html",
|
||||
"moduleA/module-summary.html",
|
||||
"module-overview-frame.html");
|
||||
}
|
||||
|
||||
void checkModuleFrameFiles(boolean found) {
|
||||
checkFiles(found,
|
||||
"moduleC-frame.html",
|
||||
"moduleC-type-frame.html",
|
||||
"moduleC/module-frame.html",
|
||||
"moduleC/module-type-frame.html",
|
||||
"module-overview-frame.html");
|
||||
checkFiles(true,
|
||||
"moduleC-summary.html",
|
||||
"moduleC/module-summary.html",
|
||||
"allclasses-frame.html",
|
||||
"allclasses-noframe.html");
|
||||
}
|
||||
@ -880,74 +880,74 @@ public class TestModules extends JavadocTester {
|
||||
void checkModulesInSearch(boolean found) {
|
||||
checkOutput("index-all.html", found,
|
||||
"<dl>\n"
|
||||
+ "<dt><a href=\"moduleA-summary.html\">moduleA</a> - module moduleA</dt>\n"
|
||||
+ "<dt><a href=\"moduleA/module-summary.html\">moduleA</a> - module moduleA</dt>\n"
|
||||
+ "<dd>\n"
|
||||
+ "<div class=\"block\">This is a test description for the moduleA module with a Search "
|
||||
+ "phrase <a id=\"searchphrase\" class=\"searchTagResult\">search phrase</a>.</div>\n"
|
||||
+ "</dd>\n"
|
||||
+ "<dt><a href=\"moduleB-summary.html\">moduleB</a> - module moduleB</dt>\n"
|
||||
+ "<dt><a href=\"moduleB/module-summary.html\">moduleB</a> - module moduleB</dt>\n"
|
||||
+ "<dd>\n"
|
||||
+ "<div class=\"block\">This is a test description for the moduleB module.</div>\n"
|
||||
+ "</dd>\n"
|
||||
+ "</dl>",
|
||||
"<dl>\n"
|
||||
+ "<dt><span class=\"searchTagLink\"><a href=\"moduleA-summary.html#searchphrase\">"
|
||||
+ "<dt><span class=\"searchTagLink\"><a href=\"moduleA/module-summary.html#searchphrase\">"
|
||||
+ "search phrase</a></span> - Search tag in moduleA</dt>\n"
|
||||
+ "<dd>with description</dd>\n"
|
||||
+ "<dt><span class=\"searchTagLink\"><a href=\"moduleB-summary.html#search_word\">"
|
||||
+ "<dt><span class=\"searchTagLink\"><a href=\"moduleB/module-summary.html#search_word\">"
|
||||
+ "search_word</a></span> - Search tag in moduleB</dt>\n"
|
||||
+ "<dd> </dd>\n"
|
||||
+ "</dl>");
|
||||
checkOutput("index-all.html", false,
|
||||
"<dt><span class=\"searchTagLink\"><a href=\"moduleA-summary.html#searchphrase\">"
|
||||
"<dt><span class=\"searchTagLink\"><a href=\"moduleA/module-summary.html#searchphrase\">"
|
||||
+ "search phrase</a></span> - Search tag in moduleA</dt>\n"
|
||||
+ "<dd>with description</dd>\n"
|
||||
+ "<dt><span class=\"searchTagLink\"><a href=\"moduleA-summary.html#searchphrase\">"
|
||||
+ "<dt><span class=\"searchTagLink\"><a href=\"moduleA/module-summary.html#searchphrase\">"
|
||||
+ "search phrase</a></span> - Search tag in moduleA</dt>\n"
|
||||
+ "<dd>with description</dd>");
|
||||
}
|
||||
|
||||
void checkModuleModeCommon() {
|
||||
checkOutput("overview-summary.html", true,
|
||||
"<th class=\"colFirst\" scope=\"row\"><a href=\"moduleA-summary.html\">moduleA</a></th>\n"
|
||||
"<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 "
|
||||
+ "phrase <a id=\"searchphrase\" class=\"searchTagResult\">search phrase</a>.</div>\n"
|
||||
+ "</td>",
|
||||
"<th class=\"colFirst\" scope=\"row\"><a href=\"moduleB-summary.html\">moduleB</a></th>\n"
|
||||
"<th class=\"colFirst\" scope=\"row\"><a href=\"moduleB/module-summary.html\">moduleB</a></th>\n"
|
||||
+ "<td class=\"colLast\">\n"
|
||||
+ "<div class=\"block\">This is a test description for the moduleB module.</div>\n"
|
||||
+ "</td>",
|
||||
"<th class=\"colFirst\" scope=\"row\"><a href=\"moduletags-summary.html\">moduletags</a></th>\n"
|
||||
"<th class=\"colFirst\" scope=\"row\"><a href=\"moduletags/module-summary.html\">moduletags</a></th>\n"
|
||||
+ "<td class=\"colLast\">\n"
|
||||
+ "<div class=\"block\">This is a test description for the moduletags module.<br>\n"
|
||||
+ " Type Link: <a href=\"testpkgmdltags/TestClassInModuleTags.html\" title=\"class in testpkgmdltags\"><code>TestClassInModuleTags</code></a>.<br>\n"
|
||||
+ " Member Link: <a href=\"testpkgmdltags/TestClassInModuleTags.html#testMethod-java.lang.String-\"><code>testMethod(String)</code></a>.<br>\n"
|
||||
+ " Package Link: <a href=\"testpkgmdltags/package-summary.html\"><code>testpkgmdltags</code></a>.<br></div>\n"
|
||||
+ " Type Link: <a href=\"moduletags/testpkgmdltags/TestClassInModuleTags.html\" title=\"class in testpkgmdltags\"><code>TestClassInModuleTags</code></a>.<br>\n"
|
||||
+ " Member Link: <a href=\"moduletags/testpkgmdltags/TestClassInModuleTags.html#testMethod-java.lang.String-\"><code>testMethod(String)</code></a>.<br>\n"
|
||||
+ " Package Link: <a href=\"moduletags/testpkgmdltags/package-summary.html\"><code>testpkgmdltags</code></a>.<br></div>\n"
|
||||
+ "</td>");
|
||||
checkOutput("moduleA-summary.html", true,
|
||||
checkOutput("moduleA/module-summary.html", true,
|
||||
"<li><a href=\"#module.description\">Description</a> | <a href=\"#modules.summary\">"
|
||||
+ "Modules</a> | <a href=\"#packages.summary\">Packages</a> | Services</li>",
|
||||
"<th class=\"colFirst\" scope=\"row\"><a href=\"moduleB-summary.html\">moduleB</a></th>\n"
|
||||
+ "<td class=\"colLast\"><a href=\"testpkgmdlB/package-summary.html\">testpkgmdlB</a></td>\n");
|
||||
checkOutput("moduleB-summary.html", true,
|
||||
"<th class=\"colFirst\" scope=\"row\"><a href=\"../moduleB/module-summary.html\">moduleB</a></th>\n"
|
||||
+ "<td class=\"colLast\"><a href=\"../moduleB/testpkgmdlB/package-summary.html\">testpkgmdlB</a></td>\n");
|
||||
checkOutput("moduleB/module-summary.html", true,
|
||||
"<th class=\"colFirst\" scope=\"row\"><a href=\"testpkgmdlB/TestClassInModuleB.html\" title=\"class in testpkgmdlB\">TestClassInModuleB</a></th>\n"
|
||||
+ "<td class=\"colLast\">\n"
|
||||
+ "<div class=\"block\">With a test description for uses.</div>\n</td>\n");
|
||||
checkOutput("moduletags-summary.html", true,
|
||||
checkOutput("moduletags/module-summary.html", true,
|
||||
"<li><a href=\"#module.description\">Description</a> | <a href=\"#modules.summary\">Modules"
|
||||
+ "</a> | <a href=\"#packages.summary\">Packages</a> | Services</li>",
|
||||
"<table class=\"requiresSummary\" summary=\"Indirect Requires table, listing modules, and an explanation\">\n"
|
||||
+ "<caption><span>Indirect Requires</span><span class=\"tabEnd\"> </span></caption>",
|
||||
"<td class=\"colFirst\">transitive</td>\n"
|
||||
+ "<th class=\"colSecond\" scope=\"row\"><a href=\"moduleB-summary.html\">moduleB</a></th>\n"
|
||||
+ "<th class=\"colSecond\" scope=\"row\"><a href=\"../moduleB/module-summary.html\">moduleB</a></th>\n"
|
||||
+ "<td class=\"colLast\">\n"
|
||||
+ "<div class=\"block\">This is a test description for the moduleB module.</div>\n"
|
||||
+ "</td>",
|
||||
"<table class=\"packagesSummary\" summary=\"Indirect Exports table, listing modules, and packages\">\n"
|
||||
+ "<caption><span>Indirect Exports</span><span class=\"tabEnd\"> </span></caption>",
|
||||
"<td class=\"colFirst\">transitive static</td>\n"
|
||||
+ "<th class=\"colSecond\" scope=\"row\"><a href=\"moduleA-summary.html\">moduleA</a></th>\n"
|
||||
+ "<th class=\"colSecond\" 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 "
|
||||
+ "phrase <a id=\"searchphrase\" class=\"searchTagResult\">search phrase</a>.</div>\n"
|
||||
@ -970,15 +970,15 @@ public class TestModules extends JavadocTester {
|
||||
+ "<th class=\"colFirst\" scope=\"col\">From</th>\n"
|
||||
+ "<th class=\"colLast\" scope=\"col\">Packages</th>\n"
|
||||
+ "</tr>\n",
|
||||
"<th class=\"colFirst\" scope=\"row\"><a href=\"moduleB-summary.html\">moduleB</a></th>\n"
|
||||
+ "<td class=\"colLast\"><a href=\"testpkgmdlB/package-summary.html\">testpkgmdlB</a></td>\n");
|
||||
"<th class=\"colFirst\" scope=\"row\"><a href=\"../moduleB/module-summary.html\">moduleB</a></th>\n"
|
||||
+ "<td class=\"colLast\"><a href=\"../moduleB/testpkgmdlB/package-summary.html\">testpkgmdlB</a></td>\n");
|
||||
}
|
||||
|
||||
void checkModuleModeApi(boolean found) {
|
||||
checkOutput("moduleA-summary.html", found,
|
||||
checkOutput("moduleA/module-summary.html", found,
|
||||
"<th class=\"colFirst\" scope=\"row\"><a href=\"testpkgmdlA/package-summary.html\">testpkgmdlA</a></th>\n"
|
||||
+ "<td class=\"colLast\"> </td>");
|
||||
checkOutput("moduleB-summary.html", found,
|
||||
checkOutput("moduleB/module-summary.html", found,
|
||||
"<li><a href=\"#module.description\">Description</a> | Modules | "
|
||||
+ "<a href=\"#packages.summary\">Packages</a> | <a href=\"#services.summary\">Services</a></li>",
|
||||
"<th class=\"colFirst\" scope=\"row\"><a href=\"testpkgmdlB/package-summary.html\">testpkgmdlB</a></th>\n"
|
||||
@ -996,23 +996,23 @@ public class TestModules extends JavadocTester {
|
||||
+ "</tr>\n"
|
||||
+ "</tbody>\n"
|
||||
+ "</table>");
|
||||
checkOutput("moduletags-summary.html", true,
|
||||
checkOutput("moduletags/module-summary.html", true,
|
||||
"<th class=\"colFirst\" scope=\"row\"><a href=\"testpkgmdltags/package-summary.html\">testpkgmdltags</a></th>\n"
|
||||
+ "<td class=\"colLast\"> </td>");
|
||||
}
|
||||
|
||||
void checkModuleModeAll(boolean found) {
|
||||
checkOutput("moduleA-summary.html", found,
|
||||
checkOutput("moduleA/module-summary.html", found,
|
||||
"<td class=\"colFirst\"> </td>\n"
|
||||
+ "<th class=\"colSecond\" scope=\"row\">java.base</th>\n"
|
||||
+ "<td class=\"colLast\"> </td>",
|
||||
"<td class=\"colFirst\"> </td>\n"
|
||||
+ "<th class=\"colSecond\" scope=\"row\"><a href=\"moduleC-summary.html\">moduleC</a></th>\n"
|
||||
+ "<th class=\"colSecond\" scope=\"row\"><a href=\"../moduleC/module-summary.html\">moduleC</a></th>\n"
|
||||
+ "<td class=\"colLast\">\n"
|
||||
+ "<div class=\"block\">This is a test description for the moduleC module.</div>\n"
|
||||
+ "</td>",
|
||||
"<th class=\"colFirst\" scope=\"row\"><a href=\"moduleC-summary.html\">moduleC</a></th>\n"
|
||||
+ "<td class=\"colLast\"><a href=\"testpkgmdlC/package-summary.html\">testpkgmdlC</a></td>",
|
||||
"<th class=\"colFirst\" scope=\"row\"><a href=\"../moduleC/module-summary.html\">moduleC</a></th>\n"
|
||||
+ "<td class=\"colLast\"><a href=\"../moduleC/testpkgmdlC/package-summary.html\">testpkgmdlC</a></td>",
|
||||
"<th class=\"colFirst\" scope=\"row\"><a href=\"testpkgmdlA/package-summary.html\">testpkgmdlA</a></th>\n"
|
||||
+ "<td class=\"colSecond\">All Modules</td>\n"
|
||||
+ "<td class=\"colLast\"> </td>",
|
||||
@ -1023,7 +1023,7 @@ public class TestModules extends JavadocTester {
|
||||
"<th class=\"colFirst\" scope=\"row\"><a href=\"concealedpkgmdlA/package-summary.html\">concealedpkgmdlA</a></th>\n"
|
||||
+ "<td class=\"colSecond\">None</td>\n"
|
||||
+ "<td class=\"colLast\"> </td>");
|
||||
checkOutput("moduleB-summary.html", found,
|
||||
checkOutput("moduleB/module-summary.html", found,
|
||||
"<li><a href=\"#module.description\">Description</a> | <a href=\"#modules.summary\">"
|
||||
+ "Modules</a> | <a href=\"#packages.summary\">Packages</a> | <a href=\"#services.summary\">Services</a></li>",
|
||||
"<th class=\"colFirst\" scope=\"row\"><a href=\"testpkgmdlB/package-summary.html\">testpkgmdlB</a></th>\n"
|
||||
@ -1044,20 +1044,20 @@ public class TestModules extends JavadocTester {
|
||||
"<caption><span id=\"t0\" class=\"activeTableTab\"><span>All Packages</span><span class=\"tabEnd\"> </span></span><span id=\"t1\" class=\"tableTab\"><span>"
|
||||
+ "<a href=\"javascript:showPkgs(1);\">Exports</a></span><span class=\"tabEnd\"> </span></span><span id=\"t2\" class=\"tableTab\"><span>"
|
||||
+ "<a href=\"javascript:showPkgs(2);\">Opens</a></span><span class=\"tabEnd\"> </span></span></caption>");
|
||||
checkOutput("moduleC-summary.html", found,
|
||||
checkOutput("moduleC/module-summary.html", found,
|
||||
"<caption><span>Exports</span><span class=\"tabEnd\"> </span></caption>\n"
|
||||
+ "<tr>\n"
|
||||
+ "<th class=\"colFirst\" scope=\"col\">Package</th>\n"
|
||||
+ "<th class=\"colSecond\" scope=\"col\">Exported To Modules</th>\n"
|
||||
+ "<th class=\"colLast\" scope=\"col\">Description</th>\n"
|
||||
+ "</tr>");
|
||||
checkOutput("moduletags-summary.html", true,
|
||||
checkOutput("moduletags/module-summary.html", true,
|
||||
"<th class=\"colFirst\" scope=\"row\"><a href=\"testpkgmdltags/package-summary.html\">testpkgmdltags</a></th>\n"
|
||||
+ "<td class=\"colLast\"> </td>");
|
||||
}
|
||||
|
||||
void checkModuleDeprecation(boolean found) {
|
||||
checkOutput("moduleA-summary.html", found,
|
||||
checkOutput("moduleA/module-summary.html", found,
|
||||
"<div class=\"deprecationBlock\"><span class=\"deprecatedLabel\">Deprecated, for removal:"
|
||||
+ " This API element is subject to removal in a future version.</span>\n"
|
||||
+ "<div class=\"deprecationComment\">This module is deprecated.</div>\n"
|
||||
@ -1068,26 +1068,26 @@ public class TestModules extends JavadocTester {
|
||||
+ "<li><a href=\"#module\">Modules</a></li>\n"
|
||||
+ "</ul>",
|
||||
"<tr class=\"altColor\">\n"
|
||||
+ "<th class=\"colDeprecatedItemName\" scope=\"row\"><a href=\"moduleA-summary.html\">moduleA</a></th>\n"
|
||||
+ "<th class=\"colDeprecatedItemName\" scope=\"row\"><a href=\"moduleA/module-summary.html\">moduleA</a></th>\n"
|
||||
+ "<td class=\"colLast\">\n"
|
||||
+ "<div class=\"deprecationComment\">This module is deprecated.</div>\n"
|
||||
+ "</td>\n"
|
||||
+ "</tr>");
|
||||
checkOutput("moduleB-summary.html", !found,
|
||||
checkOutput("moduleB/module-summary.html", !found,
|
||||
"<div class=\"deprecationBlock\"><span class=\"deprecatedLabel\">Deprecated.</span>\n"
|
||||
+ "<div class=\"deprecationComment\">This module is deprecated using just the javadoc tag.</div>\n");
|
||||
checkOutput("moduletags-summary.html", found,
|
||||
checkOutput("moduletags/module-summary.html", found,
|
||||
"<p>@Deprecated\n"
|
||||
+ "</p>",
|
||||
"<div class=\"deprecationBlock\"><span class=\"deprecatedLabel\">Deprecated.</span></div>");
|
||||
}
|
||||
|
||||
void checkModuleAnnotation() {
|
||||
checkOutput("moduleB-summary.html", true,
|
||||
checkOutput("moduleB/module-summary.html", true,
|
||||
"<p><a href=\"testpkgmdlB/AnnotationType.html\" title=\"annotation in testpkgmdlB\">@AnnotationType</a>(<a href=\"testpkgmdlB/AnnotationType.html#optional--\">optional</a>=\"Module Annotation\",\n"
|
||||
+ " <a href=\"testpkgmdlB/AnnotationType.html#required--\">required</a>=2016)\n"
|
||||
+ "</p>");
|
||||
checkOutput("moduleB-summary.html", false,
|
||||
checkOutput("moduleB/module-summary.html", false,
|
||||
"@AnnotationTypeUndocumented");
|
||||
}
|
||||
|
||||
@ -1099,7 +1099,7 @@ public class TestModules extends JavadocTester {
|
||||
}
|
||||
|
||||
void checkModuleSummaryNoExported(boolean found) {
|
||||
checkOutput("moduleNoExport-summary.html", found,
|
||||
checkOutput("moduleNoExport/module-summary.html", found,
|
||||
"<!-- ============ PACKAGES SUMMARY =========== -->\n"
|
||||
+ "<a name=\"packages.summary\">\n"
|
||||
+ "<!-- -->\n"
|
||||
@ -1194,30 +1194,30 @@ public class TestModules extends JavadocTester {
|
||||
}
|
||||
|
||||
void checkModuleName(boolean found) {
|
||||
checkOutput("test.moduleFullName-summary.html", found,
|
||||
checkOutput("test.moduleFullName/module-summary.html", found,
|
||||
"<div class=\"header\">\n"
|
||||
+ "<h1 title=\"Module\" class=\"title\">Module test.moduleFullName</h1>\n"
|
||||
+ "</div>");
|
||||
checkOutput("index-all.html", found,
|
||||
"<h2 class=\"title\">T</h2>\n"
|
||||
+ "<dl>\n"
|
||||
+ "<dt><a href=\"test.moduleFullName-summary.html\">test.moduleFullName</a> - module test.moduleFullName</dt>\n"
|
||||
+ "<dt><a href=\"test.moduleFullName/module-summary.html\">test.moduleFullName</a> - module test.moduleFullName</dt>\n"
|
||||
+ "<dd>\n"
|
||||
+ "<div class=\"block\">This is a test description for the test.moduleFullName.</div>\n"
|
||||
+ "</dd>");
|
||||
checkOutput("module-overview-frame.html", found,
|
||||
"<h2 title=\"Modules\">Modules</h2>\n"
|
||||
+ "<ul title=\"Modules\">\n"
|
||||
+ "<li><a href=\"moduleB-frame.html\" target=\"packageListFrame\" onclick=\"updateModuleFrame('moduleB-type-frame.html','moduleB-summary.html');\">moduleB</a></li>\n"
|
||||
+ "<li><a href=\"test.moduleFullName-frame.html\" target=\"packageListFrame\" onclick=\"updateModuleFrame('test.moduleFullName-type-frame.html','test.moduleFullName-summary.html');\">test.moduleFullName</a></li>\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-summary.html", !found,
|
||||
checkOutput("test.moduleFullName/module-summary.html", !found,
|
||||
"<div class=\"header\">\n"
|
||||
+ "<h1 title=\"Module\" class=\"title\">Module moduleFullName</h1>\n"
|
||||
+ "</div>");
|
||||
checkOutput("index-all.html", !found,
|
||||
"<dl>\n"
|
||||
+ "<dt><a href=\"test.moduleFullName-summary.html\">moduleFullName</a> - module moduleFullName</dt>\n"
|
||||
+ "<dt><a href=\"test.moduleFullName/module-summary.html\">moduleFullName</a> - module moduleFullName</dt>\n"
|
||||
+ "<dd>\n"
|
||||
+ "<div class=\"block\">This is a test description for the test.moduleFullName.</div>\n"
|
||||
+ "</dd>\n"
|
||||
@ -1225,14 +1225,14 @@ public class TestModules extends JavadocTester {
|
||||
}
|
||||
|
||||
void checkLinkOffline() {
|
||||
checkOutput("testpkg3mdlB/package-summary.html", true,
|
||||
checkOutput("moduleB/testpkg3mdlB/package-summary.html", true,
|
||||
"<a href=\"https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true\" "
|
||||
+ "title=\"class or interface in java.lang\" class=\"externalLink\"><code>Link to String Class</code></a>");
|
||||
checkOutput("testpkg3mdlB/package-summary.html", true,
|
||||
checkOutput("moduleB/testpkg3mdlB/package-summary.html", true,
|
||||
"<a href=\"https://docs.oracle.com/javase/9/docs/api/java/lang/package-summary.html?is-external=true\" "
|
||||
+ "class=\"externalLink\"><code>Link to java.lang package</code></a>");
|
||||
checkOutput("testpkg3mdlB/package-summary.html", true,
|
||||
"<a href=\"https://docs.oracle.com/javase/9/docs/api/java.base-summary.html?is-external=true\" "
|
||||
checkOutput("moduleB/testpkg3mdlB/package-summary.html", true,
|
||||
"<a href=\"https://docs.oracle.com/javase/9/docs/api/java.base/module-summary.html?is-external=true\" "
|
||||
+ "class=\"externalLink\"><code>Link to java.base module</code></a>");
|
||||
}
|
||||
}
|
||||
|
@ -82,23 +82,23 @@ public class TestModuleNavigation extends JavadocTester {
|
||||
"Prev",
|
||||
"Next");
|
||||
|
||||
checkOutput("m-summary.html", false,
|
||||
checkOutput("m/module-summary.html", false,
|
||||
"Prev Module",
|
||||
"Next Module");
|
||||
|
||||
checkOutput("m2p1/package-summary.html", false,
|
||||
checkOutput("m2/m2p1/package-summary.html", false,
|
||||
"Prev Package",
|
||||
"Next Package");
|
||||
|
||||
checkOutput("m2p1/Am2.html", false,
|
||||
checkOutput("m2/m2p1/Am2.html", false,
|
||||
"Prev Class",
|
||||
"Next Class");
|
||||
|
||||
checkOutput("m2p1/class-use/Am2.html", false,
|
||||
checkOutput("m2/m2p1/class-use/Am2.html", false,
|
||||
"Prev",
|
||||
"Next");
|
||||
|
||||
checkOutput("m2p1/package-tree.html", false,
|
||||
checkOutput("m2/m2p1/package-tree.html", false,
|
||||
"Prev",
|
||||
"Next");
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user