Skip to content

Commit c30a90b

Browse files
8261976: Normalize id's used by the standard doclet
Reviewed-by: hannesw
1 parent 53b1545 commit c30a90b

File tree

33 files changed

+306
-306
lines changed

33 files changed

+306
-306
lines changed

src/jdk.javadoc/share/classes/jdk/javadoc/doclet/Doclet.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -33,7 +33,7 @@
3333

3434
/**
3535
* The user doclet must implement this interface, as described in the
36-
* <a href="package-summary.html#package.description">package description</a>.
36+
* <a href="package-summary.html#package-description">package description</a>.
3737
* Each implementation of a Doclet must provide a public no-argument constructor
3838
* to be used by tools to instantiate the doclet. The tool infrastructure will
3939
* interact with classes implementing this interface as follows:

src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -719,7 +719,7 @@ public void addSrcLink(Element element, Content label, Content htmltree) {
719719
.resolve(DocPaths.SOURCE_OUTPUT)
720720
.resolve(docPaths.forClass(te));
721721
Content content = links.createLink(href
722-
.fragment(SourceToHTMLConverter.getAnchorName(utils, element)), label, "");
722+
.fragment(SourceToHTMLConverter.getAnchorName(utils, element).name()), label, "");
723723
htmltree.add(content);
724724
} else {
725725
htmltree.add(label);

src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlIds.java

Lines changed: 36 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
import javax.lang.model.util.SimpleTypeVisitor9;
4040

4141
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlId;
42-
import jdk.javadoc.internal.doclets.toolkit.util.DeprecatedAPIListBuilder;
4342
import jdk.javadoc.internal.doclets.toolkit.util.SummaryAPIListBuilder;
4443
import jdk.javadoc.internal.doclets.toolkit.util.Utils;
4544

@@ -68,38 +67,38 @@ public class HtmlIds {
6867
static final HtmlId ALL_CLASSES_TABLE = HtmlId.of("all-classes-table");
6968
static final HtmlId ALL_MODULES_TABLE = HtmlId.of("all-modules-table");
7069
static final HtmlId ALL_PACKAGES_TABLE = HtmlId.of("all-packages-table");
71-
static final HtmlId ANNOTATION_TYPE_ELEMENT_DETAIL = HtmlId.of("annotation.interface.element.detail");
72-
static final HtmlId ANNOTATION_TYPE_OPTIONAL_ELEMENT_SUMMARY = HtmlId.of("annotation.interface.optional.element.summary");
73-
static final HtmlId ANNOTATION_TYPE_REQUIRED_ELEMENT_SUMMARY = HtmlId.of("annotation.interface.required.element.summary");
74-
static final HtmlId CONSTRUCTOR_DETAIL = HtmlId.of("constructor.detail");
75-
static final HtmlId CONSTRUCTOR_SUMMARY = HtmlId.of("constructor.summary");
76-
static final HtmlId ENUM_CONSTANT_DETAIL = HtmlId.of("enum.constant.detail");
77-
static final HtmlId ENUM_CONSTANT_SUMMARY = HtmlId.of("enum.constant.summary");
78-
static final HtmlId FIELD_DETAIL = HtmlId.of("field.detail");
79-
static final HtmlId FIELD_SUMMARY = HtmlId.of("field.summary");
80-
static final HtmlId FOR_REMOVAL = HtmlId.of("forRemoval");
81-
static final HtmlId METHOD_DETAIL = HtmlId.of("method.detail");
82-
static final HtmlId METHOD_SUMMARY = HtmlId.of("method.summary");
70+
static final HtmlId ANNOTATION_TYPE_ELEMENT_DETAIL = HtmlId.of("annotation-interface-element-detail");
71+
static final HtmlId ANNOTATION_TYPE_OPTIONAL_ELEMENT_SUMMARY = HtmlId.of("annotation-interface-optional-element-summary");
72+
static final HtmlId ANNOTATION_TYPE_REQUIRED_ELEMENT_SUMMARY = HtmlId.of("annotation-interface-required-element-summary");
73+
static final HtmlId CONSTRUCTOR_DETAIL = HtmlId.of("constructor-detail");
74+
static final HtmlId CONSTRUCTOR_SUMMARY = HtmlId.of("constructor-summary");
75+
static final HtmlId ENUM_CONSTANT_DETAIL = HtmlId.of("enum-constant-detail");
76+
static final HtmlId ENUM_CONSTANT_SUMMARY = HtmlId.of("enum-constant-summary");
77+
static final HtmlId FIELD_DETAIL = HtmlId.of("field-detail");
78+
static final HtmlId FIELD_SUMMARY = HtmlId.of("field-summary");
79+
static final HtmlId FOR_REMOVAL = HtmlId.of("for-removal");
80+
static final HtmlId METHOD_DETAIL = HtmlId.of("method-detail");
81+
static final HtmlId METHOD_SUMMARY = HtmlId.of("method-summary");
8382
static final HtmlId METHOD_SUMMARY_TABLE = HtmlId.of("method-summary-table");
84-
static final HtmlId MODULES = HtmlId.of("modules.summary");
85-
static final HtmlId MODULE_DESCRIPTION = HtmlId.of("module.description");
86-
static final HtmlId NAVBAR_TOP = HtmlId.of("navbar.top");
87-
static final HtmlId NAVBAR_TOP_FIRSTROW = HtmlId.of("navbar.top.firstrow");
88-
static final HtmlId NESTED_CLASS_SUMMARY = HtmlId.of("nested.class.summary");
89-
static final HtmlId PACKAGES = HtmlId.of("packages.summary");
90-
static final HtmlId PACKAGE_DESCRIPTION = HtmlId.of("package.description");
83+
static final HtmlId MODULES = HtmlId.of("modules-summary");
84+
static final HtmlId MODULE_DESCRIPTION = HtmlId.of("module-description");
85+
static final HtmlId NAVBAR_TOP = HtmlId.of("navbar-top");
86+
static final HtmlId NAVBAR_TOP_FIRSTROW = HtmlId.of("navbar-top-firstrow");
87+
static final HtmlId NESTED_CLASS_SUMMARY = HtmlId.of("nested-class-summary");
88+
static final HtmlId PACKAGES = HtmlId.of("packages-summary");
89+
static final HtmlId PACKAGE_DESCRIPTION = HtmlId.of("package-description");
9190
static final HtmlId PACKAGE_SUMMARY_TABLE = HtmlId.of("package-summary-table");
92-
static final HtmlId PROPERTY_DETAIL = HtmlId.of("property.detail");
93-
static final HtmlId PROPERTY_SUMMARY = HtmlId.of("property.summary");
94-
static final HtmlId SERVICES = HtmlId.of("services.summary");
95-
static final HtmlId SKIP_NAVBAR_TOP = HtmlId.of("skip.navbar.top");
96-
static final HtmlId UNNAMED_PACKAGE_ANCHOR = HtmlId.of("unnamed.package");
97-
98-
private static final String ENUM_CONSTANTS_INHERITANCE = "enum.constants.inherited.from.class.";
99-
private static final String FIELDS_INHERITANCE = "fields.inherited.from.class.";
100-
private static final String METHODS_INHERITANCE = "methods.inherited.from.class.";
101-
private static final String NESTED_CLASSES_INHERITANCE = "nested.classes.inherited.from.class.";
102-
private static final String PROPERTIES_INHERITANCE = "properties.inherited.from.class.";
91+
static final HtmlId PROPERTY_DETAIL = HtmlId.of("property-detail");
92+
static final HtmlId PROPERTY_SUMMARY = HtmlId.of("property-summary");
93+
static final HtmlId SERVICES = HtmlId.of("services-summary");
94+
static final HtmlId SKIP_NAVBAR_TOP = HtmlId.of("skip-navbar-top");
95+
static final HtmlId UNNAMED_PACKAGE_ANCHOR = HtmlId.of("unnamed-package");
96+
97+
private static final String ENUM_CONSTANTS_INHERITANCE = "enum-constants-inherited-from-class-";
98+
private static final String FIELDS_INHERITANCE = "fields-inherited-from-class-";
99+
private static final String METHODS_INHERITANCE = "methods-inherited-from-class-";
100+
private static final String NESTED_CLASSES_INHERITANCE = "nested-classes-inherited-from-class-";
101+
private static final String PROPERTIES_INHERITANCE = "properties-inherited-from-class-";
103102

104103
/**
105104
* Creates a factory for element-specific ids.
@@ -356,7 +355,7 @@ static HtmlId forIndexChar(char character) {
356355
* @return the id
357356
*/
358357
static HtmlId forLine(int lineNumber) {
359-
return HtmlId.of("line." + lineNumber);
358+
return HtmlId.of("line-" + lineNumber);
360359
}
361360

362361
/**
@@ -405,16 +404,16 @@ static HtmlId forSummaryKind(SummaryAPIListBuilder.SummaryElementKind kind) {
405404
case PACKAGE -> "package";
406405
case INTERFACE -> "interface";
407406
case CLASS -> "class";
408-
case ENUM -> "enum.class";
407+
case ENUM -> "enum-class";
409408
case EXCEPTION -> "exception";
410409
case ERROR -> "error";
411-
case ANNOTATION_TYPE -> "annotation.interface";
410+
case ANNOTATION_TYPE -> "annotation-interface";
412411
case FIELD -> "field";
413412
case METHOD -> "method";
414413
case CONSTRUCTOR -> "constructor";
415-
case ENUM_CONSTANT -> "enum.constant";
416-
case ANNOTATION_TYPE_MEMBER -> "annotation.interface.member";
417-
case RECORD_CLASS -> "record.class";
414+
case ENUM_CONSTANT -> "enum-constant";
415+
case ANNOTATION_TYPE_MEMBER -> "annotation-interface-member";
416+
case RECORD_CLASS -> "record-class";
418417
});
419418
}
420419

src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SourceToHTMLConverter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2001, 2020, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2001, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -338,7 +338,7 @@ private static void addBlankLines(Content pre) {
338338
* @param e the element to check.
339339
* @return the name of the anchor.
340340
*/
341-
public static String getAnchorName(Utils utils, Element e) {
342-
return "line." + utils.getLineNumber(e);
341+
public static HtmlId getAnchorName(Utils utils, Element e) {
342+
return HtmlIds.forLine((int) utils.getLineNumber(e));
343343
}
344344
}

test/langtools/jdk/javadoc/doclet/AccessSkipNav/AccessSkipNav.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2002, 2020, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2002, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
2323

2424
/*
2525
* @test
26-
* @bug 4638136 7198273 8025633 8081854 8182765 8258659
26+
* @bug 4638136 7198273 8025633 8081854 8182765 8258659 8261976
2727
* @summary Add ability to skip over nav bar for accessibility
2828
* @library ../../lib
2929
* @modules jdk.javadoc/jdk.javadoc.internal.tool
@@ -51,9 +51,9 @@ public void test() {
5151
checkOutput("p1/C1.html", true,
5252
// Top navbar <a href>
5353
"""
54-
<a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a>""",
54+
<a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a>""",
5555
// Top navbar <span id>
5656
"""
57-
<span class="skip-nav" id="skip.navbar.top"></span>""");
57+
<span class="skip-nav" id="skip-navbar-top"></span>""");
5858
}
5959
}

test/langtools/jdk/javadoc/doclet/DocRootSlash/DocRootSlash.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2002, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
2323

2424
/*
2525
* @test
26-
* @bug 4524350 4662945 4633447 8196202
26+
* @bug 4524350 4662945 4633447 8196202 8261976
2727
* @summary stddoclet: {@docRoot} inserts an extra trailing "/"
2828
* @library ../../lib
2929
* @modules jdk.javadoc/jdk.javadoc.internal.tool

test/langtools/jdk/javadoc/doclet/DocRootSlash/overview.html

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,13 @@
3030
Sub-test 19 Expect: <A HREF="./../out/p2/C2.html">./../out/p2/C2.html</A>
3131
<p>
3232

33-
Sub-test 20 Actual: <A HREF="{@docRoot}/p2/package-summary.html#package.description">{&#064;docRoot}/p2/package-summary.html#package.description</A> <br>
34-
Sub-test 20 Expect: <A HREF="./p2/package-summary.html#package.description">./p2/package-summary.html#package.description</A>
33+
Sub-test 20 Actual: <A
34+
HREF="{@docRoot}/p2/package-summary.html#package-description">{&#064;docRoot}/p2/package-summary.html#package-description</A> <br>
35+
Sub-test 20 Expect: <A HREF="./p2/package-summary.html#package-description">./p2/package-summary.html#package-description</A>
3536
<p>
3637

37-
Sub-test 21 Actual: <A HREF="{@docRoot}/../out/p2/package-summary.html#package.description">{&#064;docRoot}/../out/p2/package-summary.html#package.description</A> <br>
38-
Sub-test 21 Expect: <A HREF="./../out/p2/package-summary.html#package.description">./../out/p2/package-summary.html#package.description</A>
38+
Sub-test 21 Actual: <A HREF="{@docRoot}/../out/p2/package-summary.html#package-description">{&#064;docRoot}/../out/p2/package-summary.html#package-description</A> <br>
39+
Sub-test 21 Expect: <A HREF="./../out/p2/package-summary.html#package-description">./../out/p2/package-summary.html#package-description</A>
3940

4041
</BODY>
4142
</HTML>

test/langtools/jdk/javadoc/doclet/DocRootSlash/p1/C1.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2002, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -51,12 +51,12 @@
5151
* Sub-test 5 Expect: <A HREF="../../out/p2/C2.html">../../out/p2/C2.html</A>
5252
* <p>
5353
*
54-
* Sub-test 6 Actual: <A HREF="{@docRoot}/p2/package-summary.html#package.description">{&#064;docRoot}/p2/package-summary.html#package.description</A> <br>
55-
* Sub-test 6 Expect: <A HREF="../p2/package-summary.html#package.description">../p2/package-summary.html#package.description</A>
54+
* Sub-test 6 Actual: <A HREF="{@docRoot}/p2/package-summary.html#package-description">{&#064;docRoot}/p2/package-summary.html#package-description</A> <br>
55+
* Sub-test 6 Expect: <A HREF="../p2/package-summary.html#package-description">../p2/package-summary.html#package-description</A>
5656
* <p>
5757
*
58-
* Sub-test 7 Actual: <A HREF="{@docRoot}/../out/p2/package-summary.html#package.description">{&#064;docRoot}/../out/p2/package-summary.html#package.description</A> <br>
59-
* Sub-test 7 Expect: <A HREF="../../out/p2/package-summary.html#package.description">../../out/p2/package-summary.html#package.description</A>
58+
* Sub-test 7 Actual: <A HREF="{@docRoot}/../out/p2/package-summary.html#package-description">{&#064;docRoot}/../out/p2/package-summary.html#package-description</A> <br>
59+
* Sub-test 7 Expect: <A HREF="../../out/p2/package-summary.html#package-description">../../out/p2/package-summary.html#package-description</A>
6060
*
6161
*/
6262
public class C1 {

test/langtools/jdk/javadoc/doclet/DocRootSlash/p1/package.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,12 @@
3131
Sub-test 12 Expect: <A HREF="../../out/p2/C2.html">../../out/p2/C2.html</A>
3232
<p>
3333

34-
Sub-test 13 Actual: <A HREF="{@docRoot}/p2/package-summary.html#package.description">{&#064;docRoot}/p2/package-summary.html#package.description</A> <br>
35-
Sub-test 13 Expect: <A HREF="../p2/package-summary.html#package.description">../p2/package-summary.html#package.description</A>
34+
Sub-test 13 Actual: <A HREF="{@docRoot}/p2/package-summary.html#package-description">{&#064;docRoot}/p2/package-summary.html#package-description</A> <br>
35+
Sub-test 13 Expect: <A HREF="../p2/package-summary.html#package-description">../p2/package-summary.html#package-description</A>
3636
<p>
3737

38-
Sub-test 14 Actual: <A HREF="{@docRoot}/../out/p2/package-summary.html#package.description">{&#064;docRoot}/../out/p2/package-summary.html#package.description</A> <br>
39-
Sub-test 14 Expect: <A HREF="../../out/p2/package-summary.html#package.description">../../out/p2/package-summary.html#package.description</A>
38+
Sub-test 14 Actual: <A HREF="{@docRoot}/../out/p2/package-summary.html#package-description">{&#064;docRoot}/../out/p2/package-summary.html#package-description</A> <br>
39+
Sub-test 14 Expect: <A HREF="../../out/p2/package-summary.html#package-description">../../out/p2/package-summary.html#package-description</A>
4040

4141
</BODY>
4242
</HTML>

test/langtools/jdk/javadoc/doclet/testAnchorNames/TestAnchorNames.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2013, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
2323

2424
/*
2525
* @test
26-
* @bug 8025633 8025524 8081854 8187521 8182765
26+
* @bug 8025633 8025524 8081854 8187521 8182765 8261976
2727
* @summary Test for valid name attribute in HTML anchors.
2828
* @library /tools/lib ../../lib
2929
* @modules jdk.javadoc/jdk.javadoc.internal.tool
@@ -62,25 +62,25 @@ public void testHtml5(Path ignore) {
6262
// Test some section markers and links to these markers
6363
checkOutput("pkg1/RegClass.html", true,
6464
"""
65-
<span class="skip-nav" id="skip.navbar.top">""",
65+
<span class="skip-nav" id="skip-navbar-top">""",
6666
"""
67-
<a href="#skip.navbar.top" title="Skip navigation links">""",
67+
<a href="#skip-navbar-top" title="Skip navigation links">""",
6868
"""
69-
<section class="nested-class-summary" id="nested.class.summary">
69+
<section class="nested-class-summary" id="nested-class-summary">
7070
<h2>Nested Class Summary</h2>""",
71-
"<a href=\"#nested.class.summary\">",
71+
"<a href=\"#nested-class-summary\">",
7272
"""
73-
<section class="method-summary" id="method.summary">
73+
<section class="method-summary" id="method-summary">
7474
<h2>Method Summary</h2>""",
75-
"<a href=\"#method.summary\">",
75+
"<a href=\"#method-summary\">",
7676
"""
77-
<section class="field-details" id="field.detail">
77+
<section class="field-details" id="field-detail">
7878
<h2>Field Details</h2>""",
79-
"<a href=\"#field.detail\">",
79+
"<a href=\"#field-detail\">",
8080
"""
81-
<section class="constructor-details" id="constructor.detail">
81+
<section class="constructor-details" id="constructor-detail">
8282
<h2>Constructor Details</h2>""",
83-
"<a href=\"#constructor.detail\">");
83+
"<a href=\"#constructor-detail\">");
8484

8585
// Test some members and link to these members
8686
checkOutput("pkg1/RegClass.html", true,

test/langtools/jdk/javadoc/doclet/testAnnotationOptional/TestAnnotationOptional.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2009, 2019, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2009, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
2323

2424
/*
2525
* @test
26-
* @bug 8025633 8081854 8182765
26+
* @bug 8025633 8081854 8182765 8261976
2727
* @summary Make sure that annotations types with optional elements have
2828
* element headers
2929
* @library ../../lib
@@ -50,6 +50,6 @@ public void test() {
5050

5151
checkOutput("pkg/AnnotationOptional.html", true,
5252
"""
53-
<section class="details" id="annotation.interface.element.detail">""");
53+
<section class="details" id="annotation-interface-element-detail">""");
5454
}
5555
}

0 commit comments

Comments
 (0)