8216497: javadoc should auto-link to platform classes

Co-authored-by: Jan Lahoda <jlahoda@openjdk.org>
Reviewed-by: erikj, jjg
This commit is contained in:
Hannes Wallnöfer 2020-10-07 13:08:34 +00:00
parent 04ca660e81
commit 1e8e543b26
51 changed files with 1840 additions and 13 deletions

View File

@ -74,7 +74,7 @@ define SetupInterimModule
EXCLUDE_FILES := $(TOPDIR)/src/$1/share/classes/module-info.java \
Standard.java, \
EXTRA_FILES := $(BUILDTOOLS_OUTPUTDIR)/gensrc/$1.interim/module-info.java, \
COPY := .gif .png .xml .css .js javax.tools.JavaCompilerTool, \
COPY := .gif .png .xml .css .js .txt javax.tools.JavaCompilerTool, \
BIN := $(BUILDTOOLS_OUTPUTDIR)/interim_langtools_modules/$1.interim, \
DISABLED_WARNINGS := module options, \
JAVAC_FLAGS := \

View File

@ -348,7 +348,7 @@ jdk.dynalink_CLEAN += .properties
################################################################################
jdk.javadoc_COPY += .xml .css .js .png
jdk.javadoc_COPY += .xml .css .js .png .txt
################################################################################

View File

@ -143,6 +143,7 @@ import com.sun.tools.javac.jvm.Target;
import com.sun.tools.javac.util.Assert;
import com.sun.tools.javac.util.Context;
import com.sun.tools.javac.util.Pair;
import java.util.Optional;
/**
* A tool for processing the .sym.txt files.
@ -3820,6 +3821,47 @@ public class CreateSymbols {
}
//</editor-fold>
/**Create sig files for ct.sym reading the classes description from the directory that contains
* {@code ctDescriptionFile}, using the file as a recipe to create the sigfiles.
*/
@SuppressWarnings("unchecked")
public void createJavadocData(String ctDescriptionFileExtra, String ctDescriptionFile,
String targetDir, int startVersion) throws IOException {
LoadDescriptions data = load(ctDescriptionFileExtra != null ? Paths.get(ctDescriptionFileExtra)
: null,
Paths.get(ctDescriptionFile));
Path target = Paths.get(targetDir);
for (PlatformInput version : data.versions) {
int versionNumber = Integer.parseInt(version.version, Character.MAX_RADIX);
if (versionNumber < startVersion) {
continue;
}
Path outputFile = target.resolve("element-list-" + versionNumber + ".txt");
Files.createDirectories(outputFile.getParent());
try (Writer w = Files.newBufferedWriter(outputFile, StandardCharsets.UTF_8)) {
Set<ModuleDescription> modules = new TreeSet<>((m1, m2) -> m1.name.compareTo(m2.name));
modules.addAll(data.modules.values());
for (ModuleDescription module : modules) {
if ("jdk.unsupported".equals(module.name)) {
continue;
}
Optional<ModuleHeaderDescription> header = module.header.stream().filter(h -> h.versions.contains(version.version)).findAny();
if (header.isEmpty()) {
continue;
}
w.write("module:" + module.name);
w.write("\n");
for (String pack : header.get().exports) {
w.write(pack.replace('/', '.'));
w.write("\n");
}
}
}
}
}
private static void help() {
System.err.println("Help...");
}
@ -3900,7 +3942,7 @@ public class CreateSymbols {
new CreateSymbols().createIncrementalBaseLine(args[1], args[2], args);
break;
}
case "build-ctsym":
case "build-ctsym": {
String ctDescriptionFileExtra;
String ctDescriptionFile;
String ctSymLocation;
@ -3940,6 +3982,39 @@ public class CreateSymbols {
systemModules);
break;
}
case "build-javadoc-data": {
String ctDescriptionFileExtra;
String ctDescriptionFile;
String targetDir;
int startVersion;
if (args.length == 4) {
ctDescriptionFileExtra = null;
ctDescriptionFile = args[1];
targetDir = args[2];
startVersion = Integer.parseInt(args[3]);
} else if (args.length == 5) {
ctDescriptionFileExtra = args[1];
ctDescriptionFile = args[2];
targetDir = args[3];
startVersion = Integer.parseInt(args[4]);
} else {
help();
return ;
}
if (startVersion < 9) {
System.err.println("The start version must be at least 9!");
return ;
}
new CreateSymbols().createJavadocData(ctDescriptionFileExtra,
ctDescriptionFile,
targetDir,
startVersion);
break;
}
}
}
}

View File

@ -0,0 +1,136 @@
/*
* 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package build.tools.symbolgenerator;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayDeque;
import java.util.Arrays;
import java.util.Deque;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import javax.lang.model.element.ModuleElement.ExportsDirective;
import javax.lang.model.util.Elements;
import javax.tools.JavaCompiler;
import com.sun.tools.javac.api.JavacTaskImpl;
import com.sun.tools.javac.api.JavacTool;
import com.sun.tools.javac.code.Source;
import com.sun.tools.javac.code.Symbol.ModuleSymbol;
import com.sun.tools.javac.jvm.Target;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;
import java.util.TreeSet;
import javax.lang.model.element.ModuleElement;
/**
* Generate list of modules and packages in the current release.
* Used by the javadoc tool.
*/
public class JavadocElementList {
private static void help() {
System.err.println("java JavadocElementList <target-file> <module-source-path> <root-modules>");
}
public static void main(String... args) throws IOException {
if (args.length < 2) {
help();
return ;
}
JavaCompiler compiler = JavacTool.create();
List<String> options = List.of("-source", Source.DEFAULT.name,
"-target", Target.DEFAULT.name,
"-proc:only",
"--system", "none",
"--module-source-path", args[1],
"--add-modules", Arrays.stream(args)
.skip(2)
.collect(Collectors.joining(",")));
List<String> jlObjectList = List.of("java.lang.Object");
JavacTaskImpl task = (JavacTaskImpl) compiler.getTask(null, null, null, options, jlObjectList, null);
task.enter();
Elements elements = task.getElements();
Deque<String> todo = new ArrayDeque<>();
Arrays.stream(args).skip(2).forEach(todo::add);
todo.add("java.base");
Map<String, Set<String>> modulesAndExports = new TreeMap<>();
while (!todo.isEmpty()) {
String current = todo.removeFirst();
if (modulesAndExports.containsKey(current))
continue;
ModuleSymbol mod = (ModuleSymbol) elements.getModuleElement(current);
if (mod == null) {
throw new IllegalStateException("Missing: " + current);
}
//use the internal structure to avoid unnecesarily completing the symbol using the UsesProvidesVisitor:
modulesAndExports.put(mod.getQualifiedName().toString(),
mod.exports
.stream()
.filter((ExportsDirective ed) -> ed.getTargetModules() == null)
.map((ExportsDirective ed) -> ed.getPackage().getQualifiedName().toString())
.collect(Collectors.toCollection(() -> new TreeSet<>()))
);
for (ModuleElement.RequiresDirective rd : mod.requires) {
if (rd.isTransitive()) {
todo.offerLast(rd.getDependency().getQualifiedName().toString());
}
}
}
Path targetFile = Paths.get(args[0]);
Files.createDirectories(targetFile.getParent());
try (Writer w = Files.newBufferedWriter(targetFile);
PrintWriter out = new PrintWriter(w)) {
for (Entry<String, Set<String>> moduleAndExports : modulesAndExports.entrySet()) {
out.write("module:" + moduleAndExports.getKey());
out.write("\n");
for (String pack : moduleAndExports.getValue()) {
out.write(pack);
out.write("\n");
}
}
}
}
}

View File

@ -0,0 +1,97 @@
#
# Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
include JavaCompilation.gmk
include Modules.gmk
################################################################################
# Hook to include the corresponding custom file, if present.
$(eval $(call IncludeCustomExtension, modules/jdk.javadoc/Gendata.gmk))
# This is needed to properly setup DOCS_MODULES.
$(eval $(call ReadImportMetaData))
JAVADOC_MODULES := $(DOCS_MODULES)
# Get the complete module source path:
JAVADOC_MODULESOURCEPATH := $(call GetModuleSrcPath)
CT_DATA_DESCRIPTION += $(TOPDIR)/make/data/symbols/symbols
COMPILECREATESYMBOLS_ADD_EXPORTS := \
--add-exports java.base/jdk.internal=java.compiler.interim,jdk.compiler.interim \
--add-exports jdk.compiler.interim/com.sun.tools.javac.api=ALL-UNNAMED \
--add-exports jdk.compiler.interim/com.sun.tools.javac.code=ALL-UNNAMED \
--add-exports jdk.compiler.interim/com.sun.tools.javac.util=ALL-UNNAMED \
--add-exports jdk.compiler.interim/com.sun.tools.javac.jvm=ALL-UNNAMED \
#
$(eval $(call SetupJavaCompilation, COMPILE_CREATE_SYMBOLS, \
TARGET_RELEASE := $(TARGET_RELEASE_BOOTJDK), \
SRC := $(TOPDIR)/make/langtools/src/classes \
$(TOPDIR)/src/jdk.jdeps/share/classes, \
INCLUDES := build/tools/symbolgenerator com/sun/tools/classfile, \
BIN := $(BUILDTOOLS_OUTPUTDIR)/create_symbols, \
DISABLED_WARNINGS := options, \
JAVAC_FLAGS := \
$(INTERIM_LANGTOOLS_ARGS) \
--patch-module java.base=$(BUILDTOOLS_OUTPUTDIR)/gensrc/java.base.interim \
$(COMPILECREATESYMBOLS_ADD_EXPORTS), \
))
$(SUPPORT_OUTPUTDIR)/javadoc-symbols/symbols: \
$(COMPILE_CREATE_SYMBOLS) \
$(wildcard $(TOPDIR)/make/data/symbols/*) \
$(MODULE_INFOS)
$(RM) -r $(@D)
$(MKDIR) -p $(@D)
$(ECHO) Creating javadoc element list
$(JAVA_SMALL) $(INTERIM_LANGTOOLS_ARGS) \
$(COMPILECREATESYMBOLS_ADD_EXPORTS) \
-classpath $(BUILDTOOLS_OUTPUTDIR)/create_symbols \
build.tools.symbolgenerator.CreateSymbols \
build-javadoc-data \
$(CT_DATA_DESCRIPTION) \
$(JDK_OUTPUTDIR)/modules/jdk.javadoc/jdk/javadoc/internal/doclets/toolkit/resources/releases \
11
$(JAVA_SMALL) $(INTERIM_LANGTOOLS_ARGS) \
$(COMPILECREATESYMBOLS_ADD_EXPORTS) \
-classpath $(BUILDTOOLS_OUTPUTDIR)/create_symbols \
build.tools.symbolgenerator.JavadocElementList \
$(JDK_OUTPUTDIR)/modules/jdk.javadoc/jdk/javadoc/internal/doclets/toolkit/resources/releases/element-list-$(JDK_SOURCE_TARGET_VERSION).txt \
$(JAVADOC_MODULESOURCEPATH) \
$(JAVADOC_MODULES)
$(TOUCH) $@
# Copy ct.sym to the modules libs dir
$(eval $(call SetupCopyFiles, COPY_TO_LIBS, \
FILES := $(SUPPORT_OUTPUTDIR)/javadoc-symbols/*.txt, \
DEST := $(JDK_OUTPUTDIR)/modules/jdk.javadoc/jdk/javadoc/internal/doclets/toolkit/resources/releases, \
))
TARGETS += $(SUPPORT_OUTPUTDIR)/javadoc-symbols/symbols
################################################################################

View File

@ -85,6 +85,7 @@ doclet.package=package
doclet.MalformedURL=Malformed URL: {0}
doclet.File_error=Error reading file: {0}
doclet.URL_error=Error fetching URL: {0}
doclet.Resource_error=Error reading resource: {0}
doclet.see.class_or_package_not_found=Tag {0}: reference not found: {1}
doclet.see.class_or_package_not_accessible=Tag {0}: reference not accessible: {1}
doclet.tag.invalid_usage=invalid usage of tag {0}
@ -340,8 +341,13 @@ doclet.usage.linkoffline.parameters=\
doclet.usage.linkoffline.description=\
Link to docs at <url1> using package list at <url2>
doclet.usage.link-platform-properties.parameters=\
<url>
doclet.usage.link-platform-properties.description=\
Link to platform documentation URLs declared in properties file at <url>
doclet.usage.excludedocfilessubdir.parameters=\
<name>:..
<name>:...
doclet.usage.excludedocfilessubdir.description=\
Exclude any doc-files subdirectories with given name
@ -357,7 +363,7 @@ doclet.usage.nodeprecated.description=\
Do not include @deprecated information
doclet.usage.noqualifier.parameters=\
<name1>:<name2>:..
<name1>:<name2>:...
doclet.usage.noqualifier.description=\
Exclude the list of qualifiers from the output
@ -374,6 +380,9 @@ doclet.usage.no-module-directories.description=\
Do not group files for module documentation into \n\
module-specific directories
doclet.usage.no-platform-links.description=\
Do not generate links to the platform documentation
doclet.usage.notree.description=\
Do not generate class hierarchy

View File

@ -376,6 +376,9 @@ public abstract class BaseConfiguration {
for (Pair<String, String> linkOfflinePair : options.linkOfflineList()) {
extern.link(linkOfflinePair.first, linkOfflinePair.second, reporter);
}
if (!options.noPlatformLinks()) {
extern.checkPlatformLinks(options.linkPlatformProperties(), reporter);
}
typeElementCatalog = new TypeElementCatalog(includedTypeElements, this);
initTagletManager(options.customTagStrs());
options.groupPairs().forEach(grp -> {

View File

@ -164,6 +164,11 @@ public abstract class BaseOptions {
// A list of pairs containing urls and package list
private final List<Utils.Pair<String, String>> linkOfflineList = new ArrayList<>();
/**
* Location of alternative platform link properties file.
*/
private String linkPlatformProperties;
/**
* Argument for command-line option {@code -linksource}.
* True if we should generate browsable sources.
@ -185,6 +190,13 @@ public abstract class BaseOptions {
*/
private boolean noDeprecated = false;
/**
* Argument for command-line option {@code --no-platform-links}.
* True if command-line option "--no-platform-links" is used. Default value is
* false.
*/
private boolean noPlatformLinks = false;
/**
* Argument for command-line option {@code -nosince}.
* True if command-line option "-nosince" is used. Default value is
@ -371,6 +383,15 @@ public abstract class BaseOptions {
return true;
}
},
new Option(resources, "--link-platform-properties", 1) {
@Override
public boolean process(String opt, List<String> args) {
linkPlatformProperties = args.get(0);
return true;
}
},
new Option(resources, "-nocomment") {
@Override
public boolean process(String opt, List<String> args) {
@ -411,6 +432,14 @@ public abstract class BaseOptions {
}
},
new Option(resources, "--no-platform-links") {
@Override
public boolean process(String opt, List<String> args) {
noPlatformLinks = true;
return true;
}
},
new Option(resources, "--override-methods", 1) {
@Override
public boolean process(String opt, List<String> args) {
@ -755,6 +784,13 @@ public abstract class BaseOptions {
return linkOfflineList;
}
/**
* Argument for command-line option {@code --link-platform-properties}.
*/
String linkPlatformProperties() {
return linkPlatformProperties;
}
/**
* Argument for command-line option {@code -linksource}.
* True if we should generate browsable sources.
@ -782,6 +818,15 @@ public abstract class BaseOptions {
return noDeprecated;
}
/**
* Argument for command-line option {@code --no-platform-links}.
* True if command-line option {@code --no-platform-links"} is used.
* Default value is false.
*/
public boolean noPlatformLinks() {
return noPlatformLinks;
}
/**
* Argument for command-line option {@code -nosince}.
* True if command-line option {@code -nosince"} is used.

View File

@ -326,3 +326,7 @@ doclet.record_accessor_doc.return=\
doclet.record_field_doc.fullbody=\
The field for the {0} record component.
doclet.platform.docs.old=https://docs.oracle.com/javase/{0}/docs/api/
doclet.platform.docs.new=https://docs.oracle.com/en/java/javase/{0}/docs/api/
doclet.platform.docs.ea=https://download.java.net/java/early_access/jdk{0}/docs/api/

View File

@ -0,0 +1,314 @@
javax.activation
java.io
java.lang
java.lang.annotation
java.lang.invoke
java.lang.module
java.lang.ref
java.lang.reflect
java.math
java.net
java.net.spi
java.nio
java.nio.channels
java.nio.channels.spi
java.nio.charset
java.nio.charset.spi
java.nio.file
java.nio.file.attribute
java.nio.file.spi
java.security
java.security.acl
java.security.cert
java.security.interfaces
java.security.spec
java.text
java.text.spi
java.time
java.time.chrono
java.time.format
java.time.temporal
java.time.zone
java.util
java.util.concurrent
java.util.concurrent.atomic
java.util.concurrent.locks
java.util.function
java.util.jar
java.util.regex
java.util.spi
java.util.stream
java.util.zip
javax.crypto
javax.crypto.interfaces
javax.crypto.spec
javax.net
javax.net.ssl
javax.security.auth
javax.security.auth.callback
javax.security.auth.login
javax.security.auth.spi
javax.security.auth.x500
javax.security.cert
javax.annotation.processing
javax.lang.model
javax.lang.model.element
javax.lang.model.type
javax.lang.model.util
javax.tools
javax.activity
javax.rmi
javax.rmi.CORBA
org.omg.CORBA
org.omg.CORBA_2_3
org.omg.CORBA_2_3.portable
org.omg.CORBA.DynAnyPackage
org.omg.CORBA.ORBPackage
org.omg.CORBA.portable
org.omg.CORBA.TypeCodePackage
org.omg.CosNaming
org.omg.CosNaming.NamingContextExtPackage
org.omg.CosNaming.NamingContextPackage
org.omg.Dynamic
org.omg.DynamicAny
org.omg.DynamicAny.DynAnyFactoryPackage
org.omg.DynamicAny.DynAnyPackage
org.omg.IOP
org.omg.IOP.CodecFactoryPackage
org.omg.IOP.CodecPackage
org.omg.Messaging
org.omg.PortableInterceptor
org.omg.PortableInterceptor.ORBInitInfoPackage
org.omg.PortableServer
org.omg.PortableServer.CurrentPackage
org.omg.PortableServer.POAManagerPackage
org.omg.PortableServer.POAPackage
org.omg.PortableServer.portable
org.omg.PortableServer.ServantLocatorPackage
org.omg.SendingContext
org.omg.stub.java.rmi
java.awt.datatransfer
java.applet
java.awt
java.awt.color
java.awt.desktop
java.awt.dnd
java.awt.event
java.awt.font
java.awt.geom
java.awt.im
java.awt.im.spi
java.awt.image
java.awt.image.renderable
java.awt.print
java.beans
java.beans.beancontext
javax.accessibility
javax.imageio
javax.imageio.event
javax.imageio.metadata
javax.imageio.plugins.bmp
javax.imageio.plugins.jpeg
javax.imageio.plugins.tiff
javax.imageio.spi
javax.imageio.stream
javax.print
javax.print.attribute
javax.print.attribute.standard
javax.print.event
javax.sound.midi
javax.sound.midi.spi
javax.sound.sampled
javax.sound.sampled.spi
javax.swing
javax.swing.border
javax.swing.colorchooser
javax.swing.event
javax.swing.filechooser
javax.swing.plaf
javax.swing.plaf.basic
javax.swing.plaf.metal
javax.swing.plaf.multi
javax.swing.plaf.nimbus
javax.swing.plaf.synth
javax.swing.table
javax.swing.text
javax.swing.text.html
javax.swing.text.html.parser
javax.swing.text.rtf
javax.swing.tree
javax.swing.undo
java.lang.instrument
javax.jnlp
java.util.logging
java.lang.management
javax.management
javax.management.loading
javax.management.modelmbean
javax.management.monitor
javax.management.openmbean
javax.management.relation
javax.management.remote
javax.management.timer
javax.management.remote.rmi
javax.naming
javax.naming.directory
javax.naming.event
javax.naming.ldap
javax.naming.spi
java.util.prefs
java.rmi
java.rmi.activation
java.rmi.dgc
java.rmi.registry
java.rmi.server
javax.rmi.ssl
javax.script
javax.security.auth.kerberos
org.ietf.jgss
javax.security.sasl
javax.smartcardio
java.sql
javax.sql
javax.transaction.xa
javax.sql.rowset
javax.sql.rowset.serial
javax.sql.rowset.spi
javax.transaction
javax.xml
javax.xml.catalog
javax.xml.datatype
javax.xml.namespace
javax.xml.parsers
javax.xml.stream
javax.xml.stream.events
javax.xml.stream.util
javax.xml.transform
javax.xml.transform.dom
javax.xml.transform.sax
javax.xml.transform.stax
javax.xml.transform.stream
javax.xml.validation
javax.xml.xpath
org.w3c.dom
org.w3c.dom.bootstrap
org.w3c.dom.events
org.w3c.dom.ls
org.w3c.dom.ranges
org.w3c.dom.traversal
org.w3c.dom.views
org.xml.sax
org.xml.sax.ext
org.xml.sax.helpers
javax.xml.bind
javax.xml.bind.annotation
javax.xml.bind.annotation.adapters
javax.xml.bind.attachment
javax.xml.bind.helpers
javax.xml.bind.util
javax.xml.crypto
javax.xml.crypto.dom
javax.xml.crypto.dsig
javax.xml.crypto.dsig.dom
javax.xml.crypto.dsig.keyinfo
javax.xml.crypto.dsig.spec
javax.jws
javax.jws.soap
javax.xml.soap
javax.xml.ws
javax.xml.ws.handler
javax.xml.ws.handler.soap
javax.xml.ws.http
javax.xml.ws.soap
javax.xml.ws.spi
javax.xml.ws.spi.http
javax.xml.ws.wsaddressing
javax.annotation
javafx.beans
javafx.beans.binding
javafx.beans.property
javafx.beans.property.adapter
javafx.beans.value
javafx.collections
javafx.collections.transformation
javafx.event
javafx.util
javafx.util.converter
javafx.scene.chart
javafx.scene.control
javafx.scene.control.cell
javafx.scene.control.skin
javafx.fxml
javafx.animation
javafx.application
javafx.concurrent
javafx.css
javafx.css.converter
javafx.geometry
javafx.print
javafx.scene
javafx.scene.canvas
javafx.scene.effect
javafx.scene.image
javafx.scene.input
javafx.scene.layout
javafx.scene.paint
javafx.scene.shape
javafx.scene.text
javafx.scene.transform
javafx.stage
javafx.scene.media
javafx.embed.swing
javafx.scene.web
com.sun.java.accessibility.util
com.sun.tools.attach
com.sun.tools.attach.spi
com.sun.source.doctree
com.sun.source.tree
com.sun.source.util
com.sun.tools.javac
jdk.dynalink
jdk.dynalink.beans
jdk.dynalink.linker
jdk.dynalink.linker.support
jdk.dynalink.support
com.sun.net.httpserver
com.sun.net.httpserver.spi
jdk.incubator.http
com.sun.jarsigner
jdk.security.jarsigner
com.sun.javadoc
com.sun.tools.javadoc
jdk.javadoc.doclet
com.sun.tools.jconsole
com.sun.jdi
com.sun.jdi.connect
com.sun.jdi.connect.spi
com.sun.jdi.event
com.sun.jdi.request
jdk.jfr
jdk.jfr.consumer
jdk.jshell
jdk.jshell.execution
jdk.jshell.spi
jdk.jshell.tool
netscape.javascript
com.sun.management
jdk.management.cmm
jdk.management.jfr
jdk.management.resource
jdk.net
jdk.packager.services
jdk.packager.services.singleton
jdk.nashorn.api.scripting
jdk.nashorn.api.tree
com.sun.nio.sctp
com.sun.security.auth
com.sun.security.auth.callback
com.sun.security.auth.login
com.sun.security.auth.module
com.sun.security.jgss
org.w3c.dom.css
org.w3c.dom.html
org.w3c.dom.stylesheets
org.w3c.dom.xpath

View File

@ -0,0 +1,209 @@
java.applet
java.awt
java.awt.color
java.awt.datatransfer
java.awt.dnd
java.awt.event
java.awt.font
java.awt.geom
java.awt.im
java.awt.im.spi
java.awt.image
java.awt.image.renderable
java.awt.print
java.beans
java.beans.beancontext
java.io
java.lang
java.lang.annotation
java.lang.instrument
java.lang.invoke
java.lang.management
java.lang.ref
java.lang.reflect
java.math
java.net
java.nio
java.nio.channels
java.nio.channels.spi
java.nio.charset
java.nio.charset.spi
java.nio.file
java.nio.file.attribute
java.nio.file.spi
java.rmi
java.rmi.activation
java.rmi.dgc
java.rmi.registry
java.rmi.server
java.security
java.security.acl
java.security.cert
java.security.interfaces
java.security.spec
java.sql
java.text
java.text.spi
java.util
java.util.concurrent
java.util.concurrent.atomic
java.util.concurrent.locks
java.util.jar
java.util.logging
java.util.prefs
java.util.regex
java.util.spi
java.util.zip
javax.accessibility
javax.activation
javax.activity
javax.annotation
javax.annotation.processing
javax.crypto
javax.crypto.interfaces
javax.crypto.spec
javax.imageio
javax.imageio.event
javax.imageio.metadata
javax.imageio.plugins.bmp
javax.imageio.plugins.jpeg
javax.imageio.spi
javax.imageio.stream
javax.jws
javax.jws.soap
javax.lang.model
javax.lang.model.element
javax.lang.model.type
javax.lang.model.util
javax.management
javax.management.loading
javax.management.modelmbean
javax.management.monitor
javax.management.openmbean
javax.management.relation
javax.management.remote
javax.management.remote.rmi
javax.management.timer
javax.naming
javax.naming.directory
javax.naming.event
javax.naming.ldap
javax.naming.spi
javax.net
javax.net.ssl
javax.print
javax.print.attribute
javax.print.attribute.standard
javax.print.event
javax.rmi
javax.rmi.CORBA
javax.rmi.ssl
javax.script
javax.security.auth
javax.security.auth.callback
javax.security.auth.kerberos
javax.security.auth.login
javax.security.auth.spi
javax.security.auth.x500
javax.security.cert
javax.security.sasl
javax.sound.midi
javax.sound.midi.spi
javax.sound.sampled
javax.sound.sampled.spi
javax.sql
javax.sql.rowset
javax.sql.rowset.serial
javax.sql.rowset.spi
javax.swing
javax.swing.border
javax.swing.colorchooser
javax.swing.event
javax.swing.filechooser
javax.swing.plaf
javax.swing.plaf.basic
javax.swing.plaf.metal
javax.swing.plaf.multi
javax.swing.plaf.nimbus
javax.swing.plaf.synth
javax.swing.table
javax.swing.text
javax.swing.text.html
javax.swing.text.html.parser
javax.swing.text.rtf
javax.swing.tree
javax.swing.undo
javax.tools
javax.transaction
javax.transaction.xa
javax.xml
javax.xml.bind
javax.xml.bind.annotation
javax.xml.bind.annotation.adapters
javax.xml.bind.attachment
javax.xml.bind.helpers
javax.xml.bind.util
javax.xml.crypto
javax.xml.crypto.dom
javax.xml.crypto.dsig
javax.xml.crypto.dsig.dom
javax.xml.crypto.dsig.keyinfo
javax.xml.crypto.dsig.spec
javax.xml.datatype
javax.xml.namespace
javax.xml.parsers
javax.xml.soap
javax.xml.stream
javax.xml.stream.events
javax.xml.stream.util
javax.xml.transform
javax.xml.transform.dom
javax.xml.transform.sax
javax.xml.transform.stax
javax.xml.transform.stream
javax.xml.validation
javax.xml.ws
javax.xml.ws.handler
javax.xml.ws.handler.soap
javax.xml.ws.http
javax.xml.ws.soap
javax.xml.ws.spi
javax.xml.ws.spi.http
javax.xml.ws.wsaddressing
javax.xml.xpath
org.ietf.jgss
org.omg.CORBA
org.omg.CORBA.DynAnyPackage
org.omg.CORBA.ORBPackage
org.omg.CORBA.TypeCodePackage
org.omg.CORBA.portable
org.omg.CORBA_2_3
org.omg.CORBA_2_3.portable
org.omg.CosNaming
org.omg.CosNaming.NamingContextExtPackage
org.omg.CosNaming.NamingContextPackage
org.omg.Dynamic
org.omg.DynamicAny
org.omg.DynamicAny.DynAnyFactoryPackage
org.omg.DynamicAny.DynAnyPackage
org.omg.IOP
org.omg.IOP.CodecFactoryPackage
org.omg.IOP.CodecPackage
org.omg.Messaging
org.omg.PortableInterceptor
org.omg.PortableInterceptor.ORBInitInfoPackage
org.omg.PortableServer
org.omg.PortableServer.CurrentPackage
org.omg.PortableServer.POAManagerPackage
org.omg.PortableServer.POAPackage
org.omg.PortableServer.ServantLocatorPackage
org.omg.PortableServer.portable
org.omg.SendingContext
org.omg.stub.java.rmi
org.w3c.dom
org.w3c.dom.bootstrap
org.w3c.dom.events
org.w3c.dom.ls
org.xml.sax
org.xml.sax.ext
org.xml.sax.helpers

View File

@ -0,0 +1,217 @@
java.applet
java.awt
java.awt.color
java.awt.datatransfer
java.awt.dnd
java.awt.event
java.awt.font
java.awt.geom
java.awt.im
java.awt.im.spi
java.awt.image
java.awt.image.renderable
java.awt.print
java.beans
java.beans.beancontext
java.io
java.lang
java.lang.annotation
java.lang.instrument
java.lang.invoke
java.lang.management
java.lang.ref
java.lang.reflect
java.math
java.net
java.nio
java.nio.channels
java.nio.channels.spi
java.nio.charset
java.nio.charset.spi
java.nio.file
java.nio.file.attribute
java.nio.file.spi
java.rmi
java.rmi.activation
java.rmi.dgc
java.rmi.registry
java.rmi.server
java.security
java.security.acl
java.security.cert
java.security.interfaces
java.security.spec
java.sql
java.text
java.text.spi
java.time
java.time.chrono
java.time.format
java.time.temporal
java.time.zone
java.util
java.util.concurrent
java.util.concurrent.atomic
java.util.concurrent.locks
java.util.function
java.util.jar
java.util.logging
java.util.prefs
java.util.regex
java.util.spi
java.util.stream
java.util.zip
javax.accessibility
javax.activation
javax.activity
javax.annotation
javax.annotation.processing
javax.crypto
javax.crypto.interfaces
javax.crypto.spec
javax.imageio
javax.imageio.event
javax.imageio.metadata
javax.imageio.plugins.bmp
javax.imageio.plugins.jpeg
javax.imageio.spi
javax.imageio.stream
javax.jws
javax.jws.soap
javax.lang.model
javax.lang.model.element
javax.lang.model.type
javax.lang.model.util
javax.management
javax.management.loading
javax.management.modelmbean
javax.management.monitor
javax.management.openmbean
javax.management.relation
javax.management.remote
javax.management.remote.rmi
javax.management.timer
javax.naming
javax.naming.directory
javax.naming.event
javax.naming.ldap
javax.naming.spi
javax.net
javax.net.ssl
javax.print
javax.print.attribute
javax.print.attribute.standard
javax.print.event
javax.rmi
javax.rmi.CORBA
javax.rmi.ssl
javax.script
javax.security.auth
javax.security.auth.callback
javax.security.auth.kerberos
javax.security.auth.login
javax.security.auth.spi
javax.security.auth.x500
javax.security.cert
javax.security.sasl
javax.sound.midi
javax.sound.midi.spi
javax.sound.sampled
javax.sound.sampled.spi
javax.sql
javax.sql.rowset
javax.sql.rowset.serial
javax.sql.rowset.spi
javax.swing
javax.swing.border
javax.swing.colorchooser
javax.swing.event
javax.swing.filechooser
javax.swing.plaf
javax.swing.plaf.basic
javax.swing.plaf.metal
javax.swing.plaf.multi
javax.swing.plaf.nimbus
javax.swing.plaf.synth
javax.swing.table
javax.swing.text
javax.swing.text.html
javax.swing.text.html.parser
javax.swing.text.rtf
javax.swing.tree
javax.swing.undo
javax.tools
javax.transaction
javax.transaction.xa
javax.xml
javax.xml.bind
javax.xml.bind.annotation
javax.xml.bind.annotation.adapters
javax.xml.bind.attachment
javax.xml.bind.helpers
javax.xml.bind.util
javax.xml.crypto
javax.xml.crypto.dom
javax.xml.crypto.dsig
javax.xml.crypto.dsig.dom
javax.xml.crypto.dsig.keyinfo
javax.xml.crypto.dsig.spec
javax.xml.datatype
javax.xml.namespace
javax.xml.parsers
javax.xml.soap
javax.xml.stream
javax.xml.stream.events
javax.xml.stream.util
javax.xml.transform
javax.xml.transform.dom
javax.xml.transform.sax
javax.xml.transform.stax
javax.xml.transform.stream
javax.xml.validation
javax.xml.ws
javax.xml.ws.handler
javax.xml.ws.handler.soap
javax.xml.ws.http
javax.xml.ws.soap
javax.xml.ws.spi
javax.xml.ws.spi.http
javax.xml.ws.wsaddressing
javax.xml.xpath
org.ietf.jgss
org.omg.CORBA
org.omg.CORBA.DynAnyPackage
org.omg.CORBA.ORBPackage
org.omg.CORBA.TypeCodePackage
org.omg.CORBA.portable
org.omg.CORBA_2_3
org.omg.CORBA_2_3.portable
org.omg.CosNaming
org.omg.CosNaming.NamingContextExtPackage
org.omg.CosNaming.NamingContextPackage
org.omg.Dynamic
org.omg.DynamicAny
org.omg.DynamicAny.DynAnyFactoryPackage
org.omg.DynamicAny.DynAnyPackage
org.omg.IOP
org.omg.IOP.CodecFactoryPackage
org.omg.IOP.CodecPackage
org.omg.Messaging
org.omg.PortableInterceptor
org.omg.PortableInterceptor.ORBInitInfoPackage
org.omg.PortableServer
org.omg.PortableServer.CurrentPackage
org.omg.PortableServer.POAManagerPackage
org.omg.PortableServer.POAPackage
org.omg.PortableServer.ServantLocatorPackage
org.omg.PortableServer.portable
org.omg.SendingContext
org.omg.stub.java.rmi
org.w3c.dom
org.w3c.dom.bootstrap
org.w3c.dom.events
org.w3c.dom.ls
org.w3c.dom.views
org.xml.sax
org.xml.sax.ext
org.xml.sax.helpers

View File

@ -0,0 +1,315 @@
com.sun.jarsigner
com.sun.java.accessibility.util
com.sun.javadoc
com.sun.jdi
com.sun.jdi.connect
com.sun.jdi.connect.spi
com.sun.jdi.event
com.sun.jdi.request
com.sun.management
com.sun.net.httpserver
com.sun.net.httpserver.spi
com.sun.nio.sctp
com.sun.security.auth
com.sun.security.auth.callback
com.sun.security.auth.login
com.sun.security.auth.module
com.sun.security.jgss
com.sun.source.doctree
com.sun.source.tree
com.sun.source.util
com.sun.tools.attach
com.sun.tools.attach.spi
com.sun.tools.doclets
com.sun.tools.doclets.standard
com.sun.tools.javac
com.sun.tools.javadoc
com.sun.tools.jconsole
java.applet
java.awt
java.awt.color
java.awt.datatransfer
java.awt.desktop
java.awt.dnd
java.awt.event
java.awt.font
java.awt.geom
java.awt.im
java.awt.im.spi
java.awt.image
java.awt.image.renderable
java.awt.print
java.beans
java.beans.beancontext
java.io
java.lang
java.lang.annotation
java.lang.instrument
java.lang.invoke
java.lang.management
java.lang.module
java.lang.ref
java.lang.reflect
java.math
java.net
java.net.spi
java.nio
java.nio.channels
java.nio.channels.spi
java.nio.charset
java.nio.charset.spi
java.nio.file
java.nio.file.attribute
java.nio.file.spi
java.rmi
java.rmi.activation
java.rmi.dgc
java.rmi.registry
java.rmi.server
java.security
java.security.acl
java.security.cert
java.security.interfaces
java.security.spec
java.sql
java.text
java.text.spi
java.time
java.time.chrono
java.time.format
java.time.temporal
java.time.zone
java.util
java.util.concurrent
java.util.concurrent.atomic
java.util.concurrent.locks
java.util.function
java.util.jar
java.util.logging
java.util.prefs
java.util.regex
java.util.spi
java.util.stream
java.util.zip
javafx.animation
javafx.application
javafx.beans
javafx.beans.binding
javafx.beans.property
javafx.beans.property.adapter
javafx.beans.value
javafx.collections
javafx.collections.transformation
javafx.concurrent
javafx.css
javafx.css.converter
javafx.embed.swing
javafx.event
javafx.fxml
javafx.geometry
javafx.print
javafx.scene
javafx.scene.canvas
javafx.scene.chart
javafx.scene.control
javafx.scene.control.cell
javafx.scene.control.skin
javafx.scene.effect
javafx.scene.image
javafx.scene.input
javafx.scene.layout
javafx.scene.media
javafx.scene.paint
javafx.scene.shape
javafx.scene.text
javafx.scene.transform
javafx.scene.web
javafx.stage
javafx.util
javafx.util.converter
javax.accessibility
javax.activation
javax.activity
javax.annotation
javax.annotation.processing
javax.crypto
javax.crypto.interfaces
javax.crypto.spec
javax.imageio
javax.imageio.event
javax.imageio.metadata
javax.imageio.plugins.bmp
javax.imageio.plugins.jpeg
javax.imageio.plugins.tiff
javax.imageio.spi
javax.imageio.stream
javax.jnlp
javax.jws
javax.jws.soap
javax.lang.model
javax.lang.model.element
javax.lang.model.type
javax.lang.model.util
javax.management
javax.management.loading
javax.management.modelmbean
javax.management.monitor
javax.management.openmbean
javax.management.relation
javax.management.remote
javax.management.remote.rmi
javax.management.timer
javax.naming
javax.naming.directory
javax.naming.event
javax.naming.ldap
javax.naming.spi
javax.net
javax.net.ssl
javax.print
javax.print.attribute
javax.print.attribute.standard
javax.print.event
javax.rmi
javax.rmi.CORBA
javax.rmi.ssl
javax.script
javax.security.auth
javax.security.auth.callback
javax.security.auth.kerberos
javax.security.auth.login
javax.security.auth.spi
javax.security.auth.x500
javax.security.cert
javax.security.sasl
javax.smartcardio
javax.sound.midi
javax.sound.midi.spi
javax.sound.sampled
javax.sound.sampled.spi
javax.sql
javax.sql.rowset
javax.sql.rowset.serial
javax.sql.rowset.spi
javax.swing
javax.swing.border
javax.swing.colorchooser
javax.swing.event
javax.swing.filechooser
javax.swing.plaf
javax.swing.plaf.basic
javax.swing.plaf.metal
javax.swing.plaf.multi
javax.swing.plaf.nimbus
javax.swing.plaf.synth
javax.swing.table
javax.swing.text
javax.swing.text.html
javax.swing.text.html.parser
javax.swing.text.rtf
javax.swing.tree
javax.swing.undo
javax.tools
javax.transaction
javax.transaction.xa
javax.xml
javax.xml.bind
javax.xml.bind.annotation
javax.xml.bind.annotation.adapters
javax.xml.bind.attachment
javax.xml.bind.helpers
javax.xml.bind.util
javax.xml.catalog
javax.xml.crypto
javax.xml.crypto.dom
javax.xml.crypto.dsig
javax.xml.crypto.dsig.dom
javax.xml.crypto.dsig.keyinfo
javax.xml.crypto.dsig.spec
javax.xml.datatype
javax.xml.namespace
javax.xml.parsers
javax.xml.soap
javax.xml.stream
javax.xml.stream.events
javax.xml.stream.util
javax.xml.transform
javax.xml.transform.dom
javax.xml.transform.sax
javax.xml.transform.stax
javax.xml.transform.stream
javax.xml.validation
javax.xml.ws
javax.xml.ws.handler
javax.xml.ws.handler.soap
javax.xml.ws.http
javax.xml.ws.soap
javax.xml.ws.spi
javax.xml.ws.spi.http
javax.xml.ws.wsaddressing
javax.xml.xpath
jdk.dynalink
jdk.dynalink.beans
jdk.dynalink.linker
jdk.dynalink.linker.support
jdk.dynalink.support
jdk.incubator.http
jdk.javadoc.doclet
jdk.jfr
jdk.jfr.consumer
jdk.jshell
jdk.jshell.execution
jdk.jshell.spi
jdk.jshell.tool
jdk.management.cmm
jdk.management.jfr
jdk.management.resource
jdk.nashorn.api.scripting
jdk.nashorn.api.tree
jdk.net
jdk.packager.services
jdk.security.jarsigner
netscape.javascript
org.ietf.jgss
org.omg.CORBA
org.omg.CORBA_2_3
org.omg.CORBA_2_3.portable
org.omg.CORBA.DynAnyPackage
org.omg.CORBA.ORBPackage
org.omg.CORBA.portable
org.omg.CORBA.TypeCodePackage
org.omg.CosNaming
org.omg.CosNaming.NamingContextExtPackage
org.omg.CosNaming.NamingContextPackage
org.omg.Dynamic
org.omg.DynamicAny
org.omg.DynamicAny.DynAnyFactoryPackage
org.omg.DynamicAny.DynAnyPackage
org.omg.IOP
org.omg.IOP.CodecFactoryPackage
org.omg.IOP.CodecPackage
org.omg.Messaging
org.omg.PortableInterceptor
org.omg.PortableInterceptor.ORBInitInfoPackage
org.omg.PortableServer
org.omg.PortableServer.CurrentPackage
org.omg.PortableServer.POAManagerPackage
org.omg.PortableServer.POAPackage
org.omg.PortableServer.portable
org.omg.PortableServer.ServantLocatorPackage
org.omg.SendingContext
org.omg.stub.java.rmi
org.w3c.dom
org.w3c.dom.bootstrap
org.w3c.dom.css
org.w3c.dom.events
org.w3c.dom.html
org.w3c.dom.ls
org.w3c.dom.ranges
org.w3c.dom.stylesheets
org.w3c.dom.traversal
org.w3c.dom.views
org.w3c.dom.xpath
org.xml.sax
org.xml.sax.ext
org.xml.sax.helpers

View File

@ -36,8 +36,10 @@ import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.TreeMap;
import javax.lang.model.SourceVersion;
import javax.lang.model.element.Element;
import javax.lang.model.element.ModuleElement;
import javax.lang.model.element.PackageElement;
@ -48,6 +50,7 @@ import javax.tools.DocumentationTool;
import com.sun.tools.javac.code.Flags;
import com.sun.tools.javac.code.Symbol.ModuleSymbol;
import jdk.javadoc.doclet.Reporter;
import jdk.javadoc.internal.doclets.toolkit.AbstractDoclet;
import jdk.javadoc.internal.doclets.toolkit.BaseConfiguration;
import jdk.javadoc.internal.doclets.toolkit.Resources;
@ -223,6 +226,134 @@ public class Extern {
return link(url, elemlisturl, reporter, true);
}
/**
* Check whether links to platform documentation are configured. If not then configure
* links using the the documentation URL defined in {@code linkPlatformProperties} or the
* default documentation URL if that parameter is {@code null}.
*
* @param linkPlatformProperties path or URL to properties file containing
* platform documentation URLs, or null
* @param reporter the {@code DocErrorReporter} used to report errors
*/
public void checkPlatformLinks(String linkPlatformProperties, Reporter reporter) {
PackageElement javaLang = utils.elementUtils.getPackageElement("java.lang");
if (utils.isIncluded(javaLang)) {
return;
}
DocLink link = getExternalLink(javaLang, DocPath.empty, DocPaths.PACKAGE_SUMMARY.getPath());
if (link != null) {
// Links to platform docs are already configure, nothing to do here.
return;
}
try {
int versionNumber = getSourceVersionNumber();
String docUrl;
if (linkPlatformProperties != null) {
docUrl = getCustomPlatformDocs(versionNumber, linkPlatformProperties);
} else {
docUrl = getDefaultPlatformDocs(versionNumber);
}
if (docUrl == null) {
return;
}
DocPath elementListPath = getPlatformElementList(versionNumber);
URL elementListUrl = AbstractDoclet.class.getResource(elementListPath.getPath());
if (elementListUrl == null) {
reporter.print(Kind.WARNING, resources.getText("doclet.Resource_error", elementListPath.getPath()));
} else {
try {
readListFromURL(docUrl, elementListUrl);
} catch (IOException exc) {
throw new Fault(resources.getText(
"doclet.Resource_error", elementListPath.getPath()), exc);
}
}
} catch (Fault f) {
reporter.print(Kind.ERROR, f.getMessage());
}
}
/**
* Return the resource path for the package or element list for the given {@code version}.
* @param version the platform version number
* @return the resource path
*/
private DocPath getPlatformElementList(int version) {
String filename = version <= 9
? "package-list-" + version + ".txt"
: "element-list-" + version + ".txt";
return DocPaths.RESOURCES.resolve("releases").resolve(filename);
}
/**
* Return the default URL for the platform API documentation for the given {@code version}.
* @param version the platform version number
* @return the URL as String
*/
private String getDefaultPlatformDocs(int version) {
Resources resources = configuration.getDocResources();
return version <= 10
? resources.getText("doclet.platform.docs.old", version)
: isPrerelease(version)
? resources.getText("doclet.platform.docs.ea", version)
: resources.getText("doclet.platform.docs.new", version);
}
/**
* Retrieve and return the custom URL for the platform API documentation for the given
* {@code version} from the properties file at {@code linkPlatformProperties}.
* @param version the platform version number
* @param linkPlatformProperties path pointing to a properties file
* @return the custom URL as String
*/
private String getCustomPlatformDocs(int version, String linkPlatformProperties) throws Fault {
String url;
try {
Properties props = new Properties();
InputStream inputStream;
if (isUrl(linkPlatformProperties)) {
inputStream = toURL(linkPlatformProperties).openStream();
} else {
inputStream = DocFile.createFileForInput(configuration, linkPlatformProperties).openInputStream();
}
try (inputStream) {
props.load(inputStream);
}
url = props.getProperty("doclet.platform.docs." + version);
} catch (MalformedURLException exc) {
throw new Fault(resources.getText("doclet.MalformedURL", linkPlatformProperties), exc);
} catch (IOException exc) {
throw new Fault(resources.getText("doclet.URL_error", linkPlatformProperties), exc);
} catch (DocFileIOException exc) {
throw new Fault(resources.getText("doclet.File_error", linkPlatformProperties), exc);
}
return url;
}
/**
* Return the source version number used in the current execution of javadoc.
* @return the source version number
*/
private int getSourceVersionNumber() {
SourceVersion sourceVersion = configuration.docEnv.getSourceVersion();
// TODO it would be nice if this was provided by SourceVersion
String versionNumber = sourceVersion.name().substring(8);
assert SourceVersion.valueOf("RELEASE_" + versionNumber) == sourceVersion;
return Integer.parseInt(versionNumber);
}
/**
* Return true if the given {@code sourceVersion} is the same as the current doclet version
* and is a pre-release version.
* @param sourceVersion the source version number
* @return true if it is a pre-release version
*/
private boolean isPrerelease(int sourceVersion) {
Runtime.Version docletVersion = configuration.getDocletVersion();
return docletVersion.feature() == sourceVersion && docletVersion.pre().isPresent();
}
/*
* Build the extern element list from given URL or the directory path.
* Flag error if the "-link" or "-linkoffline" option is already used.
@ -295,13 +426,11 @@ public class Extern {
private void readElementListFromURL(String urlpath, URL elemlisturlpath) throws Fault {
try {
URL link = elemlisturlpath.toURI().resolve(DocPaths.ELEMENT_LIST.getPath()).toURL();
try (InputStream in = open(link)) {
readElementList(in, urlpath, false);
}
readListFromURL(urlpath, link);
} catch (URISyntaxException | MalformedURLException exc) {
throw new Fault(resources.getText("doclet.MalformedURL", elemlisturlpath.toString()), exc);
} catch (IOException exc) {
readAlternateURL(urlpath, elemlisturlpath);
readPackageListFromURL(urlpath, elemlisturlpath);
}
}
@ -311,12 +440,10 @@ public class Extern {
* @param urlpath Path to the packages.
* @param elemlisturlpath URL or the path to the "package-list" file.
*/
private void readAlternateURL(String urlpath, URL elemlisturlpath) throws Fault {
private void readPackageListFromURL(String urlpath, URL elemlisturlpath) throws Fault {
try {
URL link = elemlisturlpath.toURI().resolve(DocPaths.PACKAGE_LIST.getPath()).toURL();
try (InputStream in = open(link)) {
readElementList(in, urlpath, false);
}
readListFromURL(urlpath, link);
} catch (URISyntaxException | MalformedURLException exc) {
throw new Fault(resources.getText("doclet.MalformedURL", elemlisturlpath.toString()), exc);
} catch (IOException exc) {
@ -324,6 +451,18 @@ public class Extern {
}
}
/**
* Read an element or package list from file.
*
* @param urlpath URL or path to the packages
* @param elementlistpath URL to read "element-list" file from
*/
private void readListFromURL(String urlpath, URL elementlistpath) throws IOException {
try (InputStream in = open(elementlistpath)) {
readElementList(in, urlpath, false);
}
}
/**
* Read the "element-list" file which is available locally.
*

View File

@ -46,6 +46,7 @@ public class TestAnnotationTypes extends JavadocTester {
public void test() {
javadoc("-d", "out-1",
"-sourcepath", testSrc,
"--no-platform-links",
"pkg");
checkExit(Exit.OK);
@ -108,6 +109,7 @@ public class TestAnnotationTypes extends JavadocTester {
public void testLinkSource() {
javadoc("-d", "out-2",
"-linksource",
"--no-platform-links",
"-sourcepath", testSrc,
"pkg");
checkExit(Exit.OK);

View File

@ -50,6 +50,7 @@ public class TestClassCrossReferences extends JavadocTester {
"-Xdoclint:none",
"-sourcepath", testSrc,
"-linkoffline", uri, testSrc,
"--no-platform-links",
testSrc("C.java"));
checkExit(Exit.OK);
@ -82,6 +83,7 @@ public class TestClassCrossReferences extends JavadocTester {
"-Xdoclint:none",
"-sourcepath", testSrc,
"-linkoffline", uri, testSrc,
"--no-platform-links",
testSrc("C.java"));
checkExit(Exit.OK);

View File

@ -46,6 +46,7 @@ public class TestClassLinks extends JavadocTester {
javadoc("-d", "out",
"-Xdoclint:none",
"--no-platform-links",
"-sourcepath", testSrc,
"-package",
"p");

View File

@ -46,6 +46,7 @@ public class TestClassTree extends JavadocTester {
@Test
public void test() {
javadoc("-d", "out",
"--no-platform-links",
"-sourcepath", testSrc,
"pkg");
checkExit(Exit.OK);

View File

@ -44,6 +44,7 @@ public class TestDeprecatedDocs extends JavadocTester {
@Test
public void test() {
javadoc("-d", "out",
"--no-platform-links",
"-sourcepath", testSrc,
"pkg");
checkExit(Exit.OK);

View File

@ -44,6 +44,7 @@ public class TestGrandParentTypes extends JavadocTester {
@Test
public void test1() {
javadoc("-d", "out-1",
"--no-platform-links",
"-package",
"-sourcepath", testSrc,
"pkg1");

View File

@ -45,6 +45,7 @@ public class TestHeadings extends JavadocTester {
public void test() {
javadoc("-d", "out",
"-sourcepath", testSrc,
"--no-platform-links",
"-use",
"-header", "Test Files",
"pkg1", "pkg2");

View File

@ -49,6 +49,7 @@ public class TestHtmlDefinitionListTag extends JavadocTester {
public void test_Comment_Deprecated() {
javadoc("-Xdoclint:none",
"-d", "out-1",
"--no-platform-links",
"-sourcepath", testSrc,
"pkg1");
checkExit(Exit.OK);
@ -61,6 +62,7 @@ public class TestHtmlDefinitionListTag extends JavadocTester {
javadoc("-Xdoclint:none",
"-d", "out-2",
"-nocomment",
"--no-platform-links",
"-sourcepath", testSrc,
"pkg1");
checkExit(Exit.OK);
@ -73,6 +75,7 @@ public class TestHtmlDefinitionListTag extends JavadocTester {
javadoc("-Xdoclint:none",
"-d", "out-3",
"-nodeprecated",
"--no-platform-links",
"-sourcepath", testSrc,
"pkg1");
checkExit(Exit.OK);
@ -87,6 +90,7 @@ public class TestHtmlDefinitionListTag extends JavadocTester {
"-d", "out-4",
"-nocomment",
"-nodeprecated",
"--no-platform-links",
"-sourcepath", testSrc,
"pkg1");
checkExit(Exit.OK);

View File

@ -101,6 +101,7 @@ public class TestHtmlTag extends JavadocTester {
@Test
public void test_other() {
javadoc("-locale", "en_US",
"--no-platform-links",
"-d", "out-other",
"-sourcepath", testSrc,
"pkg3");

View File

@ -43,6 +43,7 @@ public class TestIndentation extends JavadocTester {
@Test
public void test() {
javadoc("-d", "out",
"--no-platform-links",
"-sourcepath", testSrc,
"p");
checkExit(Exit.OK);

View File

@ -61,6 +61,7 @@ public class TestInterface extends JavadocTester {
@Test
public void test() {
javadoc("-d", "out",
"--no-platform-links",
"-sourcepath", testSrc,
"pkg");
checkExit(Exit.OK);

View File

@ -234,6 +234,7 @@ public class TestJavaFX extends JavadocTester {
"-sourcepath", testSrc,
"-javafx",
"--disable-javafx-strict-checks",
"--no-platform-links",
"-package",
"pkg2");
checkExit(Exit.OK);
@ -297,6 +298,7 @@ public class TestJavaFX extends JavadocTester {
public void test3() {
javadoc("-d", "out2b",
"-sourcepath", testSrc,
"--no-platform-links",
"-package",
"pkg2");
checkExit(Exit.OK);

View File

@ -24,6 +24,7 @@
/*
* @test
* @bug 4720957 5020118 8026567 8038976 8184969 8164407 8182765 8205593
* 8216497
* @summary Test to make sure that -link and -linkoffline link to
* right files, and URLs with and without trailing slash are accepted.
* @library ../../lib
@ -149,6 +150,7 @@ public class TestLinkOption extends JavadocTester {
"-sourcepath", testSrc,
"-link", "../" + "out1",
"-link", "../" + "out2",
"--no-platform-links",
"pkg3");
checkExit(Exit.OK);
checkOutput("pkg3/A.html", true,
@ -172,6 +174,7 @@ public class TestLinkOption extends JavadocTester {
"-sourcepath", testSrc,
"-linkoffline", "../copy/out1", "out1",
"-linkoffline", "../copy/out2", "out2",
"--no-platform-links",
"pkg3");
checkExit(Exit.OK);
checkOutput("pkg3/A.html", true,

View File

@ -0,0 +1,195 @@
/*
* Copyright (c) 2020, 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 8216497
* @summary javadoc should auto-link to platform classes
* @library /tools/lib ../../lib
* @modules
* jdk.javadoc/jdk.javadoc.internal.tool
* jdk.compiler/com.sun.tools.javac.api
* jdk.compiler/com.sun.tools.javac.main
* @build javadoc.tester.*
* @run main TestLinkPlatform
*/
import javadoc.tester.JavadocTester;
import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Formatter;
import builder.ClassBuilder;
import builder.ClassBuilder.*;
import toolbox.ModuleBuilder;
import toolbox.ToolBox;
import javax.lang.model.SourceVersion;
public class TestLinkPlatform extends JavadocTester {
final static String OLD_PLATFORM_URL = "https://docs.oracle.com/javase/%d/docs/api/java/lang/Object.html";
final static String NEW_PLATFORM_URL = "https://docs.oracle.com/en/java/javase/%d/docs/api/java.base/java/lang/Object.html";
final static String PRE_PLATFORM_URL = "https://download.java.net/java/early_access/jdk%d/docs/api/java.base/java/lang/Object.html";
final static String NON_MODULAR_CUSTOM_PLATFORM_URL = "https://some.domain/docs/%d/api/java/lang/Object.html";
final static String MODULAR_CUSTOM_PLATFORM_URL = "https://some.domain/docs/%d/api/java.base/java/lang/Object.html";
final static int EARLIEST_VERSION = 7;
final static int LATEST_VERSION = Integer.parseInt(SourceVersion.latest().name().substring(8));
/**
* The entry point of the test.
*
* @param args the array of command line arguments.
*/
public static void main(String... args) throws Exception {
TestLinkPlatform tester = new TestLinkPlatform();
tester.runTests(m -> new Object[]{Paths.get(m.getName())});
}
final ToolBox tb;
private final Path packageSrc;
TestLinkPlatform() throws Exception {
tb = new ToolBox();
packageSrc = Paths.get("src", "packages");
initCode();
}
@Test
public void testPlatformLinkWithReleaseOption(Path base) throws Exception {
testPlatformLinkWithSupportedVersions(base, "--release");
}
@Test
public void testPlatformLinkWithSourceOption(Path base) throws Exception {
testPlatformLinkWithSupportedVersions(base, "--source");
}
private void testPlatformLinkWithSupportedVersions(Path base, String versionOption) throws Exception {
for (int version = EARLIEST_VERSION; version <= LATEST_VERSION; version++) {
Path out = base.resolve("out_" + version);
javadoc("-d", out.toString(),
"-sourcepath", packageSrc.toString(),
versionOption, Integer.toString(version),
"p.q");
checkExit(Exit.OK);
// Make sure there is no message about missing element-list resource
checkOutput(Output.OUT, false, "element-list");
String url = getPlatformUrlString(version);
checkOutput("p/q/A.html", true,
"<a href=\"" + url + "\"",
"<a href=\"" + url + "#clone()\" title=\"class or interface in java.lang\" class=\"external-link\">",
"<a href=\"" + url + "#equals(java.lang.Object)\" title=\"class or interface in java.lang\" class=\"external-link\">",
"<a href=\"" + url + "#finalize()\" title=\"class or interface in java.lang\" class=\"external-link\">");
}
}
@Test
public void testPlatformLinkWithCustomPropertyURL(Path base) throws Exception {
for (int version = EARLIEST_VERSION; version <= LATEST_VERSION; version++) {
Path out = base.resolve("out_" + version);
javadoc("-d", out.toString(),
"-sourcepath", packageSrc.toString(),
"--release", Integer.toString(version),
"--link-platform-properties", "file:" + testSrc("linkplatform.properties"),
"p.q");
checkExit(Exit.OK);
String url = getCustomPlatformUrlString(version);
checkOutput("p/q/A.html", true,
"<a href=\"" + url + "\"",
"<a href=\"" + url + "#clone()\" title=\"class or interface in java.lang\" class=\"external-link\">",
"<a href=\"" + url + "#equals(java.lang.Object)\" title=\"class or interface in java.lang\" class=\"external-link\">",
"<a href=\"" + url + "#finalize()\" title=\"class or interface in java.lang\" class=\"external-link\">");
}
}
@Test
public void testPlatformLinkWithCustomPropertyFile(Path base) throws Exception {
for (int version = EARLIEST_VERSION; version <= LATEST_VERSION; version++) {
Path out = base.resolve("out_" + version);
javadoc("-d", out.toString(),
"-sourcepath", packageSrc.toString(),
"--release", Integer.toString(version),
"--link-platform-properties", testSrc("linkplatform.properties"),
"p.q");
checkExit(Exit.OK);
String url = getCustomPlatformUrlString(version);
checkOutput("p/q/A.html", true,
"<a href=\"" + url + "\"",
"<a href=\"" + url + "#clone()\" title=\"class or interface in java.lang\" class=\"external-link\">",
"<a href=\"" + url + "#equals(java.lang.Object)\" title=\"class or interface in java.lang\" class=\"external-link\">",
"<a href=\"" + url + "#finalize()\" title=\"class or interface in java.lang\" class=\"external-link\">");
}
}
@Test
public void testPlatformLinkWithInvalidPropertyFile(Path base) throws Exception {
for (int version = EARLIEST_VERSION; version <= LATEST_VERSION; version++) {
Path out = base.resolve("out_" + version);
javadoc("-d", out.toString(),
"-sourcepath", packageSrc.toString(),
"--release", Integer.toString(version),
"--link-platform-properties", testSrc("invalid-properties-file"),
"p.q");
checkExit(Exit.ERROR);
checkOutput(Output.OUT, true, "Error reading file");
checkOutput("p/q/A.html", false);
}
}
void initCode() throws Exception {
new ClassBuilder(tb, "p.q.A")
.setModifiers("public","class")
.write(packageSrc);
}
String getPlatformUrlString(int version) {
String urlString;
Runtime.Version runtimeVersion = Runtime.version();
if (version == runtimeVersion.feature() && runtimeVersion.pre().isPresent()) {
urlString = PRE_PLATFORM_URL;
} else {
urlString = version <= 10 ? OLD_PLATFORM_URL : NEW_PLATFORM_URL;
}
return urlString.formatted(version);
}
String getCustomPlatformUrlString(int version) {
return version <= 10
? NON_MODULAR_CUSTOM_PLATFORM_URL.formatted(version)
: MODULAR_CUSTOM_PLATFORM_URL.formatted(version);
}
}

View File

@ -0,0 +1,10 @@
doclet.platform.docs.7= https://some.domain/docs/7/api/
doclet.platform.docs.8= https://some.domain/docs/8/api/
doclet.platform.docs.9= https://some.domain/docs/9/api/
doclet.platform.docs.10=https://some.domain/docs/10/api/
doclet.platform.docs.11=https://some.domain/docs/11/api/
doclet.platform.docs.12=https://some.domain/docs/12/api/
doclet.platform.docs.13=https://some.domain/docs/13/api/
doclet.platform.docs.14=https://some.domain/docs/14/api/
doclet.platform.docs.15=https://some.domain/docs/15/api/
doclet.platform.docs.16=https://some.domain/docs/16/api/

View File

@ -46,6 +46,7 @@ public class TestMemberInheritance extends JavadocTester {
public void test() {
javadoc("-d", "out",
"-sourcepath", testSrc,
"--no-platform-links",
"pkg", "diamond", "inheritDist", "pkg1", "pkg2", "pkg3");
checkExit(Exit.OK);
@ -218,6 +219,7 @@ public class TestMemberInheritance extends JavadocTester {
javadoc("-d", "out-split",
"-splitindex",
"-sourcepath", testSrc,
"--no-platform-links",
"pkg", "diamond", "inheritDist", "pkg1", "pkg2", "pkg3");
checkExit(Exit.OK);

View File

@ -44,6 +44,7 @@ public class TestMethodSignature extends JavadocTester {
public void test() {
javadoc("-d", "out",
"-sourcepath", testSrc,
"--no-platform-links",
"pkg");
checkExit(Exit.OK);

View File

@ -74,6 +74,7 @@ public class TestModules extends JavadocTester {
"-nocomment",
"-use",
"-Xdoclint:none",
"--no-platform-links",
"-overview", testSrc("overview.html"),
"--module-source-path", testSrc,
"--module", "moduleA,moduleB",
@ -170,6 +171,7 @@ public class TestModules extends JavadocTester {
public void testModuleDeprecation() {
javadoc("-d", "out-moduledepr",
"-Xdoclint:none",
"--no-platform-links",
"-tag", "regular:a:Regular Tag:",
"-tag", "moduletag:s:Module Tag:",
"--module-source-path", testSrc,
@ -430,6 +432,7 @@ public class TestModules extends JavadocTester {
javadoc("-d", "out-linksource",
"-use",
"-linksource",
"--no-platform-links",
"-Xdoclint:none",
"--module-source-path", testSrc,
"--module", "moduleA,moduleB");
@ -447,6 +450,7 @@ public class TestModules extends JavadocTester {
"-use",
"-private",
"-linksource",
"--no-platform-links",
"-Xdoclint:none",
"--module-source-path", testSrc,
"--module", "moduleA,moduleB");

View File

@ -48,6 +48,7 @@ public class TestNewLanguageFeatures extends JavadocTester {
javadoc("-Xdoclint:none",
"-d", "out",
"-use",
"--no-platform-links",
"-sourcepath", testSrc,
"pkg", "pkg1", "pkg2");
checkExit(Exit.OK);

View File

@ -185,6 +185,7 @@ public class TestOptions extends JavadocTester {
public void testLinkSource() {
javadoc("-d", "out-9",
"-linksource",
"--no-platform-links",
"-javafx",
"--disable-javafx-strict-checks",
"-sourcepath", testSrc,

View File

@ -120,6 +120,7 @@ public class TestOrdering extends JavadocTester {
public void run() {
javadoc("-d", "out-1",
"-sourcepath", testSrc,
"--no-platform-links",
"-use",
"pkg1");
checkExit(Exit.OK);

View File

@ -44,6 +44,7 @@ public class TestOverriddenDeprecatedMethods extends JavadocTester {
public void test() {
javadoc("-d", "out-deprecated",
"-sourcepath", testSrc,
"--no-platform-links",
"--override-methods","summary",
"pkg1");

View File

@ -69,6 +69,7 @@ public class TestOverrideMethods extends JavadocTester {
public void testSummary() {
javadoc("-d", "out-summary",
"-sourcepath", testSrc,
"--no-platform-links",
"-javafx",
"--disable-javafx-strict-checks",
"--override-methods=summary",

View File

@ -44,6 +44,7 @@ public class TestPackageAnnotation extends JavadocTester {
public void testPackageInfoAnnotationNoComment() {
javadoc("-d", "out-annotation",
"-sourcepath", testSrc,
"--no-platform-links",
"-use",
"pkg1");
checkExit(Exit.OK);
@ -78,6 +79,7 @@ public class TestPackageAnnotation extends JavadocTester {
public void testPackageInfoAndHtml() {
javadoc("-d", "out-annotation-3",
"-sourcepath", testSrc,
"--no-platform-links",
"-use",
"pkg3");
checkExit(Exit.OK);

View File

@ -54,6 +54,7 @@ public class TestPrivateClasses extends JavadocTester {
public void testDefault() {
javadoc("-d", "out-default",
"-sourcepath", testSrc,
"--no-platform-links",
"pkg", "pkg2");
checkExit(Exit.OK);
@ -149,6 +150,7 @@ public class TestPrivateClasses extends JavadocTester {
public void testPrivate() {
javadoc("-d", "out-private",
"-sourcepath", testSrc,
"--no-platform-links",
"-private",
"pkg", "pkg2");
checkExit(Exit.OK);

View File

@ -43,6 +43,7 @@ public class TestProperty extends JavadocTester {
@Test
public void testArrays() {
javadoc("-d", "out",
"--no-platform-links",
"-javafx",
"--disable-javafx-strict-checks",
"-sourcepath", testSrc,

View File

@ -347,6 +347,7 @@ public class TestRecordTypes extends JavadocTester {
javadoc("-d", base.resolve("out").toString(),
"-quiet", "-noindex",
"--no-platform-links",
"-sourcepath", src.toString(),
"--enable-preview", "--source", thisRelease,
"p");
@ -464,6 +465,7 @@ public class TestRecordTypes extends JavadocTester {
javadoc("-d", dir.resolve("out").toString(),
"-quiet", "-noindex",
"--no-platform-links",
"-sourcepath", src.toString(),
"-private",
"--enable-preview", "--source", thisRelease,

View File

@ -167,6 +167,7 @@ public class TestSealedTypes extends JavadocTester {
javadoc("-d", base.resolve("out").toString(),
"--source-path", src.toString(),
"--no-platform-links",
"--enable-preview", "--source", thisRelease,
"p");
checkExit(Exit.OK);
@ -188,6 +189,7 @@ public class TestSealedTypes extends JavadocTester {
javadoc("-d", base.resolve("out").toString(),
"--source-path", src.toString(),
"--no-platform-links",
"--enable-preview", "--source", thisRelease,
"p");
checkExit(Exit.OK);
@ -211,6 +213,7 @@ public class TestSealedTypes extends JavadocTester {
javadoc("-d", base.resolve("out").toString(),
"--source-path", src.toString(),
"--no-platform-links",
"--enable-preview", "--source", thisRelease,
"p");
checkExit(Exit.OK);
@ -260,6 +263,7 @@ public class TestSealedTypes extends JavadocTester {
javadoc("-d", base.resolve("out").toString(),
"--source-path", src.toString(),
"--no-platform-links",
"--enable-preview", "--source", thisRelease,
"p");
checkExit(Exit.OK);
@ -283,6 +287,7 @@ public class TestSealedTypes extends JavadocTester {
javadoc("-d", base.resolve("out").toString(),
"--source-path", src.toString(),
"--no-platform-links",
"-package",
"--enable-preview", "--source", thisRelease,
"p");
@ -308,6 +313,7 @@ public class TestSealedTypes extends JavadocTester {
javadoc("-d", base.resolve("out").toString(),
"--source-path", src.toString(),
"--no-platform-links",
"--enable-preview", "--source", thisRelease,
"p");
checkExit(Exit.OK);

View File

@ -72,6 +72,7 @@ public class TestSeeTag extends JavadocTester {
public void testBadReference() {
javadoc("-d", "out-badref",
"-sourcepath", testSrc,
"--no-platform-links",
"badref");
checkExit(Exit.ERROR);

View File

@ -115,6 +115,7 @@ public class TestSerializedForm extends JavadocTester {
javadoc("-private",
"-d", "out-private",
"-sourcepath", testSrc,
"--no-platform-links",
testSrc("SerializedForm.java"), testSrc("ExternalizedForm.java"), "pkg1");
checkExit(Exit.OK);
@ -166,6 +167,7 @@ public class TestSerializedForm extends JavadocTester {
javadoc("-private",
"-d", "out-2",
"-sourcepath", testSrc,
"--no-platform-links",
"pkg2");
checkExit(Exit.OK);

View File

@ -44,6 +44,7 @@ public class TestSerializedFormDeprecationInfo extends JavadocTester {
public void testDefault() {
javadoc("-d", "out-default",
"-sourcepath", testSrc,
"--no-platform-links",
"pkg1");
checkExit(Exit.OK);
@ -68,6 +69,7 @@ public class TestSerializedFormDeprecationInfo extends JavadocTester {
javadoc("-d", "out-nodepr",
"-nodeprecated",
"-sourcepath", testSrc,
"--no-platform-links",
"pkg1");
checkExit(Exit.OK);

View File

@ -66,6 +66,7 @@ public class TestSerializedFormWithClassFile extends JavadocTester {
Path outDir = base.resolve("out");
javadoc("-d", outDir.toString(),
"-linksource",
"--no-platform-links",
"-classpath", base.resolve("classes").toString(),
"-sourcepath", "",
srcDir.resolve("B.java").toString());

View File

@ -68,6 +68,7 @@
""");
javadoc("-d", base.resolve("out").toString(),
"--no-platform-links",
src.resolve("C.java").toString());
checkExit(Exit.OK);

View File

@ -44,6 +44,7 @@ public class TestTypeAnnotations extends JavadocTester {
@Test
public void test() {
javadoc("-d", "out",
"--no-platform-links",
"-sourcepath", testSrc,
"-private",
"typeannos");

View File

@ -48,6 +48,7 @@ public class TestTypeParameters extends JavadocTester {
public void test1() {
javadoc("-d", "out-1",
"-use",
"--no-platform-links",
"-sourcepath", testSrc,
"pkg");
checkExit(Exit.OK);
@ -80,6 +81,7 @@ public class TestTypeParameters extends JavadocTester {
public void test2() {
javadoc("-d", "out-2",
"-linksource",
"--no-platform-links",
"-sourcepath", testSrc,
"pkg");
checkExit(Exit.OK);

View File

@ -43,6 +43,7 @@ public class TestTypeVariableLinks extends JavadocTester {
@Test
public void test1() {
javadoc("-d", "out",
"--no-platform-links",
"-sourcepath", testSrc,
"-package",
"pkg1");

View File

@ -266,6 +266,7 @@ public class TestVisibleMembers extends JavadocTester {
javadoc("-d", outDir.toString(),
"-html5",
"--override-methods=detail",
"--no-platform-links",
"-sourcepath", srcDir.toString(),
"p");
checkExit(Exit.OK);
@ -301,6 +302,7 @@ public class TestVisibleMembers extends JavadocTester {
javadoc("-d", outDir.toString(),
"-html5",
"--override-methods=summary",
"--no-platform-links",
"-sourcepath", srcDir.toString(),
"p");
checkExit(Exit.OK);