mirror of
https://github.com/openjdk/jdk.git
synced 2026-02-05 16:09:09 +00:00
8154119: Module summary page should display module description
Reviewed-by: jjg
This commit is contained in:
parent
7e90d3bb14
commit
1ac868ea61
@ -167,6 +167,21 @@ public class ModuleWriterImpl extends HtmlDocletWriter implements ModuleSummaryW
|
||||
summaryContentTree.addContent(table);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public void addModuleDescription(Content moduleContentTree) {
|
||||
if (!utils.getBody(mdle).isEmpty()) {
|
||||
Content tree = configuration.allowTag(HtmlTag.SECTION) ? HtmlTree.SECTION() : moduleContentTree;
|
||||
tree.addContent(HtmlConstants.START_OF_MODULE_DESCRIPTION);
|
||||
tree.addContent(getMarkerAnchor(SectionName.MODULE_DESCRIPTION));
|
||||
addInlineComment(mdle, tree);
|
||||
if (configuration.allowTag(HtmlTag.SECTION)) {
|
||||
moduleContentTree.addContent(tree);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds list of packages in the package summary table. Generate link to each package.
|
||||
*
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -53,6 +53,7 @@ public enum SectionName {
|
||||
METHOD_DETAIL("method.detail"),
|
||||
METHODS_INHERITANCE("methods.inherited.from.class."),
|
||||
METHOD_SUMMARY("method.summary"),
|
||||
MODULE_DESCRIPTION("module.description"),
|
||||
NAVBAR_BOTTOM("navbar.bottom"),
|
||||
NAVBAR_BOTTOM_FIRSTROW("navbar.bottom.firstrow"),
|
||||
NAVBAR_TOP("navbar.top"),
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -63,6 +63,12 @@ public class HtmlConstants {
|
||||
public static final Content END_OF_BOTTOM_NAVBAR =
|
||||
new Comment("======== END OF BOTTOM NAVBAR =======");
|
||||
|
||||
/**
|
||||
* Marker to identify start of module description.
|
||||
*/
|
||||
public static final Content START_OF_MODULE_DESCRIPTION =
|
||||
new Comment("============ MODULE DESCRIPTION ===========");
|
||||
|
||||
/**
|
||||
* Marker to identify start of class data.
|
||||
*/
|
||||
|
||||
@ -73,6 +73,14 @@ public interface ModuleSummaryWriter {
|
||||
*/
|
||||
public abstract Content getSummaryTree(Content summaryContentTree);
|
||||
|
||||
/**
|
||||
* Adds the module description.
|
||||
*
|
||||
* @param moduleContentTree the content tree to which the module description
|
||||
* will be added
|
||||
*/
|
||||
public abstract void addModuleDescription(Content moduleContentTree);
|
||||
|
||||
/**
|
||||
* Adds the table of packages to the documentation tree.
|
||||
*
|
||||
|
||||
@ -185,4 +185,17 @@ public class ModuleSummaryBuilder extends AbstractBuilder {
|
||||
packageTableSummary, summaryContentTree);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the description for the module.
|
||||
*
|
||||
* @param node the XML element that specifies which components to document
|
||||
* @param moduleContentTree the tree to which the module description will
|
||||
* be added
|
||||
*/
|
||||
public void buildModuleDescription(XMLNode node, Content moduleContentTree) {
|
||||
if (!configuration.nocomment) {
|
||||
moduleWriter.addModuleDescription(moduleContentTree);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -30,6 +30,7 @@
|
||||
|
||||
<ModuleDoc>
|
||||
<Content>
|
||||
<ModuleDescription/>
|
||||
<Summary>
|
||||
<PackageSummary/>
|
||||
</Summary>
|
||||
|
||||
145
langtools/test/jdk/javadoc/doclet/testModules/TestModules.java
Normal file
145
langtools/test/jdk/javadoc/doclet/testModules/TestModules.java
Normal file
@ -0,0 +1,145 @@
|
||||
/*
|
||||
* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 8154119
|
||||
* @summary Test modules support in javadoc.
|
||||
* @author bpatel
|
||||
* @library ../lib
|
||||
* @modules jdk.javadoc/jdk.javadoc.internal.tool
|
||||
* @build JavadocTester
|
||||
* @run main TestModules
|
||||
*/
|
||||
|
||||
public class TestModules extends JavadocTester {
|
||||
|
||||
public static void main(String... args) throws Exception {
|
||||
TestModules tester = new TestModules();
|
||||
tester.runTests();
|
||||
}
|
||||
|
||||
@Test
|
||||
void test1() {
|
||||
javadoc("-d", "out",
|
||||
"-modulesourcepath", testSrc,
|
||||
"-addmods", "module1,module2",
|
||||
"testpkgmdl1", "testpkgmdl2");
|
||||
checkExit(Exit.OK);
|
||||
testDescription(true);
|
||||
testNoDescription(false);
|
||||
}
|
||||
|
||||
@Test
|
||||
void test2() {
|
||||
javadoc("-d", "out-html5", "-html5",
|
||||
"-modulesourcepath", testSrc,
|
||||
"-addmods", "module1,module2",
|
||||
"testpkgmdl1", "testpkgmdl2");
|
||||
checkExit(Exit.OK);
|
||||
testHtml5Description(true);
|
||||
testHtml5NoDescription(false);
|
||||
}
|
||||
|
||||
@Test
|
||||
void test3() {
|
||||
javadoc("-d", "out-nocomment", "-nocomment",
|
||||
"-modulesourcepath", testSrc,
|
||||
"-addmods", "module1,module2",
|
||||
"testpkgmdl1", "testpkgmdl2");
|
||||
checkExit(Exit.OK);
|
||||
testDescription(false);
|
||||
testNoDescription(true);
|
||||
}
|
||||
|
||||
@Test
|
||||
void test4() {
|
||||
javadoc("-d", "out-html5-nocomment", "-nocomment", "-html5",
|
||||
"-modulesourcepath", testSrc,
|
||||
"-addmods", "module1,module2",
|
||||
"testpkgmdl1", "testpkgmdl2");
|
||||
checkExit(Exit.OK);
|
||||
testHtml5Description(false);
|
||||
testHtml5NoDescription(true);
|
||||
}
|
||||
|
||||
void testDescription(boolean found) {
|
||||
checkOutput("module1-summary.html", found,
|
||||
"<!-- ============ MODULE DESCRIPTION =========== -->\n"
|
||||
+ "<a name=\"module.description\">\n"
|
||||
+ "<!-- -->\n"
|
||||
+ "</a>\n"
|
||||
+ "<div class=\"block\">This is a test description for the module1 module.</div>");
|
||||
checkOutput("module2-summary.html", found,
|
||||
"<!-- ============ MODULE DESCRIPTION =========== -->\n"
|
||||
+ "<a name=\"module.description\">\n"
|
||||
+ "<!-- -->\n"
|
||||
+ "</a>\n"
|
||||
+ "<div class=\"block\">This is a test description for the module2 module.</div>");
|
||||
}
|
||||
|
||||
void testNoDescription(boolean found) {
|
||||
checkOutput("module1-summary.html", found,
|
||||
"<div class=\"contentContainer\">\n"
|
||||
+ "<ul class=\"blockList\">\n"
|
||||
+ "<li class=\"blockList\">\n"
|
||||
+ "<table class=\"overviewSummary\" summary=\"Package Summary table, listing packages, and an explanation\">");
|
||||
checkOutput("module2-summary.html", found,
|
||||
"<div class=\"contentContainer\">\n"
|
||||
+ "<ul class=\"blockList\">\n"
|
||||
+ "<li class=\"blockList\">\n"
|
||||
+ "<table class=\"overviewSummary\" summary=\"Package Summary table, listing packages, and an explanation\">");
|
||||
}
|
||||
|
||||
void testHtml5Description(boolean found) {
|
||||
checkOutput("module1-summary.html", found,
|
||||
"<section role=\"region\">\n"
|
||||
+ "<!-- ============ MODULE DESCRIPTION =========== -->\n"
|
||||
+ "<a id=\"module.description\">\n"
|
||||
+ "<!-- -->\n"
|
||||
+ "</a>\n"
|
||||
+ "<div class=\"block\">This is a test description for the module1 module.</div>\n"
|
||||
+ "</section>");
|
||||
checkOutput("module2-summary.html", found,
|
||||
"<section role=\"region\">\n"
|
||||
+ "<!-- ============ MODULE DESCRIPTION =========== -->\n"
|
||||
+ "<a id=\"module.description\">\n"
|
||||
+ "<!-- -->\n"
|
||||
+ "</a>\n"
|
||||
+ "<div class=\"block\">This is a test description for the module2 module.</div>\n"
|
||||
+ "</section>");
|
||||
}
|
||||
|
||||
void testHtml5NoDescription(boolean found) {
|
||||
checkOutput("module1-summary.html", found,
|
||||
"<div class=\"contentContainer\">\n"
|
||||
+ "<ul class=\"blockList\">\n"
|
||||
+ "<li class=\"blockList\">\n"
|
||||
+ "<table class=\"overviewSummary\">");
|
||||
checkOutput("module2-summary.html", found,
|
||||
"<div class=\"contentContainer\">\n"
|
||||
+ "<ul class=\"blockList\">\n"
|
||||
+ "<li class=\"blockList\">\n"
|
||||
+ "<table class=\"overviewSummary\">");
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* This is a test description for the module1 module.
|
||||
*/
|
||||
module module1 {
|
||||
requires module2;
|
||||
|
||||
exports testpkgmdl1;
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. 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 testpkgmdl1;
|
||||
|
||||
public class TestClassInModule1 {
|
||||
}
|
||||
@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* This is a test description for the module2 module.
|
||||
*/
|
||||
module module2 {
|
||||
exports testpkgmdl2;
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. 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 testpkgmdl2;
|
||||
|
||||
public class TestClassInModule2 {
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user