You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by dd...@apache.org on 2023/12/09 19:13:52 UTC

(freemarker) branch 3 updated (31ecce76 -> a5db5619)

This is an automated email from the ASF dual-hosted git repository.

ddekany pushed a change to branch 3
in repository https://gitbox.apache.org/repos/asf/freemarker.git


    from 31ecce76 Updated change log
     new 0ab9e956 Javadoc HTML fixes to satisfy the linter of Java 17 javadoc
     new a5db5619 Gradle build: All javadoc "lint" check were disabled accidentally, instead of just "missing" (tested it, and it didn't stop at HTML errors without adding "all,")

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../build/module/common/JavadocStyleAdjustments.kt |  8 +--
 .../freemarker/core/TagSyntaxVariationsTest.java   | 13 ++--
 .../core/templatesuite/models/BooleanHash1.java    |  6 +-
 .../core/templatesuite/models/BooleanHash2.java    |  6 +-
 .../org/apache/freemarker/core/ASTDirInclude.java  |  6 +-
 .../apache/freemarker/core/ASTExpHashLiteral.java  | 12 ++--
 .../freemarker/core/ASTExpStringLiteral.java       |  8 +--
 .../apache/freemarker/core/ASTImplicitParent.java  |  2 +-
 .../apache/freemarker/core/ASTInterpolation.java   |  8 +--
 .../java/org/apache/freemarker/core/ASTNode.java   |  2 +-
 .../freemarker/core/BuiltInsForSequences.java      | 31 +++-----
 .../freemarker/core/BuiltInsForStringsMisc.java    | 25 +++----
 .../java/org/apache/freemarker/core/CallPlace.java | 10 +--
 .../org/apache/freemarker/core/Configuration.java  |  2 +-
 .../org/apache/freemarker/core/Environment.java    | 16 ++---
 .../core/MutableProcessingConfiguration.java       | 44 ++++++------
 .../freemarker/core/ParsingConfiguration.java      |  2 +-
 .../freemarker/core/ProcessingConfiguration.java   |  4 +-
 .../org/apache/freemarker/core/StopException.java  |  2 +-
 .../java/org/apache/freemarker/core/Template.java  |  4 +-
 .../apache/freemarker/core/debug/DebugModel.java   |  6 +-
 .../freemarker/core/debug/DebuggerClient.java      |  8 +--
 .../core/model/AdapterTemplateModel.java           |  4 +-
 .../freemarker/core/model/TemplateHashModel.java   |  6 +-
 .../freemarker/core/model/TemplateNullModel.java   |  2 +-
 .../freemarker/core/model/impl/ArgumentTypes.java  | 14 ++--
 .../freemarker/core/model/impl/BeanModel.java      | 40 ++++-------
 .../core/model/impl/DefaultObjectWrapper.java      | 24 +++----
 .../core/model/impl/MethodAppearanceFineTuner.java | 20 +++---
 .../core/model/impl/OverloadedNumberUtils.java     |  8 +--
 .../core/model/impl/ResourceBundleModel.java       | 19 ++---
 .../freemarker/core/model/impl/SimpleDate.java     |  6 +-
 .../freemarker/core/model/impl/SimpleHash.java     | 18 ++---
 .../freemarker/core/model/impl/SimpleIterable.java | 18 ++---
 .../freemarker/core/model/impl/SimpleNumber.java   |  8 +--
 .../freemarker/core/model/impl/SimpleString.java   | 14 ++--
 .../freemarker/core/model/impl/StaticModel.java    | 16 ++---
 .../freemarker/core/model/impl/StaticModels.java   |  4 +-
 .../core/templateresolver/TemplateLoader.java      |  8 +--
 .../apache/freemarker/core/util/DeepUnwrap.java    | 23 ++----
 .../apache/freemarker/core/util/_StringUtils.java  | 43 ++++++------
 .../main/javacc/org/apache/freemarker/core/FTL.jj  |  2 +-
 .../freemarker/servlet/AllHttpScopesHashModel.java | 23 +++---
 .../freemarker/servlet/FreemarkerServlet.java      | 20 +++---
 .../freemarker/servlet/jsp/EventForwarding.java    | 23 +++---
 .../freemarker/servlet/jsp/TaglibFactory.java      | 82 ++++++----------------
 .../apache/freemarker/test/TemplateTestSuite.java  |  6 +-
 47 files changed, 286 insertions(+), 390 deletions(-)


(freemarker) 01/02: Javadoc HTML fixes to satisfy the linter of Java 17 javadoc

Posted by dd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ddekany pushed a commit to branch 3
in repository https://gitbox.apache.org/repos/asf/freemarker.git

commit 0ab9e9567cfb9c77d8f46389d000ab360d97e8d5
Author: ddekany <dd...@apache.org>
AuthorDate: Sat Dec 9 16:49:14 2023 +0100

    Javadoc HTML fixes to satisfy the linter of Java 17 javadoc
---
 .../freemarker/core/TagSyntaxVariationsTest.java   | 13 ++--
 .../core/templatesuite/models/BooleanHash1.java    |  6 +-
 .../core/templatesuite/models/BooleanHash2.java    |  6 +-
 .../org/apache/freemarker/core/ASTDirInclude.java  |  6 +-
 .../apache/freemarker/core/ASTExpHashLiteral.java  | 12 ++--
 .../freemarker/core/ASTExpStringLiteral.java       |  8 +--
 .../apache/freemarker/core/ASTImplicitParent.java  |  2 +-
 .../apache/freemarker/core/ASTInterpolation.java   |  8 +--
 .../java/org/apache/freemarker/core/ASTNode.java   |  2 +-
 .../freemarker/core/BuiltInsForSequences.java      | 31 +++-----
 .../freemarker/core/BuiltInsForStringsMisc.java    | 25 +++----
 .../java/org/apache/freemarker/core/CallPlace.java | 10 +--
 .../org/apache/freemarker/core/Configuration.java  |  2 +-
 .../org/apache/freemarker/core/Environment.java    | 16 ++---
 .../core/MutableProcessingConfiguration.java       | 44 ++++++------
 .../freemarker/core/ParsingConfiguration.java      |  2 +-
 .../freemarker/core/ProcessingConfiguration.java   |  4 +-
 .../org/apache/freemarker/core/StopException.java  |  2 +-
 .../java/org/apache/freemarker/core/Template.java  |  4 +-
 .../apache/freemarker/core/debug/DebugModel.java   |  6 +-
 .../freemarker/core/debug/DebuggerClient.java      |  8 +--
 .../core/model/AdapterTemplateModel.java           |  4 +-
 .../freemarker/core/model/TemplateHashModel.java   |  6 +-
 .../freemarker/core/model/TemplateNullModel.java   |  2 +-
 .../freemarker/core/model/impl/ArgumentTypes.java  | 14 ++--
 .../freemarker/core/model/impl/BeanModel.java      | 40 ++++-------
 .../core/model/impl/DefaultObjectWrapper.java      | 24 +++----
 .../core/model/impl/MethodAppearanceFineTuner.java | 20 +++---
 .../core/model/impl/OverloadedNumberUtils.java     |  8 +--
 .../core/model/impl/ResourceBundleModel.java       | 19 ++---
 .../freemarker/core/model/impl/SimpleDate.java     |  6 +-
 .../freemarker/core/model/impl/SimpleHash.java     | 18 ++---
 .../freemarker/core/model/impl/SimpleIterable.java | 18 ++---
 .../freemarker/core/model/impl/SimpleNumber.java   |  8 +--
 .../freemarker/core/model/impl/SimpleString.java   | 14 ++--
 .../freemarker/core/model/impl/StaticModel.java    | 16 ++---
 .../freemarker/core/model/impl/StaticModels.java   |  4 +-
 .../core/templateresolver/TemplateLoader.java      |  8 +--
 .../apache/freemarker/core/util/DeepUnwrap.java    | 23 ++----
 .../apache/freemarker/core/util/_StringUtils.java  | 43 ++++++------
 .../main/javacc/org/apache/freemarker/core/FTL.jj  |  2 +-
 .../freemarker/servlet/AllHttpScopesHashModel.java | 23 +++---
 .../freemarker/servlet/FreemarkerServlet.java      | 20 +++---
 .../freemarker/servlet/jsp/EventForwarding.java    | 23 +++---
 .../freemarker/servlet/jsp/TaglibFactory.java      | 82 ++++++----------------
 .../apache/freemarker/test/TemplateTestSuite.java  |  6 +-
 46 files changed, 282 insertions(+), 386 deletions(-)

diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/TagSyntaxVariationsTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/TagSyntaxVariationsTest.java
index ca24bfdb..895e1a1c 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/TagSyntaxVariationsTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/TagSyntaxVariationsTest.java
@@ -19,18 +19,17 @@
 
 package org.apache.freemarker.core;
 
+import junit.framework.TestCase;
+import org.apache.freemarker.core.userpkg.UpperCaseDirective;
+import org.apache.freemarker.core.util._StringUtils;
+import org.apache.freemarker.test.TestConfigurationBuilder;
+
 import java.io.IOException;
 import java.io.StringReader;
 import java.io.StringWriter;
 import java.util.Collections;
 import java.util.Map;
 
-import org.apache.freemarker.core.userpkg.UpperCaseDirective;
-import org.apache.freemarker.core.util._StringUtils;
-import org.apache.freemarker.test.TestConfigurationBuilder;
-
-import junit.framework.TestCase;
-
 /**
  * Test various generated templates (permutations), including some deliberately
  * wrong ones, with various tagSyntax settings.
@@ -109,7 +108,7 @@ public class TagSyntaxVariationsTest extends TestCase {
     }
     
     /**
-     * @param expected the expected output or <tt>null</tt> if we expect
+     * @param expected the expected output or {@code null} if we expect
      * a parsing error.
      */
     private static void test(
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanHash1.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanHash1.java
index da94fa62..c8008103 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanHash1.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanHash1.java
@@ -30,11 +30,11 @@ import org.apache.freemarker.core.model.impl.SimpleString;
 public class BooleanHash1 implements TemplateHashModel {
 
     /**
-     * Gets a <tt>TemplateModel</tt> from the hash.
+     * Gets a {@code TemplateModel} from the hash.
      *
-     * @param key the name by which the <tt>TemplateModel</tt>
+     * @param key the name by which the {@code TemplateModel}
      * is identified in the template.
-     * @return the <tt>TemplateModel</tt> referred to by the key,
+     * @return the {@code TemplateModel} referred to by the key,
      * or null if not found.
      */
     @Override
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanHash2.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanHash2.java
index bf7dcce9..030ceea1 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanHash2.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanHash2.java
@@ -28,11 +28,11 @@ import org.apache.freemarker.core.model.TemplateModel;
 public class BooleanHash2 implements TemplateHashModel {
 
     /**
-     * Gets a <tt>TemplateModel</tt> from the hash.
+     * Gets a {@code TemplateModel} from the hash.
      *
-     * @param key the name by which the <tt>TemplateModel</tt>
+     * @param key the name by which the {@code TemplateModel}
      * is identified in the template.
-     * @return the <tt>TemplateModel</tt> referred to by the key,
+     * @return the {@code TemplateModel} referred to by the key,
      * or null if not found.
      */
     @Override
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTDirInclude.java b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTDirInclude.java
index 5afc30ad..10256190 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTDirInclude.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTDirInclude.java
@@ -19,11 +19,11 @@
 
 package org.apache.freemarker.core;
 
-import java.io.IOException;
-
 import org.apache.freemarker.core.templateresolver.MalformedTemplateNameException;
 import org.apache.freemarker.core.util._StringUtils;
 
+import java.io.IOException;
+
 /**
  * AST directive node: {@code #include} 
  */
@@ -33,7 +33,7 @@ final class ASTDirInclude extends ASTDirective {
     private final Boolean ignoreMissingExpPrecalcedValue;
 
     /**
-     * @param template the template that this <tt>#include</tt> is a part of.
+     * @param template the template that this {@code #include} is a part of.
      * @param includedTemplateNameExp the path of the template to be included.
      */
     ASTDirInclude(Template template,
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpHashLiteral.java b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpHashLiteral.java
index e2df12f1..a109b614 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpHashLiteral.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpHashLiteral.java
@@ -19,18 +19,18 @@
 
 package org.apache.freemarker.core;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.ListIterator;
-
 import org.apache.freemarker.core.model.TemplateCollectionModel;
 import org.apache.freemarker.core.model.TemplateHashModelEx;
 import org.apache.freemarker.core.model.TemplateModel;
 import org.apache.freemarker.core.model.TemplateModelIterator;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.ListIterator;
+
 /**
- * AST expression node: <tt>{ keyExp: valueExp, ... }</tt> 
+ * AST expression node: <code>{ keyExp: valueExp, ... }</code> 
  */
 final class ASTExpHashLiteral extends ASTExpression {
 
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpStringLiteral.java b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpStringLiteral.java
index 6c8d2220..968c8285 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpStringLiteral.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpStringLiteral.java
@@ -19,9 +19,6 @@
 
 package org.apache.freemarker.core;
 
-import java.io.StringReader;
-import java.util.List;
-
 import org.apache.freemarker.core.model.TemplateMarkupOutputModel;
 import org.apache.freemarker.core.model.TemplateModel;
 import org.apache.freemarker.core.model.TemplateStringModel;
@@ -29,6 +26,9 @@ import org.apache.freemarker.core.model.impl.SimpleString;
 import org.apache.freemarker.core.outputformat.OutputFormat;
 import org.apache.freemarker.core.util.TemplateLanguageUtils;
 
+import java.io.StringReader;
+import java.util.List;
+
 /**
  * AST expression node: string literal
  */
@@ -144,7 +144,7 @@ final class ASTExpStringLiteral extends ASTExpression implements TemplateStringM
     }
     
     /**
-     * Tells if this is something like <tt>"${foo}"</tt>, which is usually a user mistake.
+     * Tells if this is something like <code>"${foo}"</code>, which is usually a user mistake.
      */
     boolean isSingleInterpolationLiteral() {
         return dynamicValue != null && dynamicValue.size() == 1
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTImplicitParent.java b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTImplicitParent.java
index f87da420..ecf1da07 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTImplicitParent.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTImplicitParent.java
@@ -39,7 +39,7 @@ final class ASTImplicitParent extends ASTElement {
     }
 
     /**
-     * Processes the contents of the internal <tt>ASTElement</tt> list,
+     * Processes the contents of the internal {@code ASTElement} list,
      * and outputs the resulting text.
      */
     @Override
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTInterpolation.java b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTInterpolation.java
index 56805d2a..1574e78d 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTInterpolation.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTInterpolation.java
@@ -19,17 +19,17 @@
 
 package org.apache.freemarker.core;
 
-import java.io.IOException;
-import java.io.Writer;
-
 import org.apache.freemarker.core.model.TemplateMarkupOutputModel;
 import org.apache.freemarker.core.outputformat.MarkupOutputFormat;
 import org.apache.freemarker.core.outputformat.OutputFormat;
 import org.apache.freemarker.core.util.BugException;
 import org.apache.freemarker.core.util.TemplateLanguageUtils;
 
+import java.io.IOException;
+import java.io.Writer;
+
 /**
- * AST interpolation node: <tt>${exp}</tt>
+ * AST interpolation node: <code>${exp}</code>
  */
 //TODO [FM3] will be public
 final class ASTInterpolation extends ASTElement {
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTNode.java b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTNode.java
index bcce5de5..ed1c0727 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTNode.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTNode.java
@@ -180,7 +180,7 @@ abstract class ASTNode {
     
     /**
      * A very sort single-line string that describes what kind of AST node this is, without describing any 
-     * embedded expression or child element. Examples: {@code "#if"}, {@code "+"}, <tt>"${...}</tt>. These values should
+     * embedded expression or child element. Examples: {@code "#if"}, {@code "+"}, <code>"${...}</code>. These values should
      * be suitable as tree node labels in a tree view. Yet, they should be consistent and complete enough so that an AST
      * that is equivalent with the original could be reconstructed from the tree view. Thus, for literal values that are
      * leaf nodes the symbols should be the canonical form of value.
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInsForSequences.java b/freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInsForSequences.java
index e22d2e1d..793f0d31 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInsForSequences.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInsForSequences.java
@@ -19,7 +19,14 @@
 
 package org.apache.freemarker.core;
 
-import static org.apache.freemarker.core.util.CallableUtils.*;
+import org.apache.freemarker.core.arithmetic.ArithmeticEngine;
+import org.apache.freemarker.core.model.*;
+import org.apache.freemarker.core.model.impl.SequenceTemplateModelIterator;
+import org.apache.freemarker.core.model.impl.SimpleNumber;
+import org.apache.freemarker.core.model.impl.SimpleString;
+import org.apache.freemarker.core.model.impl.TemplateModelListSequence;
+import org.apache.freemarker.core.util.BugException;
+import org.apache.freemarker.core.util._StringUtils;
 
 import java.io.Serializable;
 import java.text.Collator;
@@ -28,25 +35,7 @@ import java.util.Collections;
 import java.util.Comparator;
 import java.util.Date;
 
-import org.apache.freemarker.core.arithmetic.ArithmeticEngine;
-import org.apache.freemarker.core.model.ArgumentArrayLayout;
-import org.apache.freemarker.core.model.TemplateBooleanModel;
-import org.apache.freemarker.core.model.TemplateCollectionModel;
-import org.apache.freemarker.core.model.TemplateDateModel;
-import org.apache.freemarker.core.model.TemplateFunctionModel;
-import org.apache.freemarker.core.model.TemplateHashModel;
-import org.apache.freemarker.core.model.TemplateIterableModel;
-import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.TemplateModelIterator;
-import org.apache.freemarker.core.model.TemplateNumberModel;
-import org.apache.freemarker.core.model.TemplateSequenceModel;
-import org.apache.freemarker.core.model.TemplateStringModel;
-import org.apache.freemarker.core.model.impl.SequenceTemplateModelIterator;
-import org.apache.freemarker.core.model.impl.SimpleNumber;
-import org.apache.freemarker.core.model.impl.SimpleString;
-import org.apache.freemarker.core.model.impl.TemplateModelListSequence;
-import org.apache.freemarker.core.util.BugException;
-import org.apache.freemarker.core.util._StringUtils;
+import static org.apache.freemarker.core.util.CallableUtils.*;
 
 /**
  * A holder for builtins that operate on sequence (or some even on iterable) left-hand value.
@@ -616,7 +605,7 @@ class BuiltInsForSequences {
         }
 
         /**
-         * Sorts a sequence for the <tt>sort</tt> and <tt>sort_by</tt>
+         * Sorts a sequence for the {@code sort} and {@code sort_by}
          * built-ins.
          * 
          * @param seq the sequence to sort.
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInsForStringsMisc.java b/freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInsForStringsMisc.java
index 3fcb4e24..6607cccb 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInsForStringsMisc.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInsForStringsMisc.java
@@ -19,18 +19,7 @@
 
 package org.apache.freemarker.core;
 
-import java.io.IOException;
-import java.io.StringReader;
-import java.io.Writer;
-
-import org.apache.freemarker.core.model.ArgumentArrayLayout;
-import org.apache.freemarker.core.model.ObjectWrapper;
-import org.apache.freemarker.core.model.TemplateBooleanModel;
-import org.apache.freemarker.core.model.TemplateDirectiveModel;
-import org.apache.freemarker.core.model.TemplateFunctionModel;
-import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.TemplateSequenceModel;
-import org.apache.freemarker.core.model.TemplateStringModel;
+import org.apache.freemarker.core.model.*;
 import org.apache.freemarker.core.model.impl.BeanModel;
 import org.apache.freemarker.core.model.impl.DefaultObjectWrapper;
 import org.apache.freemarker.core.model.impl.SimpleNumber;
@@ -39,6 +28,10 @@ import org.apache.freemarker.core.outputformat.OutputFormat;
 import org.apache.freemarker.core.templateresolver.MalformedTemplateNameException;
 import org.apache.freemarker.core.util.CallableUtils;
 
+import java.io.IOException;
+import java.io.StringReader;
+import java.io.Writer;
+
 class BuiltInsForStringsMisc {
 
     // Can't be instantiated
@@ -161,7 +154,7 @@ class BuiltInsForStringsMisc {
      * transform model that evaluates the template in place.
      * The template inherits the configuration and environment of the executing
      * template. By default, its name will be equal to
-     * <tt>executingTemplate.getLookupName() + "$anonymous_interpreted"</tt>. You can
+     * {@code executingTemplate.getLookupName() + "$anonymous_interpreted"}. You can
      * specify another parameter to the method call in which case the
      * template name suffix is the specified id instead of "anonymous_interpreted".
      */
@@ -179,8 +172,8 @@ class BuiltInsForStringsMisc {
          * template a name.
          * 
          * @return a {@link TemplateDirectiveModel} that when executed inside
-         * a <tt>&lt;transform></tt> block will process the generated template
-         * just as if it had been <tt>&lt;transform></tt>-ed at that point.
+         * a <code>&lt;transform></code> block will process the generated template
+         * just as if it had been <code>&lt;transform></code>-ed at that point.
          */
         @Override
         protected TemplateModel calculateResult(Environment env) throws TemplateException {
@@ -283,7 +276,7 @@ class BuiltInsForStringsMisc {
 
     /**
      * A built-in that allows us to instantiate an instance of a java class.
-     * Usage is something like: <tt>&lt;#assign foobar = "foo.bar.MyClass"?new()></tt>;
+     * Usage is something like: <code>&lt;#assign foobar = "foo.bar.MyClass"?new()></code>;
      */
     static class newBI extends ASTExpBuiltIn {
         
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/CallPlace.java b/freemarker-core/src/main/java/org/apache/freemarker/core/CallPlace.java
index 6135d3a3..9437ed49 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/CallPlace.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/CallPlace.java
@@ -19,14 +19,14 @@
 
 package org.apache.freemarker.core;
 
-import java.io.IOException;
-import java.io.Writer;
-import java.util.IdentityHashMap;
-
 import org.apache.freemarker.core.model.TemplateDirectiveModel;
 import org.apache.freemarker.core.model.TemplateModel;
 import org.apache.freemarker.core.util.CommonSupplier;
 
+import java.io.IOException;
+import java.io.Writer;
+import java.util.IdentityHashMap;
+
 /**
  * The place (in a template, usually) from where a directive (like a macro) or function was called;
  * <b>Do not implement this interface yourself</b>, as new methods may be added any time! Only FreeMarker itself
@@ -157,7 +157,7 @@ public interface CallPlace {
     /**
      * Tells if the output of the nested content can be safely cached, as it only depends on the template content (not
      * on variable values and such) and has no side-effects (other than writing to the output). Examples of cases that
-     * give {@code false}: {@code <@foo>Name: } <tt...@foo>}, {@code <@foo>Name: <#if
+     * give {@code false}: {@code <@foo>Name: } <co...@foo>}, {@code <@foo>Name: <#if
      * condition>bar</#...@foo>}. Examples of cases that give {@code true}: {@code <@foo>Name: Joe</...@foo>}, {@code
      * <@foo />}. Note that we get {@code true} for no nested content, because that's equivalent to 0-length nested
      * content.
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/Configuration.java b/freemarker-core/src/main/java/org/apache/freemarker/core/Configuration.java
index cc9a8375..64337a48 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/Configuration.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/Configuration.java
@@ -1543,7 +1543,7 @@ public final class Configuration implements TopLevelConfiguration, CustomStateSc
 
     /**
      * Returns the names of the directives that are predefined by FreeMarker. These are the things that you call like
-     * <tt>&lt;#directiveName ...&gt;</tt>.
+     * <code>&lt;#directiveName ...&gt;</code>.
      */
     public Set<String> getSupportedBuiltInDirectiveNames() {
         return ASTDirective.BUILT_IN_DIRECTIVE_NAMES;
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/Environment.java b/freemarker-core/src/main/java/org/apache/freemarker/core/Environment.java
index c6ab7154..5351d0ca 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/Environment.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/Environment.java
@@ -53,15 +53,15 @@ import static org.apache.freemarker.core.util.CallableUtils._newNullOrOmittedArg
 
 /**
  * Object that represents the runtime environment during template processing. For every invocation of a
- * <tt>Template.process()</tt> method, a new instance of this object is created, and then discarded when
- * <tt>process()</tt> returns. This object stores the set of temporary variables created by the template, the value of
+ * {@code Template.process()} method, a new instance of this object is created, and then discarded when
+ * {@code process()} returns. This object stores the set of temporary variables created by the template, the value of
  * settings set by the template, the reference to the data model root, etc. Everything that is needed to fulfill the
  * template processing job.
  * <p>
- * Data models that need to access the <tt>Environment</tt> object that represents the template processing on the
+ * Data models that need to access the {@code Environment} object that represents the template processing on the
  * current thread can use the {@link #getCurrentEnvironment()} method.
  * <p>
- * If you need to modify or read this object before or after the <tt>process</tt> call, use
+ * If you need to modify or read this object before or after the {@code process} call, use
  * {@link Template#createProcessingEnvironment(Object rootMap, Writer out, ObjectWrapper wrapper)}
  * <p>
  * The {@link ProcessingConfiguration} reader methods of this class don't throw {@link CoreSettingValueNotSetException}
@@ -493,9 +493,9 @@ public final class Environment extends MutableProcessingConfiguration<Environmen
     }
 
     /**
-     * Tells if we are inside an <tt>#attempt</tt> block (but before <tt>#recover</tt>). This can be useful for
+     * Tells if we are inside an {@code #attempt} block (but before {@code #recover}). This can be useful for
      * {@link TemplateExceptionHandler}-s, as then they may don't want to print the error to the output, as
-     * <tt>#attempt</tt> will roll it back anyway.
+     * {@code #attempt} will roll it back anyway.
      */
     public boolean isInAttemptBlock() {
         return inAttemptBlock;
@@ -922,7 +922,7 @@ public final class Environment extends MutableProcessingConfiguration<Environmen
     }
 
     /*
-     * Note that although it's not allowed to set this setting with the <tt>setting</tt> directive, it still must be
+     * Note that although it's not allowed to set this setting with the {@code setting} directive, it still must be
      * allowed to set it from Java code while the template executes, since some frameworks allow templates to actually
      * change the output encoding on-the-fly.
      */
@@ -2425,7 +2425,7 @@ public final class Environment extends MutableProcessingConfiguration<Environmen
     }
 
     /**
-     * sets TemplateNodeModel as the current visitor node. <tt>.node</tt>
+     * sets TemplateNodeModel as the current visitor node. {@code .node}
      */
     public void setCurrentVisitorNode(TemplateNodeModel node) {
         currentVisitorNode = node;
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/MutableProcessingConfiguration.java b/freemarker-core/src/main/java/org/apache/freemarker/core/MutableProcessingConfiguration.java
index 5679adee..740f17ff 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/MutableProcessingConfiguration.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/MutableProcessingConfiguration.java
@@ -1453,8 +1453,8 @@ public abstract class MutableProcessingConfiguration<SelfT extends MutableProces
      *             with {@code "allowedClasses:"} and/or
      *             {@code "trustedTemplates:"}. Examples of valid values:
      *             
-     *             <table style="width: auto; border-collapse: collapse" border="1"
-     *                  summary="trustedTemplate value examples">
+     *             <table style="width: auto; border-collapse: collapse" border="1">
+     *               <caption style="display: none">trustedTemplates value examples</caption>
      *               <tr>
      *                 <th>Setting value
      *                 <th>Meaning
@@ -1574,8 +1574,8 @@ public abstract class MutableProcessingConfiguration<SelfT extends MutableProces
      *       maximum strong and soft sizes specified with the setting value. Examples
      *       of valid setting values:
      *       
-     *       <table style="width: auto; border-collapse: collapse" border="1" summary="templateCacheStorage value
-     *       examples">
+     *       <table style="width: auto; border-collapse: collapse" border="1">
+     *         <caption style="display: none">templateCacheStorage value examples</caption>
      *         <tr><th>Setting value<th>max. strong size<th>max. soft size
      *         <tr><td>{@code "strong:50, soft:500"}<td>50<td>500
      *         <tr><td>{@code "strong:100, soft"}<td>100<td>{@code Integer.MAX_VALUE}
@@ -1585,7 +1585,7 @@ public abstract class MutableProcessingConfiguration<SelfT extends MutableProces
      *         <tr><td>{@code "soft"}<td>0<td>{@code Integer.MAX_VALUE}
      *       </table>
      *       
-     *       <p>The value is not case sensitive. The order of <tt>soft</tt> and <tt>strong</tt>
+     *       <p>The value is not case sensitive. The order of {@code soft} and {@code strong}
      *       entries is not significant.
      *       
      *   <li><p>{@code "templateUpdateDelay"}:
@@ -1626,40 +1626,40 @@ public abstract class MutableProcessingConfiguration<SelfT extends MutableProces
      *       {@link DefaultTemplateNameFormat#INSTANCE}.
      * </ul>
      * 
-     * <p><a name="fm_obe"></a>Regarding <em>object builder expressions</em> (used by the setting values where it was
+     * <p id="fm_obe">Regarding <em>object builder expressions</em> (used by the setting values where it was
      * indicated):
      * <ul>
      *   <li><p>Before FreeMarker 2.3.21 it had to be a fully qualified class name, and nothing else.</li>
      *   <li><p>Since 2.3.21, the generic syntax is:
-     *       <tt><i>className</i>(<i>constrArg1</i>, <i>constrArg2</i>, ... <i>constrArgN</i>,
+     *       <code><i>className</i>(<i>constrArg1</i>, <i>constrArg2</i>, ... <i>constrArgN</i>,
      *       <i>propName1</i>=<i>propValue1</i>, <i>propName2</i>=<i>propValue2</i>, ...
-     *       <i>propNameN</i>=<i>propValueN</i>)</tt>,
+     *       <i>propNameN</i>=<i>propValueN</i>)</code>,
      *       where
-     *       <tt><i>className</i></tt> is the fully qualified class name of the instance to invoke (except if we have
-     *       builder class or <tt>INSTANCE</tt> field around, but see that later),
-     *       <tt><i>constrArg</i></tt>-s are the values of constructor arguments,
-     *       and <tt><i>propName</i>=<i>propValue</i></tt>-s set JavaBean properties (like <tt>x=1</tt> means
-     *       <tt>setX(1)</tt>) on the created instance. You can have any number of constructor arguments and property
+     *       <code><i>className</i></code> is the fully qualified class name of the instance to invoke (except if we have
+     *       builder class or {@code INSTANCE} field around, but see that later),
+     *       <code><i>constrArg</i></code>-s are the values of constructor arguments,
+     *       and <code><i>propName</i>=<i>propValue</i></code>-s set JavaBean properties (like {@code x=1} means
+     *       {@code setX(1)}) on the created instance. You can have any number of constructor arguments and property
      *       setters, including 0. Constructor arguments must precede any property setters.   
      *   </li>
      *   <li>
-     *     Example: <tt>com.example.MyObjectWrapper(1, 2, exposeFields=true, cacheSize=5000)</tt> is nearly
+     *     Example: {@code com.example.MyObjectWrapper(1, 2, exposeFields=true, cacheSize=5000)} is nearly
      *     equivalent with this Java code:
-     *     <tt>obj = new com.example.MyObjectWrapper(1, 2); obj.setExposeFields(true); obj.setCacheSize(5000);</tt>
+     *     {@code obj = new com.example.MyObjectWrapper(1, 2); obj.setExposeFields(true); obj.setCacheSize(5000);}
      *   </li>
      *   <li>
-     *      <p>If you have no constructor arguments and property setters, and the <tt><i>className</i></tt> class has
+     *      <p>If you have no constructor arguments and property setters, and the <code><i>className</i></code> class has
      *      a public static {@code INSTANCE} field, the value of that filed will be the value of the expression, and
      *      the constructor won't be called.
      *   </li>
      *   <li>
-     *      <p>If there exists a class named <tt><i>className</i>Builder</tt>, then that class will be instantiated
+     *      <p>If there exists a class named <code><i>className</i>Builder</code>, then that class will be instantiated
      *      instead with the given constructor arguments, and the JavaBean properties of that builder instance will be
-     *      set. After that, the public <tt>build()</tt> method of the instance will be called, whose return value
-     *      will be the value of the whole expression. (The builder class and the <tt>build()</tt> method is simply
+     *      set. After that, the public {@code build()} method of the instance will be called, whose return value
+     *      will be the value of the whole expression. (The builder class and the {@code build()} method is simply
      *      found by name, there's no special interface to implement.)Note that if you have a builder class, you don't
-     *      actually need a <tt><i>className</i></tt> class (since 2.3.24); after all,
-     *      <tt><i>className</i>Builder.build()</tt> can return any kind of object. 
+     *      actually need a <code><i>className</i></code> class (since 2.3.24); after all,
+     *      <code><i>className</i>Builder.build()</code> can return any kind of object. 
      *   </li>
      *   <li>
      *      <p>Currently, the values of arguments and properties can only be one of these:
@@ -1673,7 +1673,7 @@ public abstract class MutableProcessingConfiguration<SelfT extends MutableProces
      *        {@code BigDecimal} and "bi" for {@code BigInteger}.</li>
      *        <li>A boolean literal: {@code true} or {@code false}
      *        <li>The null literal: {@code null}
-     *        <li>A string literal with FTL syntax, except that  it can't contain <tt>${...}</tt>-s.
+     *        <li>A string literal with FTL syntax, except that  it can't contain <code>${...}</code>-s.
      *            Examples: {@code "Line 1\nLine 2"} or {@code r"C:\temp"}.
      *        <li>A list literal (since 2.3.24) with FTL-like syntax, for example {@code [ 'foo', 2, true ]}.
      *            If the parameter is expected to be array, the list will be automatically converted to array.
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/ParsingConfiguration.java b/freemarker-core/src/main/java/org/apache/freemarker/core/ParsingConfiguration.java
index 2f46a83d..4780b7bc 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/ParsingConfiguration.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/ParsingConfiguration.java
@@ -268,7 +268,7 @@ public interface ParsingConfiguration {
      * {@link Configuration} level.
      * <p>
      * Individual templates may specify their own charset by starting with
-     * <tt>&lt;#ftl sourceEncoding="..."&gt;</tt>. However, before that's detected, at least part of template must be
+     * <code>&lt;#ftl sourceEncoding="..."&gt;</code>. However, before that's detected, at least part of template must be
      * decoded with some charset first, so this setting (and
      * {@link Configuration#getTemplateConfigurations() templateConfigurations}) still have role.
      */
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/ProcessingConfiguration.java b/freemarker-core/src/main/java/org/apache/freemarker/core/ProcessingConfiguration.java
index 5cfc05a2..2410e87a 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/ProcessingConfiguration.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/ProcessingConfiguration.java
@@ -559,7 +559,7 @@ public interface ProcessingConfiguration {
      * (and its overloads). Its {@link Configuration}-level default is {@code true}.
      * <p>
      * Using {@code false} is needed for example when a Web page is composed from several boxes (like portlets, GUI
-     * panels, etc.) that aren't inserted with <tt>#include</tt> (or with similar directives) into a master FreeMarker
+     * panels, etc.) that aren't inserted with {@code #include} (or with similar directives) into a master FreeMarker
      * template, rather they are all processed with a separate {@link Template#process(Object, Writer)} call. In a such
      * scenario the automatic flushes would commit the HTTP response after each box, hence interfering with full-page
      * buffering, and also possibly decreasing performance with too frequent and too early response buffer flushes.
@@ -731,7 +731,7 @@ public interface ProcessingConfiguration {
      * @return The value of the custom setting; possibly {@code null}, as that's a legal attribute value. The content
      * of the value object shouldn't be changed after it was added as an attribute (ideally, it should be an
      * immutable object); if you need to change the content, certainly you should use the {@link CustomStateScope}
-     * API. Note that if the custom setting was created with <tt>&lt;#ftl&nbsp;customSettings={...}&gt;</tt>, then
+     * API. Note that if the custom setting was created with <code>&lt;#ftl&nbsp;customSettings={...}&gt;</code>, then
      * this value is already unwrapped (i.e. it's a <code>String</code>, or a <code>List</code>, or a <code>Map</code>,
      * ...etc., not a FreeMarker specific class).
      *
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/StopException.java b/freemarker-core/src/main/java/org/apache/freemarker/core/StopException.java
index 97064565..969098c1 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/StopException.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/StopException.java
@@ -23,7 +23,7 @@ import java.io.PrintStream;
 import java.io.PrintWriter;
 
 /**
- * This exception is thrown when a <tt>#stop</tt> directive is encountered. 
+ * This exception is thrown when a {@code #stop} directive is encountered. 
  */
 public class StopException extends TemplateException {
     
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/Template.java b/freemarker-core/src/main/java/org/apache/freemarker/core/Template.java
index 09c81200..7a3823b5 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/Template.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/Template.java
@@ -467,7 +467,7 @@ public class Template implements ProcessingConfiguration, CustomStateScope {
 
     /**
      * Like {@link #process(Object, Writer)}, but also sets a (XML-)node to be recursively processed by the template.
-     * That node is accessed in the template with <tt>.node</tt>, <tt>#recurse</tt>, etc. See the
+     * That node is accessed in the template with {@code .node}, {@code #recurse}, etc. See the
      * <a href="http://freemarker.org/docs/xgui_declarative.html" target="_blank">Declarative XML Processing</a> as a
      * typical example of recursive node processing.
      * 
@@ -512,7 +512,7 @@ public class Template implements ProcessingConfiguration, CustomStateScope {
     * <pre>
     * myTemplate.process(root, out);</pre>
     * 
-    * <p>But with <tt>createProcessingEnvironment</tt>, you can manipulate the environment
+    * <p>But with {@code createProcessingEnvironment}, you can manipulate the environment
     * before and after the processing:
     * 
     * <pre>
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/debug/DebugModel.java b/freemarker-core/src/main/java/org/apache/freemarker/core/debug/DebugModel.java
index 423a5330..4e0d66e5 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/debug/DebugModel.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/debug/DebugModel.java
@@ -19,12 +19,12 @@
 
 package org.apache.freemarker.core.debug;
 
+import org.apache.freemarker.core.TemplateException;
+
 import java.rmi.Remote;
 import java.rmi.RemoteException;
 import java.util.Date;
 
-import org.apache.freemarker.core.TemplateException;
-
 /**
  * Represents the debugger-side mirror of a TemplateModel object, a Template
  * object, or a Configuration object. The Environment objects are also represented
@@ -33,7 +33,7 @@ import org.apache.freemarker.core.TemplateException;
  * almost all of FreeMarker template models with identical method signatures.
  * For purposes of optimizing network traffic there are bulk retrieval methods
  * for sequences and hashes, as well as a {@link #getModelTypes()} method that
- * returns a bit mask of various <tt>TYPE_xxx</tt> constants flagging which
+ * returns a bit mask of various {@code TYPE_xxx} constants flagging which
  * template models are implemented by the mirrored object.
  */
 public interface DebugModel extends Remote {
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/debug/DebuggerClient.java b/freemarker-core/src/main/java/org/apache/freemarker/core/debug/DebuggerClient.java
index 26d5616a..4e46035d 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/debug/DebuggerClient.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/debug/DebuggerClient.java
@@ -19,6 +19,8 @@
 
 package org.apache.freemarker.core.debug;
 
+import org.apache.freemarker.core.util.UndeclaredThrowableException;
+
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
@@ -31,8 +33,6 @@ import java.security.MessageDigest;
 import java.util.Collection;
 import java.util.List;
 
-import org.apache.freemarker.core.util.UndeclaredThrowableException;
-
 /**
  * A utility class that allows you to connect to the FreeMarker debugger service
  * running on a specific host and port. 
@@ -44,8 +44,8 @@ public class DebuggerClient {
     /**
      * Connects to the FreeMarker debugger service running on a specific host
      * and port. The Java VM to which the connection is made must have defined
-     * the system property <tt>org.apache.freemarker.core.debug.password</tt> in order to enable
-     * the debugger service. Additionally, the <tt>org.apache.freemarker.core.debug.port</tt>
+     * the system property {@code org.apache.freemarker.core.debug.password} in order to enable
+     * the debugger service. Additionally, the {@code org.apache.freemarker.core.debug.port}
      * system property can be set to specify the port where the debugger service
      * is listening. When not specified, it defaults to 
      * {@link Debugger#DEFAULT_PORT}.
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/model/AdapterTemplateModel.java b/freemarker-core/src/main/java/org/apache/freemarker/core/model/AdapterTemplateModel.java
index 9dc65873..ee131523 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/model/AdapterTemplateModel.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/model/AdapterTemplateModel.java
@@ -37,8 +37,8 @@ public interface AdapterTemplateModel extends TemplateModel {
      * class, but if that is impossible, it must at least return the underlying 
      * object as-is. As a minimal requirement, an implementation must always 
      * return the exact underlying object when 
-     * <tt>hint.isInstance(underlyingObject)</tt> holds. When called 
-     * with <tt>java.lang.Object.class</tt>, it should return a generic Java 
+     * {@code hint.isInstance(underlyingObject)} holds. When called 
+     * with {@code java.lang.Object.class}, it should return a generic Java 
      * object (i.e. if the model is wrapping a scripting language object that is
      * further wrapping a Java object, the deepest underlying Java object should
      * be returned). 
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/model/TemplateHashModel.java b/freemarker-core/src/main/java/org/apache/freemarker/core/model/TemplateHashModel.java
index 489d5cc1..2d34d994 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/model/TemplateHashModel.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/model/TemplateHashModel.java
@@ -32,11 +32,11 @@ public interface TemplateHashModel extends TemplateModel {
     TemplateHashModelEx EMPTY_HASH = new EmptyHashModel();
 
     /**
-     * Gets a <tt>TemplateModel</tt> from the hash.
+     * Gets a {@code TemplateModel} from the hash.
      *
-     * @param key the name by which the <tt>TemplateModel</tt>
+     * @param key the name by which the {@code TemplateModel}
      * is identified in the template.
-     * @return the <tt>TemplateModel</tt> referred to by the key,
+     * @return the {@code TemplateModel} referred to by the key,
      * or null if not found.
      */
     TemplateModel get(String key) throws TemplateException;
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/model/TemplateNullModel.java b/freemarker-core/src/main/java/org/apache/freemarker/core/model/TemplateNullModel.java
index d7bbb8da..dac3a484 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/model/TemplateNullModel.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/model/TemplateNullModel.java
@@ -24,7 +24,7 @@ package org.apache.freemarker.core.model;
  * the Java {@code null} value, and {@code null} represents that the value (or rather what holds it) doesn't exist
  * at all.
  *
- * <p>Some examples to make this more understandable:<p>
+ * <p>Some examples to make this more understandable:</p>
  * <ul>
  *   <li>If you try to read the variable {@code myVar}, but such a variable was never declared anywhere, then that's
  *       a {@code null}. If the variable itself exists, but was set to {@code null}, then that's a
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/ArgumentTypes.java b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/ArgumentTypes.java
index 20a2c147..61f390ac 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/ArgumentTypes.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/ArgumentTypes.java
@@ -18,17 +18,17 @@
  */
 package org.apache.freemarker.core.model.impl;
 
+import org.apache.freemarker.core.TemplateException;
+import org.apache.freemarker.core.model.TemplateModel;
+import org.apache.freemarker.core.util.BugException;
+import org.apache.freemarker.core.util._ClassUtils;
+
 import java.lang.reflect.InvocationTargetException;
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 
-import org.apache.freemarker.core.TemplateException;
-import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.util.BugException;
-import org.apache.freemarker.core.util._ClassUtils;
-
 /**
  * The argument types of a method call; usable as cache key.
  */
@@ -439,7 +439,7 @@ final class ArgumentTypes {
      * parameter types represented by this ArgumentTypes object, also tells
      * how difficult that conversion is.
      * 
-     * @return One of the <tt>CONVERSION_DIFFICULTY_...</tt> constants.
+     * @return One of the {@code CONVERSION_DIFFICULTY_...} constants.
      */
     private int isApplicable(ReflectionCallableMemberDescriptor memberDesc, boolean varArg) {
         final Class<?>[] paramTypes = memberDesc.getParamTypes(); 
@@ -492,7 +492,7 @@ final class ArgumentTypes {
      * parameter type should be convertible; possibly a primitive type
      * @param actual the argument type; not a primitive type, maybe {@link Null}.
      * 
-     * @return One of the <tt>CONVERSION_DIFFICULTY_...</tt> constants.
+     * @return One of the {@code CONVERSION_DIFFICULTY_...} constants.
      */
     private int isMethodInvocationConvertible(final Class<?> formal, final Class<?> actual) {
         // Check for identity or widening reference conversion
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/BeanModel.java b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/BeanModel.java
index 585825b8..a74be003 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/BeanModel.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/BeanModel.java
@@ -19,38 +19,24 @@
 
 package org.apache.freemarker.core.model.impl;
 
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
 import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core._DelayedJQuote;
 import org.apache.freemarker.core._DelayedTemplateLanguageTypeDescription;
-import org.apache.freemarker.core.model.AdapterTemplateModel;
-import org.apache.freemarker.core.model.ObjectWrappingException;
-import org.apache.freemarker.core.model.TemplateCollectionModel;
-import org.apache.freemarker.core.model.TemplateFunctionModel;
-import org.apache.freemarker.core.model.TemplateHashModelEx;
-import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.TemplateModelWithAPISupport;
-import org.apache.freemarker.core.model.TemplateStringModel;
-import org.apache.freemarker.core.model.WrapperTemplateModel;
+import org.apache.freemarker.core.model.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.*;
+
 /**
  * A class that will wrap an arbitrary object into {@link org.apache.freemarker.core.model.TemplateHashModel}
  * interface allowing calls to arbitrary property getters and invocation of
  * accessible methods on the object from a template using the
- * <tt>object.foo</tt> to access properties and <tt>object.bar(arg1, arg2)</tt> to
- * invoke methods on it. You can also use the <tt>object.foo[index]</tt> syntax to
+ * {@code object.foo} to access properties and {@code object.bar(arg1, arg2)} to
+ * invoke methods on it. You can also use the {@code object.foo[index]} syntax to
  * access indexed properties. It uses Beans {@link java.beans.Introspector}
  * to dynamically discover the properties and methods. 
  */
@@ -117,12 +103,12 @@ public class BeanModel
      * they reload a web application) and flushes the cache. If no method or
      * property matching the key is found, the framework will try to invoke
      * methods with signature
-     * <tt>non-void-return-type get(java.lang.String)</tt>,
-     * then <tt>non-void-return-type get(java.lang.Object)</tt>, or 
+     * {@code non-void-return-type get(java.lang.String)},
+     * then {@code non-void-return-type get(java.lang.Object)}, or 
      * alternatively (if the wrapped object is a resource bundle) 
-     * <tt>Object get(java.lang.String)</tt>.
+     * {@code Object get(java.lang.String)}.
      * @throws TemplateException if there was no property nor method nor
-     * a generic <tt>get</tt> method to invoke.
+     * a generic {@code get} method to invoke.
      */
     @Override
     public TemplateModel get(String key)
@@ -322,7 +308,7 @@ public class BeanModel
     /**
      * Helper method to support TemplateHashModelEx. Returns the Set of
      * Strings which are available via the TemplateHashModel
-     * interface. Subclasses that override <tt>invokeGenericGet</tt> to
+     * interface. Subclasses that override {@code invokeGenericGet} to
      * provide additional hash keys should also override this method.
      * Also, if this is overwritten, {@link #getHashSize()} should be too.
      */
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapper.java b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapper.java
index 718d3269..1616cabd 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapper.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapper.java
@@ -190,7 +190,7 @@ public class DefaultObjectWrapper implements RichObjectWrapper {
     }
 
     /**
-     * By default returns <tt>this</tt>.
+     * By default returns {@code this}.
      * @see ExtendableBuilder#setOuterIdentity(ObjectWrapper)
      */
     public ObjectWrapper getOuterIdentity() {
@@ -1511,8 +1511,8 @@ public class DefaultObjectWrapper implements RichObjectWrapper {
 
         /**
          * Sets the default date type to use for date models that result from
-         * a plain <tt>java.util.Date</tt> instead of <tt>java.sql.Date</tt> or
-         * <tt>java.sql.Time</tt> or <tt>java.sql.Timestamp</tt>. Default value is
+         * a plain {@code java.util.Date} instead of {@code java.sql.Date} or
+         * {@code java.sql.Time} or {@code java.sql.Timestamp}. Default value is
          * {@link TemplateDateModel#UNKNOWN}.
          * @param defaultDateType the new default date type.
          */
@@ -1583,19 +1583,19 @@ public class DefaultObjectWrapper implements RichObjectWrapper {
          * Specifies if an attempt to read a bean property that doesn't exist in the
          * wrapped object should throw an {@link InvalidPropertyException}.
          *
-         * <p>If this property is <tt>false</tt> (the default) then an attempt to read
+         * <p>If this property is {@code false} (the default) then an attempt to read
          * a missing bean property is the same as reading an existing bean property whose
-         * value is <tt>null</tt>. The template can't tell the difference, and thus always
-         * can use <tt>!'something'</tt> and <tt>??</tt> and similar expressions
+         * value is {@code null}. The template can't tell the difference, and thus always
+         * can use {@code !'something'} and {@code ??} and similar expressions
          * to handle the situation.
          *
-         * <p>If this property is <tt>true</tt> then an attempt to read a bean propertly in
-         * the template (like <tt>myBean.aProperty</tt>) that doesn't exist in the bean
-         * object (as opposed to just holding <tt>null</tt> value) will cause
+         * <p>If this property is {@code true} then an attempt to read a bean propertly in
+         * the template (like {@code myBean.aProperty}) that doesn't exist in the bean
+         * object (as opposed to just holding {@code null} value) will cause
          * {@link InvalidPropertyException}, which can't be suppressed in the template
-         * (not even with <tt>myBean.noSuchProperty!'something'</tt>). This way
-         * <tt>!'something'</tt> and <tt>??</tt> and similar expressions can be used to
-         * handle existing properties whose value is <tt>null</tt>, without the risk of
+         * (not even with {@code myBean.noSuchProperty!'something'}). This way
+         * {@code !'something'} and {@code ??} and similar expressions can be used to
+         * handle existing properties whose value is {@code null}, without the risk of
          * hiding typos in the property names. Typos will always cause error. But mind you, it
          * goes against the basic approach of FreeMarker, so use this feature only if you really
          * know what you are doing.
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/MethodAppearanceFineTuner.java b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/MethodAppearanceFineTuner.java
index 0482878f..397b784f 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/MethodAppearanceFineTuner.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/MethodAppearanceFineTuner.java
@@ -34,35 +34,35 @@ public interface MethodAppearanceFineTuner {
      * Implement this to tweak certain aspects of how methods appear in the
      * data-model. {@link DefaultObjectWrapper} will pass in all Java methods here that
      * it intends to expose in the data-model as methods (so you can do
-     * <tt>obj.foo()</tt> in the template).
+     * {@code obj.foo()} in the template).
      * With this method you can do the following tweaks:
      * <ul>
      *   <li>Hide a method that would be otherwise shown by calling
      *     {@link MethodAppearanceFineTuner.Decision#setExposeMethodAs(String)}
-     *     with <tt>null</tt> parameter. Note that you can't un-hide methods
+     *     with {@code null} parameter. Note that you can't un-hide methods
      *     that are not public or are considered to by unsafe
      *     (like {@link Object#wait()}) because
      *     {@link #process} is not called for those.</li>
      *   <li>Show the method with a different name in the data-model than its
      *     real name by calling
      *     {@link MethodAppearanceFineTuner.Decision#setExposeMethodAs(String)}
-     *     with non-<tt>null</tt> parameter.
+     *     with non-{@code null} parameter.
      *   <li>Create a fake JavaBean property for this method by calling
      *     {@link MethodAppearanceFineTuner.Decision#setExposeAsProperty(PropertyDescriptor)}.
-     *     For example, if you have <tt>int size()</tt> in a class, but you
-     *     want it to be accessed from the templates as <tt>obj.size</tt>,
-     *     rather than as <tt>obj.size()</tt>, you can do that with this
+     *     For example, if you have {@code int size()} in a class, but you
+     *     want it to be accessed from the templates as {@code obj.size},
+     *     rather than as {@code obj.size()}, you can do that with this
      *     (but remember calling
      *     {@link Decision#setMethodShadowsProperty(boolean)
      *     setMethodShadowsProperty(false)} as well, if the method name is exactly
      *     the same as the property name).
      *     The default is {@code null}, which means that no fake property is
      *     created for the method. You need not and shouldn't set this
-     *     to non-<tt>null</tt> for the getter methods of real JavaBean
+     *     to non-{@code null} for the getter methods of real JavaBean
      *     properties, as those are automatically shown as properties anyway.
      *     The property name in the {@link PropertyDescriptor} can be anything,
      *     but the method (or methods) in it must belong to the class that
-     *     is given as the <tt>clazz</tt> parameter or it must be inherited from
+     *     is given as the {@code clazz} parameter or it must be inherited from
      *     that class, or else whatever errors can occur later.
      *     {@link IndexedPropertyDescriptor}-s are supported.
      *     If a real JavaBean property of the same name exists, or a fake property
@@ -72,9 +72,9 @@ public interface MethodAppearanceFineTuner {
      *   <li>Prevent the method to hide a JavaBean property (fake or real) of
      *     the same name by calling
      *     {@link MethodAppearanceFineTuner.Decision#setMethodShadowsProperty(boolean)}
-     *     with <tt>false</tt>. The default is <tt>true</tt>, so if you have
+     *     with {@code false}. The default is {@code true}, so if you have
      *     both a property and a method called "foo", then in the template
-     *     <tt>myObject.foo</tt> will return the method itself instead
+     *     {@code myObject.foo} will return the method itself instead
      *     of the property value, which is often undesirable.
      * </ul>
      * 
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/OverloadedNumberUtils.java b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/OverloadedNumberUtils.java
index bf798490..feababae 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/OverloadedNumberUtils.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/OverloadedNumberUtils.java
@@ -19,13 +19,13 @@
 
 package org.apache.freemarker.core.model.impl;
 
-import java.math.BigDecimal;
-import java.math.BigInteger;
-
 import org.apache.freemarker.core.model.TemplateNumberModel;
 import org.apache.freemarker.core.util._ClassUtils;
 import org.apache.freemarker.core.util._NumberUtils;
 
+import java.math.BigDecimal;
+import java.math.BigInteger;
+
 /**
  * Everything related to coercion to ambiguous numerical types.  
  */
@@ -84,7 +84,7 @@ class OverloadedNumberUtils {
      * type and the coerced type, all encoded into the class of the value, which is used as the overloaded method lookup
      * cache key.
      *  
-     * <p>See also: <tt>src\main\misc\overloadedNumberRules\prices.ods</tt>.
+     * <p>See also: {@code src\main\misc\overloadedNumberRules\prices.ods}.
      * 
      * @param num the number to coerce
      * @param typeFlags the type flags of the target parameter position; see {@link TypeFlags}
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/ResourceBundleModel.java b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/ResourceBundleModel.java
index a9744162..7b8ac36d 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/ResourceBundleModel.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/ResourceBundleModel.java
@@ -19,14 +19,6 @@
 
 package org.apache.freemarker.core.model.impl;
 
-import java.text.MessageFormat;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Map;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-import java.util.Set;
-
 import org.apache.freemarker.core.CallPlace;
 import org.apache.freemarker.core.Environment;
 import org.apache.freemarker.core.TemplateException;
@@ -36,6 +28,9 @@ import org.apache.freemarker.core.model.TemplateFunctionModel;
 import org.apache.freemarker.core.model.TemplateModel;
 import org.apache.freemarker.core.util.CallableUtils;
 
+import java.text.MessageFormat;
+import java.util.*;
+
 /**
  * <p>A hash model that wraps a resource bundle. Makes it convenient to store
  * localized content in the data model. It also acts as a method model that will
@@ -44,10 +39,10 @@ import org.apache.freemarker.core.util.CallableUtils;
  *
  * <p>Typical usages:</p>
  * <ul>
- * <li><tt>bundle.resourceKey</tt> will retrieve the object from resource bundle
- * with key <tt>resourceKey</tt></li>
- * <li><tt>bundle("patternKey", arg1, arg2, arg3)</tt> will retrieve the string
- * from resource bundle with key <tt>patternKey</tt>, and will use it as a pattern
+ * <li>{@code bundle.resourceKey} will retrieve the object from resource bundle
+ * with key {@code resourceKey}</li>
+ * <li>{@code bundle("patternKey", arg1, arg2, arg3)} will retrieve the string
+ * from resource bundle with key {@code patternKey}, and will use it as a pattern
  * for MessageFormat with arguments arg1, arg2 and arg3</li>
  * </ul>
  */
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/SimpleDate.java b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/SimpleDate.java
index 08a6d943..be92b4ce 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/SimpleDate.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/SimpleDate.java
@@ -19,12 +19,12 @@
 
 package org.apache.freemarker.core.model.impl;
 
-import java.io.Serializable;
-
 import org.apache.freemarker.core.model.TemplateDateModel;
 
+import java.io.Serializable;
+
 /**
- * A simple implementation of the <tt>TemplateDateModel</tt>
+ * A simple implementation of the {@code TemplateDateModel}
  * interface. Note that this class is immutable.
  * <p>This class is thread-safe.
  */
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/SimpleHash.java b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/SimpleHash.java
index 47eb1db2..f86d099f 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/SimpleHash.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/SimpleHash.java
@@ -19,21 +19,11 @@
 
 package org.apache.freemarker.core.model.impl;
 
-import java.util.ConcurrentModificationException;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.SortedMap;
-import java.util.TreeMap;
-
 import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core._DelayedJQuote;
-import org.apache.freemarker.core.model.ObjectWrapper;
-import org.apache.freemarker.core.model.TemplateBooleanModel;
-import org.apache.freemarker.core.model.TemplateCollectionModel;
-import org.apache.freemarker.core.model.TemplateHashModelEx;
-import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.WrappingTemplateModel;
+import org.apache.freemarker.core.model.*;
+
+import java.util.*;
 
 /**
  * A simple implementation of the {@link TemplateHashModelEx} interface, using its own underlying {@link Map} or
@@ -154,7 +144,7 @@ public class SimpleHash extends WrappingTemplateModel implements TemplateHashMod
     /**
      * Puts a boolean in the map
      *
-     * @param key the name by which the resulting <tt>TemplateModel</tt>
+     * @param key the name by which the resulting {@code TemplateModel}
      * is identified in the template.
      * @param b the boolean to store.
      */
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/SimpleIterable.java b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/SimpleIterable.java
index 34ce0216..3c23c141 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/SimpleIterable.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/SimpleIterable.java
@@ -19,17 +19,13 @@
 
 package org.apache.freemarker.core.model.impl;
 
+import org.apache.freemarker.core.TemplateException;
+import org.apache.freemarker.core.model.*;
+
 import java.io.Serializable;
 import java.util.Iterator;
 import java.util.List;
 
-import org.apache.freemarker.core.TemplateException;
-import org.apache.freemarker.core.model.ObjectWrapper;
-import org.apache.freemarker.core.model.TemplateIterableModel;
-import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.TemplateModelIterator;
-import org.apache.freemarker.core.model.WrappingTemplateModel;
-
 /**
  * A simple implementation of {@link TemplateIterableModel}.
  * It's able to wrap {@link Iterable}-s and {@link Iterator}-s.
@@ -67,10 +63,10 @@ implements TemplateIterableModel, Serializable {
     /**
      * Retrieves a template model iterator that is used to iterate over the elements in this iterable.
      *  
-     * <p>When you wrap an <tt>Iterator</tt> and you get <tt>TemplateModelIterator</tt> for multiple times,
-     * only one of the returned <tt>TemplateModelIterator</tt> instances can be really used. When you have called a
-     * method of a <tt>TemplateModelIterator</tt> instance, all other instance will throw a
-     * {@link TemplateException} when you try to call their methods, since the wrapped <tt>Iterator</tt>
+     * <p>When you wrap an {@code Iterator} and you get {@code TemplateModelIterator} for multiple times,
+     * only one of the returned {@code TemplateModelIterator} instances can be really used. When you have called a
+     * method of a {@code TemplateModelIterator} instance, all other instance will throw a
+     * {@link TemplateException} when you try to call their methods, since the wrapped {@code Iterator}
      * can't return the first element anymore.
      */
     @Override
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/SimpleNumber.java b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/SimpleNumber.java
index 6f588b66..6ff73227 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/SimpleNumber.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/SimpleNumber.java
@@ -19,13 +19,13 @@
 
 package org.apache.freemarker.core.model.impl;
 
-import java.io.Serializable;
-
 import org.apache.freemarker.core.model.TemplateNumberModel;
 
+import java.io.Serializable;
+
 
 /**
- * A simple implementation of the <tt>TemplateNumberModel</tt>
+ * A simple implementation of the {@code TemplateNumberModel}
  * interface. Note that this class is immutable.
  *
  * <p>This class is thread-safe.
@@ -33,7 +33,7 @@ import org.apache.freemarker.core.model.TemplateNumberModel;
 public final class SimpleNumber implements TemplateNumberModel, Serializable {
 
     /**
-     * @serial the value of this <tt>SimpleNumber</tt> 
+     * @serial the value of this {@code SimpleNumber} 
      */
     private final Number value;
 
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/SimpleString.java b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/SimpleString.java
index 8b91452f..9b167bcb 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/SimpleString.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/SimpleString.java
@@ -19,13 +19,13 @@
 
 package org.apache.freemarker.core.model.impl;
 
-import java.io.Serializable;
-
 import org.apache.freemarker.core.model.TemplateStringModel;
 
+import java.io.Serializable;
+
 /**
- * A simple implementation of the <tt>TemplateStringModel</tt>
- * interface, using a <tt>String</tt>.
+ * A simple implementation of the {@code TemplateStringModel}
+ * interface, using a {@code String}.
  *
  * <p>This class is thread-safe.
  *
@@ -36,13 +36,13 @@ public final class SimpleString
 implements TemplateStringModel, Serializable {
     
     /**
-     * @serial the value of this <tt>SimpleString</tt> if it wraps a
-     * <tt>String</tt>.
+     * @serial the value of this {@code SimpleString} if it wraps a
+     * {@code String}.
      */
     private final String value;
 
     /**
-     * Constructs a <tt>SimpleString</tt> containing a string value.
+     * Constructs a {@code SimpleString} containing a string value.
      * @param value the string value. If this is {@code null}, its value in FTL will be {@code ""}.
      */
     public SimpleString(String value) {
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/StaticModel.java b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/StaticModel.java
index fad96e85..bce3583b 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/StaticModel.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/StaticModel.java
@@ -19,13 +19,6 @@
 
 package org.apache.freemarker.core.model.impl;
 
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
 import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.model.TemplateCollectionModel;
 import org.apache.freemarker.core.model.TemplateFunctionModel;
@@ -34,6 +27,13 @@ import org.apache.freemarker.core.model.TemplateModel;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
 /**
  * Wraps the static fields and methods of a class in a {@link org.apache.freemarker.core.model.TemplateHashModel}.
  * Fields are wrapped using {@link DefaultObjectWrapper#wrap(Object)}, and methods are wrapped into an appropriate
@@ -55,7 +55,7 @@ final class StaticModel implements TemplateHashModelEx {
     }
 
     /**
-     * Returns the field or method named by the <tt>key</tt>
+     * Returns the field or method named by the {@code key}
      * parameter.
      */
     @Override
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/StaticModels.java b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/StaticModels.java
index a7b0b844..0fd5c409 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/StaticModels.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/model/impl/StaticModels.java
@@ -25,9 +25,9 @@ import org.apache.freemarker.core.model.TemplateModel;
 /**
  * Utility class for instantiating {@link StaticModel} instances from
  * templates. If your template's data model contains an instance of
- * StaticModels (named, say <tt>StaticModels</tt>), then you can
+ * StaticModels (named, say {@code StaticModels}), then you can
  * instantiate an arbitrary StaticModel using get syntax (i.e.
- * <tt>StaticModels["java.lang.System"].currentTimeMillis()</tt>).
+ * {@code StaticModels["java.lang.System"].currentTimeMillis()}).
  */
 class StaticModels extends ClassBasedModelFactory {
     
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLoader.java b/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLoader.java
index f835c255..9f5989d5 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLoader.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLoader.java
@@ -18,13 +18,13 @@
  */
 package org.apache.freemarker.core.templateresolver;
 
-import java.io.IOException;
-import java.io.Serializable;
-
 import org.apache.freemarker.core.Configuration;
 import org.apache.freemarker.core.TemplateNotFoundException;
 import org.apache.freemarker.core.templateresolver.impl.DefaultTemplateResolver;
 
+import java.io.IOException;
+import java.io.Serializable;
+
 /**
  * FreeMarker loads template "files" through objects that implement this interface, thus the templates need not be real
  * files, and can come from any kind of data source (like classpath, servlet context, database, etc). While FreeMarker
@@ -73,7 +73,7 @@ public interface TemplateLoader {
      *            loader-defined root location (often referred as the "template root directory"), and will never start
      *            with a slash, nor will they contain a path component consisting of either a single or a double dot --
      *            these are all resolved by the template cache before passing the name to the loader. As a side effect,
-     *            paths that trivially reach outside template root directory, such as <tt>../my.f3ah</tt>, will be
+     *            paths that trivially reach outside template root directory, such as {@code ../my.f3ah}, will be
      *            rejected by the template cache, so they never reach the template loader. Note again, that if the path
      *            uses backslash as path separator instead of slash as (the template loader should not accept that), the
      *            normalization will not properly happen, as FreeMarker (the cache) recognizes only the slashes as
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/util/DeepUnwrap.java b/freemarker-core/src/main/java/org/apache/freemarker/core/util/DeepUnwrap.java
index 0a90ec6c..9d4ff5ad 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/util/DeepUnwrap.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/util/DeepUnwrap.java
@@ -19,27 +19,16 @@
 
 package org.apache.freemarker.core.util;
 
+import org.apache.freemarker.core.TemplateException;
+import org.apache.freemarker.core.model.*;
+import org.apache.freemarker.core.model.TemplateHashModelEx.KeyValuePair;
+import org.apache.freemarker.core.model.TemplateHashModelEx.KeyValuePairIterator;
+
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
-import org.apache.freemarker.core.TemplateException;
-import org.apache.freemarker.core.model.AdapterTemplateModel;
-import org.apache.freemarker.core.model.TemplateBooleanModel;
-import org.apache.freemarker.core.model.TemplateDateModel;
-import org.apache.freemarker.core.model.TemplateHashModelEx;
-import org.apache.freemarker.core.model.TemplateHashModelEx.KeyValuePair;
-import org.apache.freemarker.core.model.TemplateHashModelEx.KeyValuePairIterator;
-import org.apache.freemarker.core.model.TemplateIterableModel;
-import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.TemplateModelIterator;
-import org.apache.freemarker.core.model.TemplateNullModel;
-import org.apache.freemarker.core.model.TemplateNumberModel;
-import org.apache.freemarker.core.model.TemplateSequenceModel;
-import org.apache.freemarker.core.model.TemplateStringModel;
-import org.apache.freemarker.core.model.WrapperTemplateModel;
-
 /**
  * Utility methods for unwrapping {@link TemplateModel}-s.
  */
@@ -50,7 +39,7 @@ public class DeepUnwrap {
      * The converting of the {@link TemplateModel} object happens with the following rules:
      * <ol>
      *   <li>If the object implements {@link AdapterTemplateModel}, then the result
-     *       of {@link AdapterTemplateModel#getAdaptedObject(Class)} for <tt>Object.class</tt> is returned.
+     *       of {@link AdapterTemplateModel#getAdaptedObject(Class)} for {@code Object.class} is returned.
      *   <li>If the object implements {@link WrapperTemplateModel}, then the result
      *       of {@link WrapperTemplateModel#getWrappedObject()} is returned.
      *   <li>If the object is identical to the null model of the current object 
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_StringUtils.java b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_StringUtils.java
index c427cef5..b504dcd3 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_StringUtils.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_StringUtils.java
@@ -219,8 +219,8 @@ public class _StringUtils {
     }
 
     /**
-     *  XML encoding for attribute values quoted with <tt>"</tt> (not with <tt>'</tt>!).
-     *  Also can be used for HTML attributes that are quoted with <tt>"</tt>.
+     *  XML encoding for attribute values quoted with {@code "} (not with {@code '}!).
+     *  Also can be used for HTML attributes that are quoted with {@code "}.
      *  @see #XMLEnc(String)
      */
     public static String XMLEncQAttr(String s) {
@@ -710,7 +710,7 @@ public class _StringUtils {
      *
      * <p>All characters under UCS code point 0x20 will be escaped.
      * Where they have no dedicated escape sequence in Java, they will
-     * be replaced with hexadecimal escape (<tt>\</tt><tt>u<i>XXXX</i></tt>).
+     * be replaced with hexadecimal escape ({@code \}<code>u<i>XXXX</i></code>).
      *
      * @see #jQuote(String)
      */
@@ -802,44 +802,45 @@ public class _StringUtils {
      * touching pieces that were escaped with this, no character sequence can occur that closes the
      * JavaScript/JSON string literal, or has a meaning in HTML/XML that causes the HTML script section to be closed.
      * (If, however, the escaped section is preceded by or followed by strings from other sources, this can't be
-     * guaranteed in some rare cases. Like <tt>x = "&lt;/${a?js_string}"</tt> might closes the "script"
+     * guaranteed in some rare cases. Like <code>x = "&lt;/${a?js_string}"</code> might closes the "script"
      * element if {@code a} is {@code "script>"}.)
      *
      * The escaped characters are:
      *
-     * <table style="width: auto; border-collapse: collapse" border="1" summary="Characters escaped by jsStringEnc">
+     * <table style="width: auto; border-collapse: collapse" border="1">
+     * <caption style="display: none">Characters escaped by jsStringEnc</caption>
      * <tr>
      *   <th>Input
      *   <th>Output
      * <tr>
-     *   <td><tt>"</tt>
-     *   <td><tt>\"</tt>
+     *   <td>{@code "}
+     *   <td>{@code \"}
      * <tr>
-     *   <td><tt>'</tt> if not in JSON-mode, nor is the {@code quited} argument {@code true}
-     *   <td><tt>\'</tt>
+     *   <td>{@code '} if not in JSON-mode, nor is the {@code quited} argument {@code true}
+     *   <td>{@code \'}
      * <tr>
-     *   <td><tt>\</tt>
-     *   <td><tt>\\</tt>
+     *   <td>{@code \}
+     *   <td>{@code \\}
      * <tr>
-     *   <td><tt>/</tt> if the method can't know that it won't be directly after <tt>&lt;</tt>
-     *   <td><tt>\/</tt>
+     *   <td>{@code /} if the method can't know that it won't be directly after <code>&lt;</code>
+     *   <td>{@code \/}
      * <tr>
-     *   <td><tt>&gt;</tt> if the method can't know that it won't be directly after <tt>]]</tt> or <tt>--</tt>
-     *   <td>JavaScript: <tt>\&gt;</tt>; JSON: <tt>\</tt><tt>u003E</tt>
+     *   <td><code>&gt;</code> if the method can't know that it won't be directly after {@code ]]} or {@code --}
+     *   <td>JavaScript: <code>\&gt;</code>; JSON: {@code \}{@code u003E}
      * <tr>
-     *   <td><tt>&lt;</tt> if the method can't know that it won't be directly followed by <tt>!</tt> or <tt>?</tt>
-     *   <td><tt><tt>\</tt>u003C</tt>
+     *   <td><code>&lt;</code> if the method can't know that it won't be directly followed by {@code !} or {@code ?}
+     *   <td><code>\{@code u}003C</code>
      * <tr>
      *   <td>
      *     u0000-u001f (UNICODE control characters - disallowed by JSON)<br>
      *     u007f-u009f (UNICODE control characters - disallowed by JSON)
-     *   <td><tt>\n</tt>, <tt>\r</tt> and such, or if there's no such dedicated escape:
-     *       JavaScript: <tt>\x<i>XX</i></tt>, JSON: <tt>\<tt>u</tt><i>XXXX</i></tt>
+     *   <td>{@code \n}, {@code \r} and such, or if there's no such dedicated escape:
+     *       JavaScript: <code>\x<i>XX</i></code>, JSON: <code>\{@code u}<i>XXXX</i></code>
      * <tr>
      *   <td>
      *     u2028 (Line separator - source code line-break in ECMAScript)<br>
      *     u2029 (Paragraph separator - source code line-break in ECMAScript)<br>
-     *   <td><tt>\<tt>u</tt><i>XXXX</i></tt>
+     *   <td><code>\{@code u}<i>XXXX</i></code>
      * </table>
      *
      * @param s The string to escape
@@ -978,7 +979,7 @@ public class _StringUtils {
     /**
      * Parses a name-value pair list, where the pairs are separated with comma,
      * and the name and value is separated with colon.
-     * The keys and values can contain only letters, digits and <tt>_</tt>. They
+     * The keys and values can contain only letters, digits and {@code _}. They
      * can't be quoted. White-space around the keys and values are ignored. The
      * value can be omitted if <code>defaultValue</code> is not null. When a
      * value is omitted, then the colon after the key must be omitted as well.
diff --git a/freemarker-core/src/main/javacc/org/apache/freemarker/core/FTL.jj b/freemarker-core/src/main/javacc/org/apache/freemarker/core/FTL.jj
index 0ebf6206..69bd6559 100644
--- a/freemarker-core/src/main/javacc/org/apache/freemarker/core/FTL.jj
+++ b/freemarker-core/src/main/javacc/org/apache/freemarker/core/FTL.jj
@@ -1989,7 +1989,7 @@ ASTExpression BuiltIn(ASTExpression lhoExp) :
 
 
 /**
- * production for when a key is specified by <DOT> + keyname
+ * production for when a key is specified by {@code <DOT>} + keyname
  */
 ASTExpression DotVariable(ASTExpression exp) :
 {
diff --git a/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/AllHttpScopesHashModel.java b/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/AllHttpScopesHashModel.java
index 819458ac..80e0f9a6 100644
--- a/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/AllHttpScopesHashModel.java
+++ b/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/AllHttpScopesHashModel.java
@@ -19,28 +19,27 @@
 
 package org.apache.freemarker.servlet;
 
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-
 import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.model.ObjectWrapper;
 import org.apache.freemarker.core.model.TemplateModel;
 import org.apache.freemarker.core.model.impl.SimpleHash;
 
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * An extension of SimpleHash that looks up keys in the hash, then in the
  * request, session, and servlet context scopes. Makes "Application", "Session"
  * and "Request" keys largely obsolete, however we keep them for backward
  * compatibility (also, "Request" is required for proper operation of JSP
  * taglibs).
- * It is on purpose that we didn't override <tt>keys</tt> and <tt>values</tt>
+ * It is on purpose that we didn't override {@code keys} and {@code values}
  * methods. That way, only those variables assigned into the hash directly by a
- * subclass of <tt>FreemarkerServlet</tt> that overrides
- * <tt>preTemplateProcess</tt>) are discovered as "page" variables by the FM
+ * subclass of {@code FreemarkerServlet} that overrides
+ * {@code preTemplateProcess}) are discovered as "page" variables by the FM
  * JSP PageContext implementation.
  */
 public class AllHttpScopesHashModel extends SimpleHash {
@@ -63,8 +62,8 @@ public class AllHttpScopesHashModel extends SimpleHash {
     }
     
     /**
-     * Stores a model in the hash so that it doesn't show up in <tt>keys()</tt>
-     * and <tt>values()</tt> methods. Used to put the Application, Session,
+     * Stores a model in the hash so that it doesn't show up in {@code keys()}
+     * and {@code values()} methods. Used to put the Application, Session,
      * Request, RequestParameters and JspTaglibs objects.
      * @param key the key under which the model is stored
      * @param model the stored model
diff --git a/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/FreemarkerServlet.java b/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/FreemarkerServlet.java
index 4fa8cd20..b7301fb2 100644
--- a/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/FreemarkerServlet.java
+++ b/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/FreemarkerServlet.java
@@ -104,9 +104,9 @@ import java.util.regex.Pattern;
  * this is interpreted as a {@link ServletContext} resource path, which practically means a web application directory
  * relative path, or a {@code WEB-INF/lib/*.jar/META-INF/resources}-relative path (note that this last haven't always
  * worked before FreeMarker 2.3.23).<br>
- * Alternatively, you can prepend it with <tt>file://</tt> to indicate a literal path in the file system (i.e.
- * <tt>file:///var/www/project/templates/</tt>). Note that three slashes were used to specify an absolute path.<br>
- * Also, you can prepend it with {@code classpath:}, like in <tt>classpath:com/example/templates</tt>, to indicate that
+ * Alternatively, you can prepend it with {@code file://} to indicate a literal path in the file system (i.e.
+ * {@code file:///var/www/project/templates/}). Note that three slashes were used to specify an absolute path.<br>
+ * Also, you can prepend it with {@code classpath:}, like in {@code classpath:com/example/templates}, to indicate that
  * you want to load templates from the specified package accessible through the Thread Context Class Loader of the
  * thread that initializes this servlet.<br>
  * If {@code incompatibleImprovements} is set to 2.3.22 (or higher), you can specify multiple comma separated locations
@@ -119,10 +119,10 @@ import java.util.regex.Pattern;
  * {@link WebAppTemplateLoader#setAttemptFileAccess(boolean)} and
  * {@link WebAppTemplateLoader#setURLConnectionUsesCaches(Boolean)} to tune the {@link WebAppTemplateLoader}. For
  * backward compatibility (not recommended!), you can use the {@code class://} prefix, like in
- * <tt>class://com/example/templates</tt> format, which is similar to {@code classpath:}, except that it uses the
+ * {@code class://com/example/templates} format, which is similar to {@code classpath:}, except that it uses the
  * defining class loader of this servlet's class. This can cause template-not-found errors, if that class (in
  * {@code freemarer.jar} usually) is not local to the web application, while the templates are.<br>
- * The default value is <tt>class://</tt> (that is, the root of the class hierarchy), which is not recommended anymore,
+ * The default value is {@code class://} (that is, the root of the class hierarchy), which is not recommended anymore,
  * and should be overwritten with the {@value #INIT_PARAM_TEMPLATE_PATH} init-param.</li>
  * 
  * <li><strong>{@value #INIT_PARAM_NO_CACHE}</strong>: If set to {@code true}, generates headers in the response that
@@ -136,8 +136,8 @@ import java.util.regex.Pattern;
  * <li>If the {@value #INIT_PARAM_OVERRIDE_RESPONSE_CONTENT_TYPE} init-param is {@value #INIT_PARAM_VALUE_NEVER} (the
  * default is {@value #INIT_PARAM_VALUE_ALWAYS}), then the value of {@link HttpServletResponse#getContentType()} is used
  * if that's non-{@code null}.
- * <li>The template's <tt>content_type</tt> custom setting, usually specified via the <tt>attributes</tt> parameter of
- * the <tt>&lt;#ftl&gt;</tt> directive. This is a legacy feature, deprecated by the {@link OutputFormat} mechanism.
+ * <li>The template's {@code content_type} custom setting, usually specified via the {@code attributes} parameter of
+ * the <code>&lt;#ftl&gt;</code> directive. This is a legacy feature, deprecated by the {@link OutputFormat} mechanism.
  * <li>The {@linkplain Template#getOutputFormat() output format of the template}, if that has non-{@code null} MIME-type
  * ({@link OutputFormat#getMimeType()}). When a template has no output format specified, {@link UndefinedOutputFormat}
  * is used, which has {@code null} MIME-type. (The output format of a template is deduced from {@link Configuration}
@@ -148,9 +148,9 @@ import java.util.regex.Pattern;
  * (the default is {@value #INIT_PARAM_VALUE_ALWAYS}), then the value of {@link HttpServletResponse#getContentType()} is
  * used if that's non-{@code null}.
  * </ol>
- * If none of the above gives a MIME type, then this init-param does. Defaults to <tt>"text/html"</tt>. If and only if
+ * If none of the above gives a MIME type, then this init-param does. Defaults to {@code "text/html"}. If and only if
  * the {@value #INIT_PARAM_RESPONSE_CHARACTER_ENCODING} init-param is set to {@value #INIT_PARAM_VALUE_LEGACY} (which is
- * the default of it), the content type may include the charset (as in <tt>"text/html; charset=utf-8"</tt>), in which
+ * the default of it), the content type may include the charset (as in {@code "text/html; charset=utf-8"}), in which
  * case that specifies the actual charset of the output. If the the {@value #INIT_PARAM_RESPONSE_CHARACTER_ENCODING}
  * init-param is not set to {@value #INIT_PARAM_VALUE_LEGACY}, then specifying the charset in the
  * {@value #INIT_PARAM_CONTENT_TYPE} init-param is not allowed, and will cause servlet initialization error.</li>
@@ -162,7 +162,7 @@ import java.util.regex.Pattern;
  * type in the response, unless {@link HttpServletResponse#getContentType()} is {@code null}. The third possible value
  * is {@value #INIT_PARAM_VALUE_WHEN_TEMPLATE_HAS_MIME_TYPE}, which means that we only set the content type if either
  * the template has an associated {@link OutputFormat} with non-{@code null} {@link OutputFormat#getMimeType()}, or it
- * has a custom setting with name <tt>content_type</tt>, or {@link HttpServletResponse#getContentType()} is
+ * has a custom setting with name {@code content_type}, or {@link HttpServletResponse#getContentType()} is
  * {@code null}. Setting this init-param allows you to specify the content type before forwarding to
  * {@link FreemarkerServlet}.</li>
  *
diff --git a/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/EventForwarding.java b/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/EventForwarding.java
index c3c48857..4123f169 100644
--- a/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/EventForwarding.java
+++ b/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/EventForwarding.java
@@ -19,27 +19,22 @@
 
 package org.apache.freemarker.servlet.jsp;
 
-import java.util.ArrayList;
-import java.util.EventListener;
-import java.util.Iterator;
-import java.util.List;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
-import javax.servlet.ServletContext;
-import javax.servlet.ServletContextAttributeEvent;
-import javax.servlet.ServletContextAttributeListener;
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
+import javax.servlet.*;
 import javax.servlet.http.HttpSessionAttributeListener;
 import javax.servlet.http.HttpSessionBindingEvent;
 import javax.servlet.http.HttpSessionEvent;
 import javax.servlet.http.HttpSessionListener;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.util.ArrayList;
+import java.util.EventListener;
+import java.util.Iterator;
+import java.util.List;
 
 /**
- * An instance of this class should be registered as a <tt>&lt;listener&gt;</tt> in
- * the <tt>web.xml</tt> descriptor in order to correctly dispatch events to
+ * An instance of this class should be registered as a <code>&lt;listener&gt;</code> in
+ * the {@code web.xml} descriptor in order to correctly dispatch events to
  * event listeners that are specified in TLD files.
  */
 public class EventForwarding
diff --git a/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/TaglibFactory.java b/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/TaglibFactory.java
index c34aab26..f7034d3e 100644
--- a/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/TaglibFactory.java
+++ b/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/TaglibFactory.java
@@ -19,35 +19,32 @@
 
 package org.apache.freemarker.servlet.jsp;
 
+import org.apache.freemarker.core.ConfigurationException;
+import org.apache.freemarker.core.Environment;
+import org.apache.freemarker.core.TemplateException;
+import org.apache.freemarker.core.model.*;
+import org.apache.freemarker.core.model.impl.DefaultObjectWrapper;
+import org.apache.freemarker.core.util.*;
+import org.apache.freemarker.servlet.FreemarkerServlet;
+import org.apache.freemarker.servlet.HttpRequestHashModel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.xml.sax.*;
+import org.xml.sax.helpers.DefaultHandler;
+
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.jsp.tagext.Tag;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParserFactory;
 import java.beans.IntrospectionException;
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FilenameFilter;
-import java.io.FilterInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
+import java.io.*;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
-import java.net.JarURLConnection;
-import java.net.MalformedURLException;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.net.URLDecoder;
-import java.net.URLEncoder;
+import java.net.*;
 import java.nio.charset.Charset;
 import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.Stack;
-import java.util.TreeSet;
+import java.util.*;
 import java.util.jar.JarEntry;
 import java.util.jar.JarFile;
 import java.util.regex.Pattern;
@@ -55,39 +52,6 @@ import java.util.zip.ZipEntry;
 import java.util.zip.ZipException;
 import java.util.zip.ZipInputStream;
 
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.jsp.tagext.Tag;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.apache.freemarker.core.ConfigurationException;
-import org.apache.freemarker.core.Environment;
-import org.apache.freemarker.core.TemplateException;
-import org.apache.freemarker.core.model.ObjectWrapper;
-import org.apache.freemarker.core.model.TemplateDirectiveModel;
-import org.apache.freemarker.core.model.TemplateFunctionModel;
-import org.apache.freemarker.core.model.TemplateHashModel;
-import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.impl.DefaultObjectWrapper;
-import org.apache.freemarker.core.util.BugException;
-import org.apache.freemarker.core.util.CommonBuilder;
-import org.apache.freemarker.core.util._ClassUtils;
-import org.apache.freemarker.core.util._NullArgumentException;
-import org.apache.freemarker.core.util._StringUtils;
-import org.apache.freemarker.servlet.FreemarkerServlet;
-import org.apache.freemarker.servlet.HttpRequestHashModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.xml.sax.Attributes;
-import org.xml.sax.EntityResolver;
-import org.xml.sax.InputSource;
-import org.xml.sax.Locator;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.DefaultHandler;
-
 /**
  * A hash model associated with a servlet context that can load JSP tag libraries associated with that servlet context.
  * An instance of this class is made available in the root data model of templates executed by
@@ -227,7 +191,7 @@ public class TaglibFactory implements TemplateHashModel {
      *            {@code http://example.com/foo}), root relative URI (like {@code /bar/foo.tld}) and non-root relative
      *            URI (like {@code bar/foo.tld}). Note that if a non-root relative URI is used it's resolved relative to
      *            the URL of the current request. In this case, the current request is obtained by looking up a
-     *            {@link HttpRequestHashModel} object named <tt>Request</tt> in the root data model.
+     *            {@link HttpRequestHashModel} object named {@code Request} in the root data model.
      *            {@link FreemarkerServlet} provides this object under the expected name, and custom servlets that want
      *            to integrate JSP taglib support should do the same.
      * 
@@ -1134,7 +1098,7 @@ public class TaglibFactory implements TemplateHashModel {
     }
 
     /**
-     * To search TLD-s under <tt>sevletContext:/WEB-INF/lib/*.{jar,zip}/META-INF/**</tt><tt>/*.tld</tt>, as requested by
+     * To search TLD-s under <code>sevletContext:/WEB-INF/lib/*.{jar,zip}/META-INF/**</code>{@code /*.tld}, as requested by
      * the JSP specification. Note that these also used to be in the classpath, so it's redundant to use this together
      * with a sufficiently permissive {@link ClasspathMetaInfTldSource}.
      */
diff --git a/freemarker-test-utils/src/main/java/org/apache/freemarker/test/TemplateTestSuite.java b/freemarker-test-utils/src/main/java/org/apache/freemarker/test/TemplateTestSuite.java
index 8041db57..ac50fa73 100644
--- a/freemarker-test-utils/src/main/java/org/apache/freemarker/test/TemplateTestSuite.java
+++ b/freemarker-test-utils/src/main/java/org/apache/freemarker/test/TemplateTestSuite.java
@@ -49,10 +49,10 @@ import java.util.regex.Pattern;
  * To add a test-case, go to the resource directory that corresponds to the package of the {@link TemplateTestSuite}
  * subclass and inside that directory:</p>
  * <ol>
- * <li>Add a new <tt>testcase</tt> element to <tt>testcases.xml</tt></li>
- * <li>Add a template to <tt>templates/</tt> with fits the <tt>testcase</tt> added to the XML (by default it's the test
+ * <li>Add a new {@code testcase} element to {@code testcases.xml}</li>
+ * <li>Add a template to {@code templates/} with fits the {@code testcase} added to the XML (by default it's the test
  * case name + ".f3ac")</li>
- * <li>Add the expected output to <tt>references/</tt> with fits the <tt>testcase</tt> added to the XML (by default
+ * <li>Add the expected output to {@code references/} with fits the {@code testcase} added to the XML (by default
  * it's the test name + ".txt")</li>
  * <li>If you want to add items to the data-model or change the {@link Configuration}, modify the
  * {@link #setUpTestCase(String, Map, Configuration.ExtendableBuilder)}} method in the {@link TemplateTestSuite}


(freemarker) 02/02: Gradle build: All javadoc "lint" check were disabled accidentally, instead of just "missing" (tested it, and it didn't stop at HTML errors without adding "all,")

Posted by dd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ddekany pushed a commit to branch 3
in repository https://gitbox.apache.org/repos/asf/freemarker.git

commit a5db56197ef658f61804918b933eb4f824781605
Author: ddekany <dd...@apache.org>
AuthorDate: Sat Dec 9 20:13:24 2023 +0100

    Gradle build: All javadoc "lint" check were disabled accidentally, instead of just "missing" (tested it, and it didn't stop at HTML errors without adding "all,")
---
 .../freemarker/build/module/common/JavadocStyleAdjustments.kt     | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/buildSrc/module-common/src/main/kotlin/org/apache/freemarker/build/module/common/JavadocStyleAdjustments.kt b/buildSrc/module-common/src/main/kotlin/org/apache/freemarker/build/module/common/JavadocStyleAdjustments.kt
index 1ed2b6e6..e4a11fc3 100644
--- a/buildSrc/module-common/src/main/kotlin/org/apache/freemarker/build/module/common/JavadocStyleAdjustments.kt
+++ b/buildSrc/module-common/src/main/kotlin/org/apache/freemarker/build/module/common/JavadocStyleAdjustments.kt
@@ -19,14 +19,14 @@
 
 package org.apache.freemarker.build.module.common
 
-import java.nio.charset.Charset
-import java.nio.charset.StandardCharsets
-import java.nio.file.Files
 import org.gradle.api.Action
 import org.gradle.api.Task
 import org.gradle.api.plugins.JavaBasePlugin
 import org.gradle.api.tasks.javadoc.Javadoc
 import org.gradle.external.javadoc.StandardJavadocDocletOptions
+import java.nio.charset.Charset
+import java.nio.charset.StandardCharsets
+import java.nio.file.Files
 
 fun configureJavadocDefaults(javadoc: Javadoc) {
     javadoc.group = JavaBasePlugin.DOCUMENTATION_GROUP
@@ -46,7 +46,7 @@ fun configureJavadocDefaults(javadoc: Javadoc) {
         charSet = javadocEncoding.name()
 
         // There are too many to check
-        addStringOption("Xdoclint:-missing", "-quiet")
+        addStringOption("Xdoclint:all,-missing", "-quiet")
     }
 
     javadoc.doLast(JavadocStyleAdjustments())