Hello,
With package filtering of doclint checking now available
(JDK-8071851: Provide filtering of doclint checking based on
packages), the time has come to enable a subset of doclint checking
in the main build for java.* and javax.* packages.
First, there is the simple subtask of doing this for the relevant
files hosted in the langtools repository (JDK-8075035: Turn on
doclint checking of modules in the langtools repo):
diff -r 072008f47620 make/build.properties
--- a/make/build.properties Wed Mar 11 22:24:05 2015 +0100
+++ b/make/build.properties Wed Mar 11 19:32:58 2015 -0700
@@ -28,7 +28,7 @@
javac.debuglevel = source,lines,vars
javac.extra.opts=-XDignore.symbol.file=true
javac.includes=
-javac.lint.opts = -Xlint:all,-deprecation -Werror
+javac.lint.opts = -Xlint:all,-deprecation -Xdoclint:all/protected
'-Xdoclint/package:java.*,javax.*' -Werror
javac.source = 8
javac.target = 8
Next are the more extensive changes for modules in the jdk repo:
JDK-8072734 : Turn on doclint checking in the build of modules in
the jdk repo
http://cr.openjdk.java.net/~darcy/8072734.0/
Full patch below. A few notes on the checks excluded from doclint
checking. In the desktop module, there are still hundreds of method
with missing javadoc (JDK-8071630) and the "missing" check cannot be
enabled until that javadoc is added.
The javadoc of the base module contains a few @see or @link
references to members outside of the base module. Those outside
members are not currently visible to javac when the base module is
being compiled. That may change at some point later in JDK 9. If and
when it does, the "reference" check can be enabled.
In the desktop module some generated files are referencing other
types in javadoc that aren't visible at that point. A later build
change may be able to address this.
There are five categories of doclint checks so my strong preference
is to get a subset of checks enabled in the build and then work on
enabling the remaining ones later on.
With the application of a javadoc fix in the jdk repo I have out for
review (JDK-8075034), a local build with the langtools and jdk-repo
module checks has succeeded. To apply all due caution, upon
successful review, I will have a jprt job submitted to push this
change to verify there are no unexpected platform dependencies that
would cause a build failure.
To be clear, with this set of changes, it will be a true build error
if certain categories of doclint problems is introduced to a java.*
or javax.* type. This would be a large step toward completing the
remaining goals of JEP 212: Resolve Lint and Doclint Warnings.
Thanks,
Thanks,
-Joe
--- old/make/CompileJavaModules.gmk 2015-03-11 19:39:09.884348698
-0700
+++ new/make/CompileJavaModules.gmk 2015-03-11 19:39:09.796304698
-0700
@@ -42,6 +42,7 @@
################################################################################
+java.base_ADD_JAVAC_FLAGS := -Xdoclint:all/protected,-reference
'-Xdoclint/package:java.*,javax.*'
java.base_COPY := .icu .dat .spp content-types.properties
hijrah-config-islamic-umalqura.properties
java.base_CLEAN := intrinsic.properties
@@ -89,10 +90,12 @@
################################################################################
+java.datatransfer_ADD_JAVAC_FLAGS :=
-Xdoclint:all/protected,-reference '-Xdoclint/package:java.*,javax.*'
java.datatransfer_COPY := flavormap.properties
################################################################################
+java.desktop_ADD_JAVAC_FLAGS :=
-Xdoclint:all/protected,-missing,-reference
'-Xdoclint/package:java.*,javax.*'
java.desktop_COPY := .gif .png .wav .txt .xml .css .pf
java.desktop_CLEAN := iio-plugin.properties cursors.properties
@@ -239,15 +242,18 @@
################################################################################
+java.scripting_ADD_JAVAC_FLAGS := -Xdoclint:all/protected
'-Xdoclint/package:java.*,javax.*'
java.scripting_COPY := .js
java.scripting_CLEAN := .properties
################################################################################
+java.sql_ADD_JAVAC_FLAGS := -Xdoclint:all/protected
'-Xdoclint/package:java.*,javax.*'
java.sql_SETUP := GENERATE_JDKBYTECODE_NOWARNINGS
################################################################################
+java.sql.rowset_ADD_JAVAC_FLAGS := -Xdoclint:all/protected
'-Xdoclint/package:java.*,javax.*'
java.sql.rowset_CLEAN_FILES := $(wildcard \
$(JDK_TOPDIR)/src/java.sql.rowset/share/classes/com/sun/rowset/*.properties
\
$(JDK_TOPDIR)/src/java.sql.rowset/share/classes/javax/sql/rowset/*.properties)
@@ -261,6 +267,7 @@
################################################################################
+java.rmi_ADD_JAVAC_FLAGS := -Xdoclint:all/protected
'-Xdoclint/package:java.*,javax.*'
java.rmi_CLEAN_FILES := $(wildcard \
$(JDK_TOPDIR)/src/java.rmi/share/classes/sun/rmi/registry/resources/*.properties
\
$(JDK_TOPDIR)/src/java.rmi/share/classes/sun/rmi/server/resources/*.properties)
@@ -309,14 +316,17 @@
################################################################################
+java.naming_ADD_JAVAC_FLAGS := -Xdoclint:all/protected
'-Xdoclint/package:java.*,javax.*'
java.naming_CLEAN := jndiprovider.properties
################################################################################
+java.security.saaj_ADD_JAVAC_FLAGS := -Xdoclint:all/protected
'-Xdoclint/package:java.*,javax.*'
java.security.saaj_CLEAN := .properties
################################################################################
+java.xml.crypto_ADD_JAVAC_FLAGS := -Xdoclint:all/protected
'-Xdoclint/package:java.*,javax.*'
java.xml.crypto_COPY := .dtd .xml
java.xml.crypto_CLEAN := .properties
@@ -485,7 +495,7 @@
$1_CLASSPATH := $$($1_CLASSPATH) $$(addprefix
$(JDK_OUTPUTDIR)/modules/,jdk.hotspot.agent)
endif
$1_CLASSPATH := $$(subst $$(SPACE),$$(PATH_SEP),$$($1_CLASSPATH))
- $1_JAVAC_FLAGS := -bootclasspath "$$($1_CLASSPATH)"
+ $1_JAVAC_FLAGS := -bootclasspath "$$($1_CLASSPATH)"
$$($1_ADD_JAVAC_FLAGS)
$$(eval $$(call SetupJavaCompilation,$1, \
SETUP := $$(if $$($1_SETUP), $$($1_SETUP),
GENERATE_JDKBYTECODE), \