OpenJDK / amber / amber
changeset 46081:7c6d73d10b6b
8185194: Missing anchor for package description in package-summary.html pages
Reviewed-by: bpatel, jjg, ksrini
line wrap: on
line diff
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/javadoc/Doclet.java Wed Aug 02 09:26:35 2017 -0700 +++ b/langtools/src/jdk.javadoc/share/classes/com/sun/javadoc/Doclet.java Wed Aug 02 12:34:23 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2017, 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 @@ -30,7 +30,7 @@ * showing the entry-point methods. A starting class must * import com.sun.javadoc.* and implement the * {@code start(RootDoc)} method, as described in the - * <a href="package-summary.html#package_description">package + * <a href="package-summary.html#package.description">package * description</a>. If the doclet takes command line options, * it must also implement {@code optionLength} and * {@code validOptions}.
--- a/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/doclet/Doclet.java Wed Aug 02 09:26:35 2017 -0700 +++ b/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/doclet/Doclet.java Wed Aug 02 12:34:23 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, 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 @@ -33,7 +33,7 @@ /** * The user doclet must implement this interface, as described in the - * <a href="package-summary.html#package_description">package description</a>. + * <a href="package-summary.html#package.description">package description</a>. * Each implementation of a Doclet must provide a public no-argument constructor * to be used by tools to instantiate the doclet. The tool infrastructure will * interact with classes implementing this interface as follows:
--- a/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageWriterImpl.java Wed Aug 02 09:26:35 2017 -0700 +++ b/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageWriterImpl.java Wed Aug 02 12:34:23 2017 -0700 @@ -247,6 +247,7 @@ public void addPackageDescription(Content packageContentTree) { if (!utils.getBody(packageElement).isEmpty()) { Content tree = configuration.allowTag(HtmlTag.SECTION) ? sectionTree : packageContentTree; + tree.addContent(getMarkerAnchor(SectionName.PACKAGE_DESCRIPTION)); addDeprecationInfo(tree); addInlineComment(packageElement, tree); }
--- a/langtools/test/jdk/javadoc/doclet/testHtmlTag/TestHtmlTag.java Wed Aug 02 09:26:35 2017 -0700 +++ b/langtools/test/jdk/javadoc/doclet/testHtmlTag/TestHtmlTag.java Wed Aug 02 12:34:23 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2017, 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 @@ -106,7 +106,9 @@ checkExit(Exit.OK); checkOutput("pkg3/package-summary.html", true, - "<div class=\"contentContainer\">\n" + "<div class=\"contentContainer\"><a name=\"package.description\">\n" + + "<!-- -->\n" + + "</a>\n" + "<div class=\"block\"><p>This is the first line." + " Note the newlines before the <p> is relevant.</div>");
--- a/langtools/test/jdk/javadoc/doclet/testHtmlVersion/TestHtmlVersion.java Wed Aug 02 09:26:35 2017 -0700 +++ b/langtools/test/jdk/javadoc/doclet/testHtmlVersion/TestHtmlVersion.java Wed Aug 02 12:34:23 2017 -0700 @@ -161,7 +161,9 @@ + "<!-- ========= START OF TOP NAVBAR ======= -->", "<main role=\"main\">\n" + "<div class=\"header\">", - "<section role=\"region\">\n" + "<section role=\"region\"><a id=\"package.description\">\n" + + "<!-- -->\n" + + "</a>\n" + "<div class=\"block\">Test package.</div>", "<footer role=\"contentinfo\">\n" + "<nav role=\"navigation\">\n" @@ -1107,7 +1109,9 @@ "<a name=\"navbar.top.firstrow\">\n" + "<!-- -->\n" + "</a>", - "<div class=\"contentContainer\">\n" + "<div class=\"contentContainer\"><a name=\"package.description\">\n" + + "<!-- -->\n" + + "</a>\n" + "<div class=\"block\">Test package.</div>", "<table class=\"typeSummary\" summary=\"Interface Summary table, listing interfaces, and an explanation\">", "<table class=\"typeSummary\" summary=\"Class Summary table, listing classes, and an explanation\">",
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/test/jdk/javadoc/doclet/testPackageDescription/TestPackageDescription.java Wed Aug 02 12:34:23 2017 -0700 @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2017, 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 8185194 + * @summary Test anchor for package description in package summary page + * @library ../lib/ + * @modules jdk.javadoc/jdk.javadoc.internal.tool + * @build JavadocTester TestPackageDescription + * @run main TestPackageDescription + */ + +public class TestPackageDescription extends JavadocTester { + + public static void main(String... args) throws Exception { + TestPackageDescription tester = new TestPackageDescription(); + tester.runTests(); + } + + @Test + void test1() { + javadoc("-d", "out", + "-sourcepath", testSrc, + "pkg", + "-html5"); + checkExit(Exit.OK); + + checkOutput("pkg/package-summary.html", true, + "<a id=\"package.description\">\n" + + "<!-- -->\n" + + "</a>\n" + + "<div class=\"block\">package description</div>\n"); + } + + @Test + void test2() { + javadoc("-d", "out-2", + "-sourcepath", testSrc, + "pkg"); + checkExit(Exit.OK); + + checkOutput("pkg/package-summary.html", true, + "<a name=\"package.description\">\n" + + "<!-- -->\n" + + "</a>\n" + + "<div class=\"block\">package description</div>\n"); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/test/jdk/javadoc/doclet/testPackageDescription/pkg/A.java Wed Aug 02 12:34:23 2017 -0700 @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package pkg; + +public class A { + + public A() { + } + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/test/jdk/javadoc/doclet/testPackageDescription/pkg/package-info.java Wed Aug 02 12:34:23 2017 -0700 @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2017, 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 description + * + */ +package pkg;