This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 7.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/7.0.x by this push: new 2efd3a6 Fix Javadoc issues preventing release builds with newer Java versions 2efd3a6 is described below commit 2efd3a65929374bc9e22fc7902de1ed4af695cc5 Author: Mark Thomas <ma...@apache.org> AuthorDate: Fri Sep 6 16:21:18 2019 +0100 Fix Javadoc issues preventing release builds with newer Java versions Enable release builds to be built with Java 10 onwards. --- build.properties.default | 11 +++ build.xml | 58 +++++++++++---- java/javax/servlet/jsp/tagext/VariableInfo.java | 56 +++++++-------- .../org/apache/catalina/filters/ExpiresFilter.java | 30 ++++---- java/org/apache/catalina/tribes/package.html | 4 +- java/org/apache/juli/logging/package.html | 2 +- java/org/apache/tomcat/util/buf/package.html | 2 +- .../tomcat/util/digester/SetPropertiesRule.java | 4 +- java/org/apache/tomcat/util/digester/package.html | 84 +++++++++------------- java/org/apache/tomcat/util/modeler/package.html | 8 +-- java/org/apache/tomcat/util/net/NioChannel.java | 10 +-- webapps/docs/changelog.xml | 5 ++ 12 files changed, 152 insertions(+), 122 deletions(-) diff --git a/build.properties.default b/build.properties.default index 66ab7f5..f620925 100644 --- a/build.properties.default +++ b/build.properties.default @@ -306,3 +306,14 @@ cobertura.checksum.value=63a8c5b3f5c1226fcc52cc9c9ea2a812|705d23e5a8815aff3bc4ad cobertura.home=${base.path}/cobertura-${cobertura.version} cobertura.jar=${cobertura.home}/cobertura-${cobertura.version}.jar cobertura.loc=${base-sf.loc}/cobertura/cobertura-${cobertura.version}-bin.tar.gz + +# ----- SAAJ API, used by Code Signing for releases ----- +# ----- No longer part of JRE from Java 11 onwards ----- +# ----- CDDL Licensed ----- +saaj-api.version=1.3.5 +saaj-api.checksum.enabled=true +saaj-api.checksum.algorithm=MD5|SHA-1 +saaj-api.checksum.value=caae8b4bf2c551155815331e9e96256f|1c399a7fea4d0262a6a39750e419c24f0c769586 +saaj-api.home=${base.path}/saaj-api-${saaj-api.version} +saaj-api.jar=${saaj-api.home}/saaj-api-${saaj-api.version}.jar +saaj-api.loc=${base-maven.loc}/javax/xml/soap/saaj-api/${saaj-api.version}/saaj-api-${saaj-api.version}.jar diff --git a/build.xml b/build.xml index 43eab71..c2dc4e2 100644 --- a/build.xml +++ b/build.xml @@ -28,10 +28,10 @@ <!-- is part of the original project source code. --> <!-- See "build.properties.default" in the top level directory for some --> <!-- property values you may customize. --> + <property environment="env"/> <property file="${user.home}/build.properties"/> <property file="build.properties"/> <property file="build.properties.default"/> - <property environment="env"/> <!-- Project Name --> <property name="project" value="apache-tomcat" /> @@ -84,6 +84,10 @@ <property name="compile.source" value="1.6"/> <property name="compile.target" value="1.6"/> + <!-- Expose commons-logging defaults so they can be orver-ridden --> + <property name="logging.compile.source" value="1.2" /> + <property name="logging.compile.target" value="1.1" /> + <!-- Locations to create the JAR artifacts --> <!-- Standard JARs --> <property name="bootstrap.jar" value="${tomcat.build}/bin/bootstrap.jar"/> @@ -194,9 +198,16 @@ <defaultexcludes remove="**/.gitignore" /> <!--<defaultexcludes echo="true" />--> + <!-- Java 9 --> + <available classname="java.lang.reflect.InaccessibleObjectException" + property="java9.javadoc.options" + value="-html5"/> + <property name="java9.javadoc.options" value=""/> + <!-- Classpaths --> <path id="compile.classpath"> <pathelement location="${jdt.jar}"/> + <pathelement location="${saaj-api.jar}"/> </path> <path id="tomcat.classpath"> @@ -573,7 +584,6 @@ <!-- Exclude simple test files --> <exclude name="test/webapp/bug53257/**/*.txt"/> <exclude name="test/webapp-fragments/WEB-INF/classes/*.txt"/> - <!-- Exclude developer specific local files --> <exclude name="build.properties" /> <exclude name="res/maven/mvn.properties" /> </fileset> @@ -581,6 +591,8 @@ <exclude name=".*/**"/> <exclude name="**/MANIFEST.MF"/> <patternset refid="text.files" /> + <!-- Exclude developer specific local files --> + <exclude name="build.properties" /> </fileset> </checkstyle> <!-- javax package checks --> @@ -1735,7 +1747,10 @@ <ant antfile="${tomcat.extras}/logging/commons-logging-${commons-logging.version}-src/build2.xml" dir="${tomcat.extras}/logging/commons-logging-${commons-logging.version}-src" - inheritAll="false" target="compile" /> + inheritAll="false" target="compile" > + <property name="source.version" value="${logging.compile.source}" /> + <property name="target.version" value="${logging.compile.target}" /> + </ant> <jar jarfile="${tomcat-juli-extras.jar}" manifest="${tomcat.manifests}/default.manifest"> @@ -2024,7 +2039,8 @@ Apache Tomcat ${version} native binaries for Win64 AMD64/EMT64 platform. encoding="ISO-8859-1" docencoding="ISO-8859-1" charset="ISO-8859-1" - additionalparam="-breakiterator -notimestamp" + additionalparam="-breakiterator -notimestamp ${java9.javadoc.options}" + source="${compile.source}" maxmemory="512m" failonerror="true" executable="${java.7.home}/bin/javadoc"> @@ -2045,7 +2061,8 @@ Apache Tomcat ${version} native binaries for Win64 AMD64/EMT64 platform. encoding="ISO-8859-1" docencoding="ISO-8859-1" charset="ISO-8859-1" - additionalparam="-breakiterator -notimestamp" + additionalparam="-breakiterator -notimestamp ${java9.javadoc.options}" + source="${compile.source}" maxmemory="512m" failonerror="true" executable="${java.7.home}/bin/javadoc"> @@ -2066,7 +2083,8 @@ Apache Tomcat ${version} native binaries for Win64 AMD64/EMT64 platform. encoding="ISO-8859-1" docencoding="ISO-8859-1" charset="ISO-8859-1" - additionalparam="-breakiterator -notimestamp" + additionalparam="-breakiterator -notimestamp ${java9.javadoc.options}" + source="${compile.source}" maxmemory="512m" failonerror="true" executable="${java.7.home}/bin/javadoc"> @@ -2087,7 +2105,8 @@ Apache Tomcat ${version} native binaries for Win64 AMD64/EMT64 platform. encoding="ISO-8859-1" docencoding="ISO-8859-1" charset="ISO-8859-1" - additionalparam="-breakiterator -notimestamp" + additionalparam="-breakiterator -notimestamp ${java9.javadoc.options}" + source="${compile.source}" maxmemory="512m" failonerror="true" executable="${java.7.home}/bin/javadoc"> @@ -2107,10 +2126,12 @@ Apache Tomcat ${version} native binaries for Win64 AMD64/EMT64 platform. encoding="ISO-8859-1" docencoding="ISO-8859-1" charset="ISO-8859-1" - additionalparam="-breakiterator -notimestamp" + additionalparam="-breakiterator -notimestamp ${java9.javadoc.options} -J-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2" + source="${compile.source}" maxmemory="512m" failonerror="true" - executable="${java.7.home}/bin/javadoc"> + executable="${java.7.home}/bin/javadoc" + useexternalfile="true"> <classpath> <path refid="compile.classpath"/> <path refid="tomcat.webservices.classpath"/> @@ -2120,10 +2141,13 @@ Apache Tomcat ${version} native binaries for Win64 AMD64/EMT64 platform. <link href="../jspapi"/> <link href="../elapi"/> <link href="../websocketapi"/> - <link href="http://docs.oracle.com/javase/7/docs/api/"/> - <link href="http://docs.oracle.com/javaee/6/api/"/> + <link href="https://docs.oracle.com/javase/7/docs/api/"/> + <link href="https://docs.oracle.com/javaee/6/api/"/> + <fileset dir="${tomcat.dist}/src/java"> + <include name="**/*.java"/> + <exclude name="org/apache/catalina/util/Base64.java" if="java11.present" /> + </fileset> <sourcepath> - <path location="${tomcat.dist}/src/java"/> <!--jdbc-pool src files for javadoc--> <path location="${tomcat.dist}/src/modules/jdbc-pool/src/main/java"/> </sourcepath> @@ -2840,6 +2864,16 @@ skip.installer property in build.properties" /> <param name="checksum.value" value="${jdt.checksum.value}"/> </antcall> + <!-- Download SAAJ API --> + <antcall target="downloadfile"> + <param name="sourcefile" value="${saaj-api.loc}"/> + <param name="destfile" value="${saaj-api.jar}"/> + <param name="destdir" value="${saaj-api.home}"/> + <param name="checksum.enabled" value="${saaj-api.checksum.enabled}"/> + <param name="checksum.algorithm" value="${saaj-api.checksum.algorithm}"/> + <param name="checksum.value" value="${saaj-api.checksum.value}"/> + </antcall> + </target> <target name="download-test-compile" diff --git a/java/javax/servlet/jsp/tagext/VariableInfo.java b/java/javax/servlet/jsp/tagext/VariableInfo.java index b7972f5..2d0cdcd 100644 --- a/java/javax/servlet/jsp/tagext/VariableInfo.java +++ b/java/javax/servlet/jsp/tagext/VariableInfo.java @@ -81,78 +81,78 @@ package javax.servlet.jsp.tagext; * thus where synchronization is needed as illustrated by the table below. * <b>Note:</b> the synchronization of the variable(s) will occur <em>after</em> * the respective method has been called. <blockquote> - * <table cellpadding="2" cellspacing="2" border="0" width="55%" - * style="background-color:#999999" summary="Variable Synchronization Points"> + * <table style="background-color:#999999"> + * <caption>Variable Synchronization Points</caption> * <tbody> - * <tr align="center"> + * <tr> * <td valign="top" colspan="6" style="background-color:#999999"> * <u><b>Variable Synchronization Points</b></u><br> * </td> * </tr> * <tr> * <th valign="top" style="background-color:#c0c0c0"> </th> - * <th valign="top" style="background-color:#c0c0c0" align="center">doStartTag()</th> - * <th valign="top" style="background-color:#c0c0c0" align="center">doInitBody()</th> - * <th valign="top" style="background-color:#c0c0c0" align="center">doAfterBody()</th> - * <th valign="top" style="background-color:#c0c0c0" align="center">doEndTag()</th> - * <th valign="top" style="background-color:#c0c0c0" align="center">doTag()</th> + * <th valign="top" style="background-color:#c0c0c0">doStartTag()</th> + * <th valign="top" style="background-color:#c0c0c0">doInitBody()</th> + * <th valign="top" style="background-color:#c0c0c0">doAfterBody()</th> + * <th valign="top" style="background-color:#c0c0c0">doEndTag()</th> + * <th valign="top" style="background-color:#c0c0c0">doTag()</th> * </tr> * <tr> * <td valign="top" style="background-color:#c0c0c0"><b>Tag<br> * </b></td> - * <td valign="top" align="center" style="background-color:#ffffff">AT_BEGIN, NESTED<br> + * <td valign="top" style="background-color:#ffffff">AT_BEGIN, NESTED<br> * </td> - * <td valign="top" align="center" style="background-color:#ffffff"><br> + * <td valign="top" style="background-color:#ffffff"><br> * </td> - * <td valign="top" align="center" style="background-color:#ffffff"><br> + * <td valign="top" style="background-color:#ffffff"><br> * </td> - * <td valign="top" align="center" style="background-color:#ffffff">AT_BEGIN, AT_END<br> + * <td valign="top" style="background-color:#ffffff">AT_BEGIN, AT_END<br> * </td> - * <td valign="top" align="center" style="background-color:#ffffff"><br> + * <td valign="top" style="background-color:#ffffff"><br> * </td> * </tr> * <tr> * <td valign="top" style="background-color:#c0c0c0"><b>IterationTag<br> * </b></td> - * <td valign="top" align="center" style="background-color:#ffffff">AT_BEGIN, NESTED<br> + * <td valign="top" style="background-color:#ffffff">AT_BEGIN, NESTED<br> * </td> - * <td valign="top" align="center" style="background-color:#ffffff"><br> + * <td valign="top" style="background-color:#ffffff"><br> * </td> - * <td valign="top" align="center" style="background-color:#ffffff">AT_BEGIN, NESTED<br> + * <td valign="top" style="background-color:#ffffff">AT_BEGIN, NESTED<br> * </td> - * <td valign="top" align="center" style="background-color:#ffffff">AT_BEGIN, AT_END<br> + * <td valign="top" style="background-color:#ffffff">AT_BEGIN, AT_END<br> * </td> - * <td valign="top" align="center" style="background-color:#ffffff"><br> + * <td valign="top" style="background-color:#ffffff"><br> * </td> * </tr> * <tr> * <td valign="top" style="background-color:#c0c0c0"><b>BodyTag<br> * </b></td> - * <td valign="top" align="center" style="background-color:#ffffff">AT_BEGIN, + * <td valign="top" style="background-color:#ffffff">AT_BEGIN, * NESTED<sup>1</sup><br> * </td> - * <td valign="top" align="center" style="background-color:#ffffff">AT_BEGIN, + * <td valign="top" style="background-color:#ffffff">AT_BEGIN, * NESTED<sup>1</sup><br> * </td> - * <td valign="top" align="center" style="background-color:#ffffff">AT_BEGIN, NESTED<br> + * <td valign="top" style="background-color:#ffffff">AT_BEGIN, NESTED<br> * </td> - * <td valign="top" align="center" style="background-color:#ffffff">AT_BEGIN, AT_END<br> + * <td valign="top" style="background-color:#ffffff">AT_BEGIN, AT_END<br> * </td> - * <td valign="top" align="center" style="background-color:#ffffff"><br> + * <td valign="top" style="background-color:#ffffff"><br> * </td> * </tr> * <tr> * <td valign="top" style="background-color:#c0c0c0"><b>SimpleTag<br> * </b></td> - * <td valign="top" align="center" style="background-color:#ffffff"><br> + * <td valign="top" style="background-color:#ffffff"><br> * </td> - * <td valign="top" align="center" style="background-color:#ffffff"><br> + * <td valign="top" style="background-color:#ffffff"><br> * </td> - * <td valign="top" align="center" style="background-color:#ffffff"><br> + * <td valign="top" style="background-color:#ffffff"><br> * </td> - * <td valign="top" align="center" style="background-color:#ffffff"><br> + * <td valign="top" style="background-color:#ffffff"><br> * </td> - * <td valign="top" align="center" style="background-color:#ffffff">AT_BEGIN, AT_END<br> + * <td valign="top" style="background-color:#ffffff">AT_BEGIN, AT_END<br> * </td> * </tr> * </tbody> diff --git a/java/org/apache/catalina/filters/ExpiresFilter.java b/java/org/apache/catalina/filters/ExpiresFilter.java index b4dce2e..0b9fcd4 100644 --- a/java/org/apache/catalina/filters/ExpiresFilter.java +++ b/java/org/apache/catalina/filters/ExpiresFilter.java @@ -56,7 +56,7 @@ import org.apache.juli.logging.LogFactory; * Following documentation is inspired by <a * href="https://httpd.apache.org/docs/2.2/mod/mod_expires.html">mod_expires</a> * </p> - * <h1>Summary</h1> + * <h2>Summary</h2> * <p> * This filter controls the setting of the {@code Expires} HTTP header and the * {@code max-age} directive of the {@code Cache-Control} HTTP header in @@ -77,9 +77,9 @@ import org.apache.juli.logging.LogFactory; * href="https://httpd.apache.org/docs/2.2/mod/mod_headers.html" >Apache Httpd * mod_headers</a> module. * </p> - * <h1>Filter Configuration</h1><h2>Basic configuration to add + * <h2>Filter Configuration</h2><h3>Basic configuration to add * '{@code Expires}' and '{@code Cache-Control: max-age=}' - * headers to images, css and javascript</h2> + * headers to images, css and javascript</h3> * * <pre> * {@code @@ -112,9 +112,9 @@ import org.apache.juli.logging.LogFactory; * } * </pre> * - * <h2>Configuration Parameters</h2> + * <h3>Configuration Parameters</h3> * - * <h3>{@code ExpiresByType <content-type>}</h3> + * <h4>{@code ExpiresByType <content-type>}</h4> * <p> * This directive defines the value of the {@code Expires} header and the * {@code max-age} directive of the {@code Cache-Control} header generated for @@ -171,8 +171,8 @@ import org.apache.juli.logging.LogFactory; * You can also specify the expiration time calculation using an alternate * syntax, described earlier in this document. * </p> - * <h3> - * {@code ExpiresExcludedResponseStatusCodes}</h3> + * <h4> + * {@code ExpiresExcludedResponseStatusCodes}</h4> * <p> * This directive defines the http response status codes for which the * {@code ExpiresFilter} will not generate expiration headers. By default, the @@ -199,7 +199,7 @@ import org.apache.juli.logging.LogFactory; * } * </pre> * - * <h3>ExpiresDefault</h3> + * <h4>ExpiresDefault</h4> * <p> * This directive sets the default algorithm for calculating the expiration time * for all documents in the affected realm. It can be overridden on a @@ -207,7 +207,7 @@ import org.apache.juli.logging.LogFactory; * description of that directive for details about the syntax of the argument, * and the "alternate syntax" description as well. * </p> - * <h1>Alternate Syntax</h1> + * <h2>Alternate Syntax</h2> * <p> * The {@code ExpiresDefault} and {@code ExpiresByType} directives can also be * defined in a more readable syntax of the form: @@ -295,7 +295,7 @@ import org.apache.juli.logging.LogFactory; * a file on disk. This is due to the fact that there is no modification time * for such content. * </p> - * <h1>Expiration headers generation eligibility</h1> + * <h2>Expiration headers generation eligibility</h2> * <p> * A response is eligible to be enriched by {@code ExpiresFilter} if : * </p> @@ -316,7 +316,7 @@ import org.apache.juli.logging.LogFactory; * {@code max-age}, they are concatenated with the {@code max-age} directive * that is added by the {@code ExpiresFilter}.</li> * </ul> - * <h1>Expiration configuration selection</h1> + * <h2>Expiration configuration selection</h2> * <p> * The expiration configuration if elected according to the following algorithm: * </p> @@ -333,7 +333,7 @@ import org.apache.juli.logging.LogFactory; * '),</li> * <li>{@code ExpiresDefault}</li> * </ol> - * <h1>Implementation Details</h1><h2>When to write the expiration headers ?</h2> + * <h2>Implementation Details</h2><h3>When to write the expiration headers ?</h3> * <p> * The {@code ExpiresFilter} traps the 'on before write response * body' event to decide whether it should generate expiration headers or @@ -349,7 +349,7 @@ import org.apache.juli.logging.LogFactory; * case, the {@code ExpiresFilter}, at the end of its {@code doFilter()} * method, manually triggers the {@code onBeforeWriteResponseBody()} method. * </p> - * <h2>Configuration syntax</h2> + * <h3>Configuration syntax</h3> * <p> * The {@code ExpiresFilter} supports the same configuration syntax as Apache * Httpd mod_expires. @@ -365,7 +365,7 @@ import org.apache.juli.logging.LogFactory; * The workaround has been to declare the content type in the * {@code <param-name>} rather than in the {@code <param-value>}. * </p> - * <h2>Designed for extension : the open/close principle</h2> + * <h3>Designed for extension : the open/close principle</h3> * <p> * The {@code ExpiresFilter} has been designed for extension following the * open/close principle. @@ -380,7 +380,7 @@ import org.apache.juli.logging.LogFactory; * <li> * {@link #getExpirationDate(XHttpServletResponse)}</li> * </ul> - * <h1>Troubleshooting</h1> + * <h2>Troubleshooting</h2> * <p> * To troubleshoot, enable logging on the * {@code org.apache.catalina.filters.ExpiresFilter}. diff --git a/java/org/apache/catalina/tribes/package.html b/java/org/apache/catalina/tribes/package.html index 8a726c4..8921117 100644 --- a/java/org/apache/catalina/tribes/package.html +++ b/java/org/apache/catalina/tribes/package.html @@ -16,7 +16,7 @@ --> <body> <head><title>Apache Tribes - The Tomcat Cluster Communication Module</title> -<h3>QuickStart</h3> +<h2>QuickStart</h2> <pre><code> //create a channel Channel myChannel = new GroupChannel(); @@ -43,7 +43,7 @@ channel.send(group,myMsg,Channel.SEND_OPTIONS_DEFAULT); </code></pre> -<h3>Interfaces for the Application Developer</h3> +<h2>Interfaces for the Application Developer</h2> <ol> <li><code>org.apache.catalina.tribes.Channel</code> Main component to interact with to send messages diff --git a/java/org/apache/juli/logging/package.html b/java/org/apache/juli/logging/package.html index e768de7..30afa40 100644 --- a/java/org/apache/juli/logging/package.html +++ b/java/org/apache/juli/logging/package.html @@ -16,7 +16,7 @@ --> <body> -<h3>Overview</h3> +<h2>Overview</h2> <p>This implementation of commons-logging uses a commons-logging.jar diff --git a/java/org/apache/tomcat/util/buf/package.html b/java/org/apache/tomcat/util/buf/package.html index 833cffa..61f2c38 100644 --- a/java/org/apache/tomcat/util/buf/package.html +++ b/java/org/apache/tomcat/util/buf/package.html @@ -15,7 +15,7 @@ limitations under the License. --> <html><body> -<H1>Buffers and Encodings</h1> +<H2>Buffers and Encodings</h2> This package contains buffers and utils to perform encoding/decoding of buffers. That includes byte to char conversions, URL encodings, etc. diff --git a/java/org/apache/tomcat/util/digester/SetPropertiesRule.java b/java/org/apache/tomcat/util/digester/SetPropertiesRule.java index ac9a86e..206aa80 100644 --- a/java/org/apache/tomcat/util/digester/SetPropertiesRule.java +++ b/java/org/apache/tomcat/util/digester/SetPropertiesRule.java @@ -94,7 +94,7 @@ public class SetPropertiesRule extends Rule { * <p>If a property name is null or the attribute name has no matching * property name, then this indicates that the attribute should be ignored.</p> * - * <h2>Example One</h2> + * <h4>Example One</h4> * <p> The following constructs a rule that maps the <code>alt-city</code> * attribute to the <code>city</code> property and the <code>alt-state</code> * to the <code>state</code> property. @@ -105,7 +105,7 @@ public class SetPropertiesRule extends Rule { * new String[] {"city", "state"}); * </pre> * - * <h2>Example Two</h2> + * <h4>Example Two</h4> * <p> The following constructs a rule that maps the <code>class</code> * attribute to the <code>className</code> property. * The attribute <code>ignore-me</code> is not mapped. diff --git a/java/org/apache/tomcat/util/digester/package.html b/java/org/apache/tomcat/util/digester/package.html index 059cd14..6ffdf94 100644 --- a/java/org/apache/tomcat/util/digester/package.html +++ b/java/org/apache/tomcat/util/digester/package.html @@ -22,8 +22,7 @@ The Digester package provides for rules-based processing of arbitrary XML documents. <br><br> -<a name="doc.Description"></a> -<div align="center"> +<div> <a href="#doc.Intro">[Introduction]</a> <a href="#doc.Properties">[Configuration Properties]</a> <a href="#doc.Stack">[The Object Stack]</a> @@ -41,8 +40,7 @@ XML documents. <a href="#doc.Limits">[Known Limitations]</a> </div> -<a name="doc.Intro"></a> -<h3>Introduction</h3> +<h2 id="doc.Intro">Introduction</h2> <p>In many application environments that deal with XML-formatted data, it is useful to be able to process an XML document in an "event driven" manner, @@ -84,8 +82,7 @@ the developer to focus on the processing to be performed.</p> <p>For example code, see <a href="#doc.Usage"> the usage examples</a>, and <a href="#doc.FAQ.Examples"> the FAQ </a>. </p> -<a name="doc.Properties"></a> -<h3>Digester Configuration Properties</h3> +<h2 id="doc.Properties">Digester Configuration Properties</h2> <p>A <code>org.apache.commons.digester.Digester</code> instance contains several configuration properties that can be used to customize its operation. These @@ -191,8 +188,7 @@ or <code>java.lang.ClassLoader.getResourceAsStream()</code>. The actual DTD resource is loaded through the same class loader that loads all of the Struts classes -- typically from the <code>struts.jar</code> file.</p> -<a name="doc.Stack"></a> -<h3>The Object Stack</h3> +<h2 id="doc.Stack">The Object Stack</h2> <p>One very common use of <code>org.apache.commons.digester.Digester</code> technology is to dynamically construct a tree of Java objects, whose internal @@ -253,8 +249,7 @@ features of the Digester functionality:</p> the parse finishes as well.</li> </ul> -<a name="doc.Patterns"></a> -<h3>Element Matching Patterns</h3> +<h2 id="doc.Patterns">Element Matching Patterns</h2> <p>A primary feature of the <code>org.apache.commons.digester.Digester</code> parser is that the Digester automatically navigates the element hierarchy of @@ -313,8 +308,7 @@ order that the <code>Rules</code> where initially registered with the <code>Digester</code>, whilst <code>end</code> method calls are execute in reverse order. In other words - the order is first in, last out.</p> -<a name="doc.Rules"></a> -<h3>Processing Rules</h3> +<h2 id="doc.Rules">Processing Rules</h2> <p>The <a href="#doc.Patterns">previous section</a> documented how you identify <strong>when</strong> you wish to have certain actions take place. The purpose @@ -443,8 +437,7 @@ class. For example, the following code sequence:</p> "com.mycompany.mypackage.MyChildClass"); </pre> -<a name="doc.Logging"></a> -<h3>Logging</h3> +<h2 id="doc.Logging">Logging</h2> <p>Logging is a vital tool for debugging Digester rulesets. Digester can log copious amounts of debugging information. So, you need to know how logging @@ -462,11 +455,10 @@ works before you start using Digester seriously.</p> volume.</li> </ul> -<a name="doc.Usage"></a> -<h3>Usage Examples</h3> +<h2 id="doc.Usage">Usage Examples</h2> -<h5>Creating a Simple Object Tree</h5> +<h3>Creating a Simple Object Tree</h3> <p>Let's assume that you have two simple JavaBeans, <code>Foo</code> and <code>Bar</code>, with the following method signatures:</p> @@ -546,7 +538,7 @@ have had its properties set, and all of its child <code>Bar</code> objects created for you.</p> -<h5>Processing A Struts Configuration File</h5> +<h3>Processing A Struts Configuration File</h3> <p>As stated earlier, the primary reason that the <code>Digester</code> package was created is because the @@ -639,8 +631,7 @@ information that was defined in the <code>struts-config.xml</code> file is now represented as collections of objects cached within the Struts controller servlet, as well as being exposed as servlet context attributes.</p> - -<h5>Parsing Body Text In XML Files</h5> +<h3>Parsing Body Text In XML Files</h3> <p>The Digester module also allows you to process the nested body text in an XML file, not just the elements and attributes that are encountered. The @@ -724,8 +715,7 @@ brevity in this example):</p> </ul> -<a name="doc.Namespace"></a> -<h3>Namespace Aware Parsing</h3> +<h2 id="doc.Namespace">Namespace Aware Parsing</h2> <p>For digesting XML documents that do not use XML namespaces, the default behavior of <code>Digester</code>, as described above, is generally sufficient. @@ -794,7 +784,7 @@ any restrictions on what other content is present in the document.</p> Rule Sets</a> if you wish to reuse a particular set of rules, associated with a particular namespace, in more than one application context.</p> -<h4>Using Namespace Prefixes In Pattern Matching</h4> +<h3>Using Namespace Prefixes In Pattern Matching</h3> <p>Using rules with namespaces is very useful when you have orthogonal rulesets. One ruleset applies to a namespace and is independent of other rulesets applying @@ -812,15 +802,14 @@ prefixes.</p> 'foo:bar'</code> will match a top level element named <code>'bar'</code> in the namespace with (local) prefix <code>'foo'</code>.</p> -<h4>Limitations of Digester Namespace support</h4> +<h3>Limitations of Digester Namespace support</h3> <p>Digester does not provide general "xpath-compliant" matching; only the namespace attached to the <i>last</i> element in the match path is involved in the matching process. Namespaces attached to parent elements are ignored for matching purposes.</p> -<a name="doc.Pluggable"></a> -<h3>Pluggable Rules Processing</h3> +<h2 id="doc.Pluggable">Pluggable Rules Processing</h2> <p>By default, <code>Digester</code> selects the rules that match a particular pattern of nested elements as described under @@ -846,7 +835,7 @@ that:</p> creator can use any prefix that they like).</li> </ul> -<h4>ExtendedBaseRules</h4> +<h3>ExtendedBaseRules</h3> <p><a href="ExtendedBaseRules.html">ExtendedBaseRules</a>, adds some additional expression syntax for pattern matching to the default mechanism, but it also executes more slowly. See the @@ -861,7 +850,7 @@ following as part of your Digester initialization:</p> ... </pre> -<h4>RegexRules</h4> +<h3>RegexRules</h3> <p><a href="RegexRules.html">RegexRules</a> is an advanced <code>Rules</code> implementation which does not build on the default pattern matching rules. It uses a pluggable <a href="RegexMatcher.html">RegexMatcher</a> implementation to test @@ -879,7 +868,7 @@ Example usage: digester.setRules(new RegexRules(new SimpleRegexMatcher())); ... </pre> -<h5>RegexMatchers</h5> +<h3>RegexMatchers</h3> <p> <code>Digester</code> ships only with one <code>RegexMatcher</code> implementation: <a href='SimpleRegexMatcher.html'>SimpleRegexMatcher</a>. @@ -934,8 +923,7 @@ when a pattern does not match any other rule, then rule alpha will be called. <code>WithDefaultsRulesWrapper</code> follows the <em>Decorator</em> pattern. </p> -<a name="doc.RuleSets"></a> -<h3>Encapsulated Rule Sets</h3> +<h2 id="doc.RuleSets">Encapsulated Rule Sets</h2> <p>All of the examples above have described a scenario where the rules to be processed are registered with a <code>Digester</code> instance immediately @@ -1001,8 +989,8 @@ public class MyRuleSet extends RuleSetBase { the same set of nested elements at different nesting levels within an XML document.</li> </ul> -<a name="doc.NamedStacks"></a> -<h3>Using Named Stacks For Inter-Rule Communication</h3> + +<h2 id="doc.NamedStacks">Using Named Stacks For Inter-Rule Communication</h2> <p> <code>Digester</code> is based on <code>Rule</code> instances working together to process xml. For anything other than the most trivial processing, @@ -1043,10 +1031,10 @@ are reserved for future use by the <code>Digester</code> component. It is also r that users choose stack names perfixed by the name of their own domain to avoid conflicts with other <code>Rule</code> implementations. </p> -<a name="doc.RegisteringDTDs"></a> -<h3>Registering DTDs</h3> -<h4>Brief (But Still Too Long) Introduction To System and Public Identifiers</h4> +<h2 id="doc.RegisteringDTDs">Registering DTDs</h2> + +<h3>Brief (But Still Too Long) Introduction To System and Public Identifiers</h3> <p>A definition for an external entity comes in one of two forms: </p> <ol> @@ -1098,7 +1086,7 @@ Only when no local copy exists is it necessary to download the document from the internet URL. This naming scheme is recommended when using <code>Digester</code>. </p> -<h4>External Entity Resolution Using Digester</h4> +<h3>External Entity Resolution Using Digester</h3> <p> SAX factors out the resolution of external entities into an <code>EntityResolver</code>. <code>Digester</code> supports the use of custom <code>EntityResolver</code> @@ -1117,9 +1105,8 @@ whenever an external entity with public id <p><strong>Note:</strong> This is a simple (but useful) implementation. Greater sophistication requires a custom <code>EntityResolver</code>.</p> -<a name="doc.troubleshooting"></a> -<h3>Troubleshooting</h3> -<h4>Debugging Exceptions</h4> +<h2 id="doc.troubleshooting">Troubleshooting</h2> +<h3>Debugging Exceptions</h3> <p> <code>Digester</code> is based on <a href='http://www.saxproject.org'>SAX</a>. Digestion throws two kinds of <code>Exception</code>: @@ -1134,7 +1121,7 @@ that developers know all about. The second is thrown by SAX parsers when the pro of the XML cannot be completed. So, to diagnose the cause a certain familiarity with the way that SAX error handling works is very useful. </p> -<h5>Diagnosing SAX Exceptions</h5> +<h3>Diagnosing SAX Exceptions</h3> <p> This is a short, potted guide to SAX error handling strategies. It's not intended as a proper guide to error handling in SAX. @@ -1157,9 +1144,9 @@ throw by <code>Digester</code> each of these will be wrapped into a <code>SAXException</code> and rethrown. So, catch these and examine the wrapped exception to diagnose what went wrong. </p> -<a name="doc.FAQ"></a> -<h3>Frequently Asked Questions</h3> -<p><ul> + +<h2 id="doc.FAQ">Frequently Asked Questions</h2> +<ul> <li><strong>Why do I get warnings when using a JAXP 1.1 parser?</strong> <p>If you're using a JAXP 1.1 parser, you might see the following warning (in your log): <code><pre> @@ -1202,8 +1189,7 @@ Digester logs but the processing will continue. To change this behaviour, call <code>digester.setErrorHandler</code> with a more suitable implementation. </p> -<li><strong>Where Can I Find Example Code?</strong> -<a name="doc.FAQ.Examples"> +<li id="doc.FAQ.Examples"><strong>Where Can I Find Example Code?</strong> <p>Digester ships with a sample application: a mapping for the <em>Rich Site Summary</em> format used by many newsfeeds. Download the source distribution to see how it works.</p> @@ -1224,9 +1210,9 @@ commons dev mailing list</a> </p> </li> </ul> -<a name="doc.Limits"></a> -<h3>Known Limitations</h3> -<h4>Accessing Public Methods In A Default Access Superclass</h4> + +<h2 id="doc.Limits">Known Limitations</h2> +<h3>Accessing Public Methods In A Default Access Superclass</h3> <p>There is an issue when invoking public methods contained in a default access superclass. Reflection locates these methods fine and correctly assigns them as public. However, an <code>IllegalAccessException</code> is thrown if the method is invoked.</p> diff --git a/java/org/apache/tomcat/util/modeler/package.html b/java/org/apache/tomcat/util/modeler/package.html index d94cfb4..a64f08a 100644 --- a/java/org/apache/tomcat/util/modeler/package.html +++ b/java/org/apache/tomcat/util/modeler/package.html @@ -52,7 +52,7 @@ source distribution), and much more complex usage code in Tomcat 4.1 (in the be found in Tomcat 5. -<h3>1. Acquire a JMX Implementation</h3> +<h2>1. Acquire a JMX Implementation</h2> <p><em>Modeler</em> has been tested with different JMX implementations: <ul> @@ -71,7 +71,7 @@ compilation classpath, and in the classpath of your server application when it is executed.</p> -<h3>2. Create a Modeler Configuration File</h3> +<h2>2. Create a Modeler Configuration File</h2> <p><em>Modeler</em> requires that you construct a configuration file that describes the metadata ultimately need to construct the @@ -194,7 +194,7 @@ object (by name) before calling the <code>addRole</code> method on the underlying <code>Group</code> instance within the Server.</p> -<h3>3. Create Modeler Registry at Startup Time</h3> +<h2>3. Create Modeler Registry at Startup Time</h2> <p>The metadata information, and the corresponding Model MBean factory, is represented at runtime in an instance of <a href="Registry.html">Registry</a> @@ -224,7 +224,7 @@ ant, to determine a reasonable metadata</p> descriptors</p> -<h3>4. Instantiate Model MBeans As Needed</h3> +<h2>4. Instantiate Model MBeans As Needed</h2> <p>When your server application needs to instantiate a new MBean and register it with the corresponding <code>MBeanServer</code>, it can execute code like diff --git a/java/org/apache/tomcat/util/net/NioChannel.java b/java/org/apache/tomcat/util/net/NioChannel.java index 7cc3ff5..64056ba 100644 --- a/java/org/apache/tomcat/util/net/NioChannel.java +++ b/java/org/apache/tomcat/util/net/NioChannel.java @@ -89,7 +89,6 @@ public class NioChannel implements ByteChannel{ * Closes this channel. * * @throws IOException If an I/O error occurs - * TODO Implement this java.nio.channels.Channel method */ @Override public void close() throws IOException { @@ -104,7 +103,6 @@ public class NioChannel implements ByteChannel{ * Tells whether or not this channel is open. * * @return <code>true</code> if, and only if, this channel is open - * TODO Implement this java.nio.channels.Channel method */ @Override public boolean isOpen() { @@ -117,7 +115,6 @@ public class NioChannel implements ByteChannel{ * @param src The buffer from which bytes are to be retrieved * @return The number of bytes written, possibly zero * @throws IOException If some other I/O error occurs - * TODO Implement this java.nio.channels.WritableByteChannel method */ @Override public int write(ByteBuffer src) throws IOException { @@ -129,9 +126,9 @@ public class NioChannel implements ByteChannel{ * Reads a sequence of bytes from this channel into the given buffer. * * @param dst The buffer into which bytes are to be transferred - * @return The number of bytes read, possibly zero, or <code>-1</code> if the channel has reached end-of-stream + * @return The number of bytes read, possibly zero, or <code>-1</code> if + * the channel has reached end-of-stream * @throws IOException If some other I/O error occurs - * TODO Implement this java.nio.channels.ReadableByteChannel method */ @Override public int read(ByteBuffer dst) throws IOException { @@ -149,7 +146,6 @@ public class NioChannel implements ByteChannel{ * getBufHandler * * @return ApplicationBufferHandler - * TODO Implement this org.apache.tomcat.util.net.SecureNioChannel method */ public ApplicationBufferHandler getBufHandler() { return bufHandler; @@ -162,7 +158,6 @@ public class NioChannel implements ByteChannel{ * getIOChannel * * @return SocketChannel - * TODO Implement this org.apache.tomcat.util.net.SecureNioChannel method */ public SocketChannel getIOChannel() { return sc; @@ -172,7 +167,6 @@ public class NioChannel implements ByteChannel{ * isClosing * * @return boolean - * TODO Implement this org.apache.tomcat.util.net.SecureNioChannel method */ public boolean isClosing() { return false; diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index fae50c6..6d4f8fc 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -123,6 +123,11 @@ Correct the source code links on the index page for the ROOT web application to point to Git rather than Subversion. (markt) </fix> + <fix> + Fix various issues with the Javadoc generated for the documentation web + application to enable release builds to be built with Java 10 onwards. + (markt) + </fix> </changelog> </subsection> <subsection name="Other"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org