Merge branch '1.9.x'
diff --git a/.asf.yaml b/.asf.yaml
new file mode 100644
index 0000000..249a851
--- /dev/null
+++ b/.asf.yaml
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+github:
+  description: "Apache Ant is a Java-based build tool."
+  homepage: https://ant.apache.org/
+  labels:
+    - java
+    - build
+    - apache
diff --git a/.gitignore b/.gitignore
index 80d1425..2ad4e31 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,6 +5,7 @@
 *.snap
 .ant.properties
 .classpath
+.DS_Store
 .project
 .settings
 bin
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 79f94be..236b6dc 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -6,7 +6,7 @@
 hear from you.
 
 Ant's primary code repository is the
-[git repository at Apache](https://git-wip-us.apache.org/repos/asf/ant.git)
+[git repository at Apache](https://gitbox.apache.org/repos/asf/ant.git)
 and we've also got a [github mirror](https://github.com/apache/ant/).
 
 There are two ways you can contribute, you can either use the
@@ -15,19 +15,32 @@
 use github issues, so if you are reporting a bug, please raise a
 [Bugzilla issue](https://issues.apache.org/bugzilla/).
 
-Before reporting a bug, please also review http://ant.apache.org/problems.html
+Before reporting a bug, please also review https://ant.apache.org/problems.html
 
-If you're planning to implement a new feature please discuss you're
+If you're planning to implement a new feature please discuss your
 changes on the
-[dev list](http://ant.apache.org/mail.html#Developer%20List:%20dev@ant.apache.org)
+[dev list](https://ant.apache.org/mail.html#Developer%20List:%20dev@ant.apache.org)
 first. This way you can make sure you're not wasting your time on
 something that isn't considered to be in Ant's scope.
 
+Branches
+--------
+
+The master branch is where we develop the next release of Ant 1.10.x -
+any patch or PR against this branch must be buildable using Java8.
+
+The branch 1.9.x is where we develop the next release of Ant 1.9.x -
+any patch or PR against this branch must be buildable using Java5.
+
+Please state clearly whether you are targeting 1.9.x or 1.10.x -
+usually we port changes from 1.9.x to 1.10.x but not necessarily the
+other way around.
+
 Making Changes
 --------------
 
 + Create a topic branch from where you want to base your work (this is
-  usually the master branch).
+  usually the master or the 1.9.x branch, see above).
 + Make commits of logical units.
 + Respect the original code style:
   + Only use spaces for indentation.
@@ -52,4 +65,4 @@
 + Alternatively push your changes to a topic branch in your fork of the repository.
   + Submit a pull request to the repository in the apache organization.
 
-[cla]:http://www.apache.org/licenses/#clas
+[cla]:https://www.apache.org/licenses/#clas
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 7005c75..0a9026a 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -2,10 +2,14 @@
 
 Adam Blinkinsop
 Adam Bryzak
+Adam Murdoch
+Adam Retter
 Adam Sotona
 Adrian Nistor
+Adrien Grand
 Aleksandr Ishutin
 Alex Rosen
+Alexander Grund
 Alexei Yudichev
 Alexey Panchenko
 Alexey Solofnenko
@@ -27,17 +31,20 @@
 Antoine Baudoux
 Antoine Levy-Lambert
 Anton Mazkovoi
+Arcadius Ahouansou
 Arjan Veenstra
 Arnaud Vandyck
 Arnout J. Kuiper
+Arun Jamwal
 Aslak Hellesôy
 Atsuhiko Yamanaka
 Avik Sengupta
 Balazs Fejes 2
+barney2k7
 Bart Vanhaute
-Benjamin Burgess
 Ben Galbraith
 Ben Gertzfield
+Benjamin Burgess
 Benoit Moussaud
 Bernd Dutkowski
 Bernhard Rosenkraenzer
@@ -49,6 +56,7 @@
 Brian Repko
 Bruce Atherton
 Cedomir Igaly
+Charles Duffy
 Charles Hudak
 Charlie Hubbard
 Chris Hegarty
@@ -65,9 +73,11 @@
 Clement OUDOT
 Clive Brettingham-Moore
 Conor MacNeill
+Costin Manolache
 Craeg Strong
 Craig Cottingham
 Craig R. McClanahan
+Craig Pell
 Craig Richardson
 Craig Ryan
 Craig Sandvik
@@ -86,6 +96,7 @@
 Danno Ferrin
 Danny Yates
 Dante Briones
+Darrell DeBoer
 Davanum Srinivas
 Dave Brondsema
 Dave Brosius
@@ -106,10 +117,11 @@
 dIon Gillard
 Dmitry A. Kuminov
 Dominique Devienne
-Donal Quinlan
 Don Brown
 Don Ferguson
 Don Jeffery
+Donal Quinlan
+Donald Leslie
 Drew Sudell
 Earl Hood
 Edison Guo
@@ -117,6 +129,7 @@
 Edwin Woudt
 Eli Tucker
 Emmanuel Bourg
+Eugène Adell
 Eric Barboni
 Eric Olsen
 Eric Pugh
@@ -129,9 +142,10 @@
 Frank Harnack
 Frank Somers
 Frank Zeyda
-Frantisek Kucera
-Frederic Bothamy
+František Kučera
+Frédéric Bothamy
 Frederic Lavigne
+Gal Shachor
 Gary S. Weaver
 Gautam Guliani
 Gene-Sung Chung
@@ -162,9 +176,12 @@
 Issa Gorissen
 Ivan Ivanov
 J Bleijenbergh
+JC Mann
 Jack J. Woehr
+Jacobus Martinus Kruithof
 Jaikiran Pai
 James Duncan Davidson
+James Todd
 Jan Cumps
 Jan Matèrne
 Jan Mynarik
@@ -176,8 +193,6 @@
 Jay Dickon Glanville
 Jay Peck
 Jay van der Meer
-JC Mann
-J D Glanville
 Jean-Francois Brousseau
 Jean-Louis Boudart
 Jeff Gettle
@@ -192,21 +207,24 @@
 Jesse Stockall
 Jim Allers
 Jimmy Casey
-Joerg Wassmer
 Joel Tucci
+Joerg Wassmer
 Joey Richey
 Johann Herunter
 John Elion
 John Sisson
 Jon Dickinson
-Jon S. Stevens
 Jon Skeet
+Jon S. Stevens
+Jonathan K. Schneider
 Jose Alberto Fernandez
 Joseph Walton
 Josh Lucas
 Juerg Wanner
 Julian Simpson
+Julien Lepiller
 Justin Vallon
+Justyna Horwat
 Karl Jansen
 Keiron Liddle
 Keith Visco
@@ -214,7 +232,7 @@
 Kevin Greiner
 Kevin Jackson
 Kevin Ross
-Kevin Z Grey
+Kevin Z. Grey
 Kim Hansen
 Kirk Wylie
 Kristian Rosenvold
@@ -231,12 +249,14 @@
 Maarten Coene
 Magesh Umasankar
 Maneesh Sahu
+Marc Guillemot
 Marcel Schutte
-Marcus Börger
+Marcus Börger
 Mario Frasca 
 Mariusz Nowostawski
 Mark A. Ziesemer
 Mark DeLaFranier
+Mark Harmer
 Mark Hecker
 Mark Niggemann
 Mark R. Diggory
@@ -260,9 +280,11 @@
 Matthew Hawthorne
 Matthew Inger
 Matthew Kuperus Heun
+Matthew Warman
 Matthew Watson
 Matthew Yanos
 Matthias Bhend
+Matthias Gutheil
 Michael Bayne
 Michael Clarke
 Michael Davey
@@ -270,32 +292,36 @@
 Michael McCallum
 Michael Montuori
 Michael Newcomb
-Micheal Nygard
+Michael Nygard
 Michael Saunders
+Michael Seele
+Mickaël Guessant
 Miha
 Mike Davis
 Mike Roberts
 Mike Williams
 Miroslav Zaťko
-mnowostawski
 Mounir El Hajj
 Nathan Beyer
 Nick Chalko
-Nick Fortescue
 Nick Crossley
+Nick Davis
+Nick Fortescue
+Nick King
 Nick Pellow
-Nicola Ken Barozzi
 Nico Seessle
+Nicola Ken Barozzi
+Nicolas Lalevée
 Nigel Magnay
 Oliver Merkel
 Oliver Rossmueller
-Ondra Medek
+Olivier Parent
 Omer Shapira
-Oystein Gisnas
+Ondra Medek
 Patrick Altaie
 Patrick C. Beard
 Patrick Chanezon
-Patrick G. Heck (Gus Heck)
+Patrick Gus Heck
 Patrick Martin
 Paul Austin
 Paul Christmann
@@ -304,7 +330,7 @@
 Paulo Gaspar
 Pavan Bayyapu
 Pavel Jisl
-Pawel Zuzelski
+Paweł Zuzelski
 Peter B. West
 Peter Donald
 Peter Doornbosch
@@ -317,13 +343,13 @@
 Phillip Wells
 Pierre Delisle
 Pierre Dittgen
-riasol
-R Handerson
+Preston Bannister
 Ralf Hergert
 Rami Ojares
 Randy Watler
 Raphael Pierquin
 Ray Waldin
+Razzi Abuissa
 Reinhard Pointner
 Remie Bolte
 René Krell
@@ -331,8 +357,11 @@
 Richard Evans
 Richard Steele
 Rick Beton
+Rob Oxspring
+Rob van Oostrum
+Rob Riasol
 Robbie Gibson
-Robert Anderson
+Robert H. Anderson
 Robert Clark
 Robert Flaherty
 Robert Shaw
@@ -342,8 +371,6 @@
 Robin Green
 Robin Power
 Robin Verduijn
-Rob Oxspring
-Rob van Oostrum
 Rodrigo Schmidt
 Roger Vaughn
 Roman Ivashin
@@ -359,18 +386,20 @@
 Scott M. Stirling
 Sean Egan
 Sean P. Kane
+Sebastian Kantha
 Sebastien Arod
 Shiraz Kanga
-Sebastian Kantha
+Simeon Fitch
 Simon Law
+Simon Legner
 Simone Bordet
 Stefan Bodewig
 Stefan Heimann
 Stefano Mazzocchi
-Stephan Strittmatter
-Stephane Bailliez
 stephan
 Stephan Michels
+Stephan Strittmatter
+Stephane Bailliez
 Stephen Chin
 Stephen Goetze
 Steve Cohen
@@ -405,18 +434,22 @@
 Tom May
 Tomasz Bech
 Tomáš Zezula
+Tony Gravagno
 Trejkaz Xaoza
 Ulrich Schmidt
 Uwe Schindler
 Valentino Miazzo
 Victor Toni
+Ville Skyttä
 Vimil Saju
 Vincent Legoll
 Vincent Privat
 Vitold Sedyshev
+Vladislav Bauer
 Volker Leidl
 Waldek Herka
 Wang Weijun
+Wenjing Wang
 Will Wang
 William Bernardet
 William Ferguson
@@ -428,8 +461,10 @@
 Wolfgang Werner
 Xavier Hanin
 Xavier Witdouck
+Xia Li
 Yohann Roussel
 Yuji Yamano
 Yves Martin
 Zach Garner
 Zdenek Wagner
+Øystein Gisnås
diff --git a/INSTALL b/INSTALL
index 83c1167..289e5b8 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,2 +1,2 @@
-For installation instructions see the manual in the docs subdirectory
-or online at <http://ant.apache.org/manual/index.html>.
+For installation instructions see the manual by opening manual/index.html
+or see it online at <https://ant.apache.org/manual/index.html>.
diff --git a/LICENSE b/LICENSE
index cdf6ff8..5cfe309 100644
--- a/LICENSE
+++ b/LICENSE
@@ -193,7 +193,7 @@
  *   you may not use this file except in compliance with the License.
  *   You may obtain a copy of the License at
  *
- *       http://www.apache.org/licenses/LICENSE-2.0
+ *       https://www.apache.org/licenses/LICENSE-2.0
  *
  *   Unless required by applicable law or agreed to in writing, software
  *   distributed under the License is distributed on an "AS IS" BASIS,
@@ -203,7 +203,7 @@
  */
 
 W3C® SOFTWARE NOTICE AND LICENSE
-http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+https://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
 
 This work (and included software, documentation such as READMEs, or other
 related items) is being provided by the copyright holders under the following
diff --git a/NOTICE b/NOTICE
index 77b4165..b3cfd40 100644
--- a/NOTICE
+++ b/NOTICE
@@ -2,7 +2,7 @@
 Copyright 1999-2020 The Apache Software Foundation
 
 This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
+The Apache Software Foundation (https://www.apache.org/).
 
 The <sync> task is based on code Copyright (c) 2002, Landmark
 Graphics Corp that has been kindly donated to the Apache Software
diff --git a/README b/README
index 9510941..cff7e89 100644
--- a/README
+++ b/README
@@ -1,5 +1,5 @@
 
-                                 A     N     T
+                                 Apache Ant
  
 
   What is it? 
@@ -46,16 +46,19 @@
   ------------------
 
   Details of the latest version can be found on the Apache Ant
-  Project web site <http://ant.apache.org/>.
+  Project web site <https://ant.apache.org/>.
 
 
   Documentation
   -------------
 
-  Documentation is available in HTML format, in the docs/ directory.
+  Documentation is available in HTML format, in the manual/ directory.
   For information about building and installing Ant, see
-  docs/manual/index.html
-
+  manual/install.html
+  The manual for the latest release of Ant is available online at
+  <https://ant.apache.org/manual/index.html>.
+  The latest version of the manual is available online at
+  <https://rawgit.com/apache/ant/master/manual/index.html>.
 
   Licensing
   ---------
@@ -69,7 +72,7 @@
   encryption software.  BEFORE using any encryption software, please 
   check your country's laws, regulations and policies concerning the
   import, possession, or use, and re-export of encryption software, to 
-  see if this is permitted.  See <http://www.wassenaar.org/> for more
+  see if this is permitted.  See <https://www.wassenaar.org/> for more
   information.
 
   The U.S. Government Department of Commerce, Bureau of Industry and
@@ -88,10 +91,10 @@
   For the SSH family of tasks (<sshexec> and <scp>) Ant requires the
   JSch <http://www.jcraft.com/jsch/index.html> library as well as the
   Java Cryptography extensions
-  <http://java.sun.com/javase/technologies/security/>.  Ant does not
+  <https://www.oracle.com/technetwork/java/javase/tech/index-jsp-136007.html>.  Ant does not
   include these libraries itself, but is designed to use them.
 
   Thanks for using Ant.
 
                                           The Apache Ant Project
-                                         <http://ant.apache.org/>
+                                         <https://ant.apache.org/>
diff --git a/ReleaseInstructions b/ReleaseInstructions
index 5229e13..03080d2 100644
--- a/ReleaseInstructions
+++ b/ReleaseInstructions
@@ -5,8 +5,9 @@
          Magesh Umasankar
          Antoine Levy-Lambert
 
-Note: This document was updated in the context of releasing Ant
-      1.9.7 which was the first release cut from the 1.9.x branch.
+Note: This document was adapted from the one created in the context of
+      releasing Ant 1.9.7. It assumes the first release created from
+      master will be 1.10.
       Please interpret the branch names, tags, etc. according to
       your context.
 
@@ -31,7 +32,7 @@
 
 2.  Ensure you have all the external libraries that Ant uses in your
     lib/optional directory.  All dependencies are either provided by
-    JDK 1.5.0 or downloadable using
+    JDK 1.8.0 or downloadable using
     ant -f fetch.xml -Ddest=optional
     To find out whether you have all the libraries you need, execute
     the build with -verbose option and scan for lines beginning with
@@ -42,6 +43,10 @@
     the right year and commit and push the change upstream, before
     starting any release process.
 
+    There are certain features that require JDK 9+ version to be used
+    while releasing Ant 1.10.x from master branch. Make sure JAVA_HOME
+    points to a JDK installation which is minimally Java 9.
+
     You will need to have the snapcraft CLI tool installed in order to
     create and publish snap archives. See
     https://docs.snapcraft.io/snapcraft-overview
@@ -51,9 +56,9 @@
 3.  We don't want tags for failed votes to end up on our branches so
     the release is first created from a detached head.
 
-    Checkout the HEAD of the 1.9.x branch as a detached head:
+    Checkout the HEAD of the master branch as a detached head:
 
-    $ git checkout 1.9.x^0
+    $ git checkout master^0
 
 4.  Make sure that your directory tree is clean by running git status.
     Some tests leave behind leftovers which end up in the source
@@ -68,7 +73,7 @@
     * POM files under src/etc/poms and subdirectories
       if you've got mvn installed
 
-      $ mvn versions:set -DnewVersion=1.9.7 -DgenerateBackupPoms=false
+      $ mvn versions:set -DnewVersion=1.10.0 -DgenerateBackupPoms=false
 
       inside src/etc/poms should do the trick.
 
@@ -81,6 +86,14 @@
 6.  Next bootstrap, build and run the tests.
 
     $ ./bootstrap.sh
+
+    Make sure the log messages doesn't contain the message:
+
+    "Java 9+ features won't be available in the distribution"
+
+    If it does, then it's a sign that JAVA_HOME isn't pointing to a JDK 9+ version.
+    Fix JAVA_HOME to point to a valid JDK 9+ version and redo the release steps.
+
     $ ./build.sh
     $ ./build.sh test
     # if you've got maven installed
@@ -95,11 +108,12 @@
     $ ./dist/bin/ant -nouserlib -lib lib/optional distribution
 
     build.xml specifies that the code should be compiled with
-    source=1.5 and target=1.5.
+    source=1.8 and target=1.8.
 
 8.  Commit your changes, tag them, push them.
 
-    $ git tag -s -m "Tagging RC1 for version 1.9.7 of Ant" ANT_197_RC1
+    $ git commit -m "Prepare for RC1 of version 1.10.0 of Ant" ./
+    $ git tag -s -m "Tagging RC1 for version 1.10.0 of Ant" ANT_1.10.0_RC1
     $ git push --tags
 
 9.  Ensure that the GPG key you use is inside the KEYS file in Ant's
@@ -157,12 +171,12 @@
     This target generates a file build/html/WHATSNEW.html
 
     Add an html head element with a title like "Release Notes of Apache Ant
-    1.9.7" (from the default txt2html)
+    1.10.0" (from the default txt2html)
 
     Cut all sections about previous releases to keep only the current release,
-    and save as  RELEASE-NOTES-1.9.7.html inside the distribution folder.
+    and save as  RELEASE-NOTES-1.10.0.html inside the distribution folder.
 
-    Copy the contents of RELEASE-NOTES-1.9.7.html also into README.html
+    Copy the contents of RELEASE-NOTES-1.10.0.html also into README.html
 
 12. The distribution is now ready to go.
     Create a SVN sandbox on your computer with https://dist.apache.org/repos/dist/dev/ant in it
@@ -201,9 +215,9 @@
 
       $ snapcraft clean
       $ snapcraft snap
-      $ snapcraft upload --release=1.9/candidate ant_*.snap
+      $ snapcraft upload --release=candidate ant_*.snap
 
-    This will publish the new release snap to the 1.9 track on the
+    This will publish the new release snap to the latest track on the
     candidate risk level. It will be moved to stable, once the vote
     has passed.
 
@@ -220,9 +234,13 @@
 16. If the vote fails, address the problems and recreate the next RC
     build.
 
-17. Once the vote has passed, tag the last RC created with the final tag
+17. Once the vote has passed, tag the last RC created with the final tag.
+    It is important to tag the release under the "rel/" path since the
+    Apache infrastructure for .git provides certain protections for tags
+    under the "rel/" path. Releases need such protections as per Apache
+    release guidelines.
 
-    $ git tag -s -m "Tagging version 1.9.7 of Ant" rel/1.9.7 HASH_OF_LAST_RC
+    $ git tag -s -m "Tagging version 1.10.0 of Ant" rel/1.10.0 HASH_OF_LAST_RC
     $ git push --tags
 
 18. The distrib artifacts should be published the apache dist. It is
@@ -250,43 +268,47 @@
     https://reporter.apache.org/addrelease.html?ant
 
 20. Address the available version tags in BugZilla. Create new
-    milestone 1.9.8 and version 1.9.7.
+    milestone 1.10.1 and version 1.10.0.
 
 21. Add a new release tag to doap_Ant.rdf in Ant's site.
 
-22. checkout the 1.9.x branch, merge the tag but don't push the
+22. checkout the master branch, merge the tag but don't push the
     commit
 
-    $ git checkout 1.9.x
-    $ git merge rel/1.9.7
+    [if a release of Ant 1.9.x happened at the same time, deal with
+    the 1.9.x tag on the 1.9.x branch first and merge the 1.9.x branch
+    to master before proceeding here]
+
+    $ git checkout master
+    $ git merge rel/1.10.0
 
     Set the version number in several files to the required version of
-    the next 1.9.x release. These are:
+    the next 1.10.x release. These are:
 
     * manual/cover.html
     * manual/credits.html
     * build.xml properties : project.version,manifest-version,pom.version
 
       project.version property in build.xml gets bumped to
-      [newversion]alpha, for example 1.9.8alpha
+      [newversion]alpha, for example 1.10.1alpha
 
       manifest-version gets bumped to the exact next release number
-      for example 1.9.8.
+      for example 1.10.1.
 
       pom.version gets bumped to [newversion]-SNAPSHOT
-      for example 1.9.8-SNAPSHOT.
+      for example 1.10.1-SNAPSHOT.
 
     * POM files under src/etc/poms and subdirectories
       if you've got mvn installed
 
-      $ mvn versions:set -DnewVersion=1.9.8-SNAPSHOT -DgenerateBackupPoms=false
+      $ mvn versions:set -DnewVersion=1.10.1-SNAPSHOT -DgenerateBackupPoms=false
 
       inside src/etc/poms should do the trick.
 
     * ivy.xml in release subdirectory
     * WHATSNEW (add a new section)
     * src/etc/testcases/taskdefs/conditions/antversion.xml
-    * snap/snapcraft.yml (bump version to [newversion]alpha)
+    * snap/snapcraft.yaml - bump version to [newversion]alpha and change value of "grade" to "devel"
 
     Amend the merge commit
 
@@ -294,22 +316,20 @@
     $ git commit -a --amend
     $ git push
 
-22. checkout the master branch, merge the 1.9.x branch
-
-    $ git checkout master
-    $ git merge 1.9.x
-    $ git push
-
-24. copy the candidate snaps to stable. First figure out the revision
+23. copy the candidate snaps to stable. First figure out the revision
 
     $ snapcraft status ant
-    $ snapcraft release ant REVISION 1.9/stable
+    $ snapcraft release ant REVISION latest/stable
+    $ snapcraft release ant REVISION 1.10/stable
 
-    where REVISION is the revision you want to promote
+    where REVISION is the revision you want to promote (keep in mind that the
+    REVISION isn't the version you are releasing. snapcraft uses its own separate integer
+    value for the REVISION and this value is listed as the output of the previous
+    "snapcraft status ant" command)
 
-25. wait a few hours for the mirrors to catch up
+24. wait a few hours for the mirrors to catch up
 
-26. Update the ant.apache.org site :
+25. Update the ant.apache.org site :
 
     The website is managed here: https://svn.apache.org/repos/asf/ant/site/ant/
 
@@ -317,6 +337,10 @@
     the site still uses svn and Ant proper uses git there currently is
     no way to use the scm for this.
 
+    [TODO once there is the first release of 1.10.0, we'll likely need
+    to restructure the site to allow two versions of the manual to
+    exist in parallel]
+
     Update the following files for version number:
 
     * source/antnews.xml (Announcement)
@@ -331,17 +355,20 @@
     Commit the modified/generated files in the 'production' folder, it will go
     live on ant.apache.org in a matter on seconds.
 
-27. At this point in time, the release is done and announcements are made.
+26. At this point in time, the release is done and announcements are made.
     PGP-sign your announcement posts.
 
     Apache mailing lists that should get the announcements:
     announce@apache.org, dev@ant and user@ant.
 
-28. You can now reacquaint yourself with your family and friends.
+27. You can now reacquaint yourself with your family and friends.
 
-29. After a few days "svn rm" the older release artifacts and release
+28. After a few days "svn rm" the older release artifacts and release
     notes from https://dist.apache.org/repos/dist/release/ant/
 
+    "older" here means any older 1.10.x release but not the latest
+    1.9.x release.
+
 Related Information
 
 https://www.apache.org/dev/#releases
@@ -358,7 +385,7 @@
    * ivy.xml in release subdirectory
    * WHATSNEW
    * src/etc/testcases/taskdefs/conditions/antversion.xml
-   * snap/snapcraft.yml
+   * snap/snapcraft.yaml
 
 cover.html, credits.html, POM files, antversion.xml should be 
 adjusted for the [newversion] right after the build and tagging 
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 0000000..c420962
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,3 @@
+# Security Policy
+
+Please see https://ant.apache.org/security.html
diff --git a/STATUS b/STATUS
index 874396d..8b6b710 100644
--- a/STATUS
+++ b/STATUS
@@ -1,10 +1,10 @@
 Apache Ant Status
-Last modified at 2016-02-24
+Last modified at 2016-04-09
 
 Release:
-    Current:        1.9.6  (in GIT Tag: ANT_196)
-    Maintenance:    1.9.x  (in GIT Branch: master)
-    Development:    1.9.7  (in GIT Branch: master)
+    Current:        1.9.6  (in GIT Tag: rel/1.9.6)
+    Maintenance:    1.9.x  (in GIT Branch: 1.9.x)
+    Development:    1.10.x (in GIT Branch: master)
 
 Assets:
     DNS:                ant.apache.org
@@ -17,7 +17,7 @@
     Repositories:       ant.git
 
 PMC Members
- see http://ant.apache.org/contributors.html
+ see https://ant.apache.org/contributors.html
 
 Committers:
- see http://ant.apache.org/contributors.html
+ see https://ant.apache.org/contributors.html
diff --git a/WHATSNEW b/WHATSNEW
index a76a026..f17bf4b 100644
--- a/WHATSNEW
+++ b/WHATSNEW
@@ -1,27 +1,184 @@
-Changes from Ant 1.9.15 TO Ant 1.9.16
+Changes from Ant 1.10.9 TO Ant 1.10.10
+======================================
+
+Changes from Ant 1.10.8 TO Ant 1.10.9
 =====================================
 
-Changes from Ant 1.9.14 TO Ant 1.9.15
-=====================================
+Fixed bugs:
+-----------
+
+ * the ftp task could throw a NullPointerException if an error occured
+   Bugzilla Report 64438
+
+ * propertyset now also sees in-scope local properties
+   Bugzilla Report 50179
+
+ * replaced our version of ReaderInputStream with the battle-tested
+   version of Apache Commons IO as our version had problems with
+   surrogate pairs (and likely other edge cases as well).
+   Bugzilla Report 40455
+
+ * <fixcrlf> will no longer remove the temporary file it just created
+   before writing to it.
+
+ * <sshexec> and <scp> didn't deal with wildcard hostnames in ssh
+   config files properly.
+   Bugzilla Report 64530
 
 Other changes:
 --------------
 
+ * Ant will no longer log a warning if it doesn't find tools.jar
+   Bugzilla Report 63577
+
+ * the <jar> task accepts now a nested <indexjarsmapper> element
+   that can be used to perform custom filename transformations
+   for the <indexjars> archives.
+   Github Pull Request #134
+
+ * added a new PropertyEnumerator interface that extensions can
+   provide if they are managing properties unknown to the Ant project.
+
+ * added some special code to support GraalVM JavaScript as
+   javax.script scripting engine for JavaScript. In particular we
+   relax some security settings of GraalVM so that scripts can access
+   Ant objects.
+
+   Also Ant enables Nashorn compatibility mode by default, you can
+   disable that by setting the magic Ant property
+   ant.disable.graal.nashorn.compat to true.
+
+   See the script task manual for additional details.
+
+ * If the magic property ant.tmpdir hasn't been set and Ant can
+   control the permissions of directories it creates it will create an
+   owner-owned temporary directory unaccessible to others as default
+   tempdir as soon as a temporary file is created for the first time,
+
+Changes from Ant 1.10.7 TO Ant 1.10.8
+=====================================
+
+Fixed bugs:
+-----------
+
+ * "legacy-xml" formatter of junitlauncher task wasn't writing out
+   the stacktrace for failures. This is now fixed.
+   Bugzilla Report 63827
+
+ * sshexec failed to write output to a file if the file didn't exist
+
+ * Fixes a regression in javac task involving command line argument
+   files.
+   Bugzilla Report 63874
+
+ * sshexec, sshsession and scp now support a new sshConfig parameter.
+   It specified the SSH configuration file (typically ${user.home}/.ssh/config)
+   defining the username and keyfile to be used per host.
+
+ * "legacy-xml" formatter of junitlauncher task wasn't writing out
+   exceptions that happen in @BeforeAll method of a test. This is now fixed.
+   Bugzilla Report 63850
+
+ * Building Ant from source could result in the javadocs target failing if the
+   optional dependencies were missing. This has now been fixed.
+   Bugzilla Report 63438
+
+ * Fixes a potential ConcurrentModificationException in XMLLogger.
+   Bugzilla Report 63921
+
+ * Fixes a bug in junitlauncher task in forked mode, where if a listener element
+   was used as a sibling element for either the test or testclasses element,
+   then the forked mode launch would fail.
+   Bugzilla Report 63958
+
+ * Fixes an issue in AntStructure where an incorrect DTD was being generated.
+   Github Pull Request #116
+
+ * Fixes an incorrect variable name usage in junit-frames-xalan1.xsl.
+   Github Pull Request #117
+
+Other changes:
+--------------
+
+ * org.apache.tools.mail.MailMessage will now send a fully qualified
+   domain name in its HELO message.
+   Github Pull Request #101
+
  * The runant.py script should now work with Python 3.
    Github Pull Request #96
 
+ * tstamp task now honors SOURCE_DATE_EPOCH environment variable for
+   reproducible builds (https://reproducible-builds.org/specs/source-date-epoch/#idm55)
+   Bugzilla Report 62617
+
  * rmic has been removed from Java 15. The task will now throw an
    exception if you try to use it while running Java 15 or newer.
 
  * a new property ant.tmpdir provides improved control over the
    location Ant uses to create temporary files
 
-Changes from Ant 1.9.13 TO Ant 1.9.14
+Changes from Ant 1.10.6 TO Ant 1.10.7
+=====================================
+
+Fixed bugs:
+-----------
+
+ * FTP still tries checking or entering directories after a timeout
+   Bugzilla Report 63454
+
+ * junitlauncher - does not detect failure in @BeforeAll
+   Bugzilla Report 63479
+
+ * Error using ant-1.10.6 with jdk8
+   Bugzilla Report 63457
+
+ * FTP task no longer duplicates a check for a file being a symlink.
+   Bugzilla Report 63259
+
+ * junitlauncher task, when used in fork mode with "<testclasses>",
+   used to create the wrong number of listeners per test class. This
+   has now been fixed.
+   Bugzilla Report 63446
+
+ * The "legacy-xml" junitlauncher task's listener would not include
+   @ParameterizedTest testcases in its XML report file. This has now
+   been fixed.
+   Bugzilla Report 63680
+
+Other changes:
+--------------
+
+ * FTP task timeout improvements.
+   Bugzilla Reports 63252 and 47414
+
+ * junitlauncher task now supports selecting test classes for execution,
+   based on the JUnit 5 tags, through the new "includeTags" and
+   "excludeTags" attributes.
+
+ * prefer https over http when building ant itself, and in the ant 
+   documentation and sources
+
+ * changed the references and Maven coordinates of JavaMail dependency
+   to Jakarta Mail and thus javax.mail to jakarta.mail - and upgraded
+   the dependency to 1.6.3.
+
+Changes from Ant 1.10.5 TO Ant 1.10.6
 =====================================
 
 Changes that could break older environments:
 -------------------------------------------
 
+ * image task no longer works on Java 9+ because internal classes
+   supporting Java Advanced Imaging are removed; imageio task (based on
+   ImageIO and AWT) is provided as a replacement.
+
+ * junitlauncher task has changed the class names and package names of
+   the task as well as some of the supporting classes of that task. If
+   any code depended on these class or package names, they will have to
+   be updated to reference these newly named classes. This however,
+   doesn't impact build scripts if their reference to junitlauncher task
+   was merely through the use of the <junitlauncher> element.
+
  * ClearCase#runS has been augmented by a two arg-version and the
    one-arg version will no longer be called. This may affect
    subclasses that have overridden runS.
@@ -33,6 +190,10 @@
    mail task.
    Bugzilla Report 62621
 
+ * Fixes an issue in junitreport task, which used to throw a
+   java.net.MalformedURLException when saxon was used on Windows OS.
+   Bugzilla Report 62594
+
  * augment task now throws a BuildException (as noted in its manual)
    instead of a IllegalStateException in the absence of the "id" attribute.
    Bugzilla Report 62655
@@ -41,10 +202,29 @@
    an incorrect compression level for a zip entry. This is now fixed.
    Bugzilla Report 62686
 
+ * sync task, in some cases on case insensitive file systems, would consider
+   a file in a destination directory to be orphaned and would delete it.
+   This task has now been fixed to infer the case sensitivity of the filesystem
+   of the destination directory.
+   Bugzilla Report 62890
+
+ * Fixes a potential java.util.ConcurrentModificationException in
+   org.apache.tools.ant.Project#getCopyOfReferences.
+   Github Pull Request #81
+
  * cccheckout would ignore an error of the "ls checkout" command even
    if failOnError was set to false.
    Bugzilla Report 63071
 
+ * The isreachable condition could in some cases return true even if the
+   actual address could potentially be unreachable. This is now fixed
+   and the resolved address is actually checked for reachability.
+
+ * Fixes an issue where scp transfer completion tracking wasn't being
+   triggered for 100% completion.
+   Github Pull Request #91
+
+
 Other changes:
 --------------
  * generatekey task now supports SubjectAlternativeName during key
@@ -53,6 +233,9 @@
  * the <modified> selector has a new built-in algorithm 'lastmodified'
    which computes a value based upon the lastmodified time of the file.
 
+ * junitlauncher task now supports running tests in a forked JVM. More
+   details available in the junitlauncher task manual.
+
  * signjar and verifyjar now support the -providerName, -providerClass
    and -providerArg command line options of keytool via new attributes.
    Bugzilla Report 65234
@@ -64,16 +247,38 @@
  * added several attributes to <javadoc> that support modules.
    Bugzilla Report 62424
 
+ * properties used or set by BuildFileTask/BuildFileRule are documented
+   in MagicTestNames. A new magic property, ant.test.basedir.ignore, is
+   introduced for cases where Ant projects set up for test purposes
+   must ignore basedir set externally by test harness.
+
+ * a new CharSet type is provided for encoding or charset attributes in
+   tasks that must deal with different character encodings in files,
+   file names and other string resources.
+
+ * org.apache.tools.ant.AntClassLoader is now multi-release jar aware.
+   Starting Java 9, jar files can be packaged as multi-release jars,
+   AntClassLoader now recognizes such multi-release jar files while
+   loading resources at runtime in Java 9+ runtime environments.
+   Bugzilla Report 62952
+
+ * Added jmod and link tasks, to support jmod and jlink tools of JDK 9+.
+   Github Pull Request #80
+
  * Jsch library dependency has now been upgraded to 0.1.55. Jsch is
    the library behind the sshexec and scp Ant tasks.
    Github Pull Request #84
 
+ * The "http" condition, now has a "readTimeout" attribute which can be
+   used to control the amount of time to wait for the read to complete.
+   Bugzilla Report 63193
+
  * ftp task manual has been updated to mention that the remote listing of
    files honours the followsymlinks attribute.
    Bugzilla Report 63226
 
 
-Changes from Ant 1.9.12 TO Ant 1.9.13
+Changes from Ant 1.10.4 TO Ant 1.10.5
 =====================================
 
 Fixed bugs:
@@ -90,7 +295,12 @@
    root.
    Bugzilla Report 62502
 
-Changes from Ant 1.9.11 TO Ant 1.9.12
+Other changes:
+--------------
+ * Java task now accepts a "sourcefile" attribute to allow single file
+   source program execution, a feature that is introduced in Java 11.
+
+Changes from Ant 1.10.3 TO Ant 1.10.4
 =====================================
 
 Changes that could break older environments:
@@ -120,6 +330,15 @@
  * The junit task when used with includeantruntime="no" was incorrectly
    printing a warning about multiple versions of ant detected in path
 
+ * <cab> died with a NullPointerException since Ant 1.10.2.
+   Bugzilla Report 62335
+
+ * The <depend> task would fail with
+   "java.lang.ClassFormatError: Invalid Constant Pool entry Type 19" while
+   parsing a module-info.class. The task is compatible with
+   Java bytecode version 53 now.
+   Bug reported by Simon IJskes https://issues.apache.org/jira/browse/NETBEANS-781
+
  * Default and SecureInputHandler will now raise an error when then
    end of the input stream (usually System.in or System.console) are
    reached before a valid input has been read.
@@ -131,6 +350,9 @@
 Other changes:
 --------------
 
+ * AntAssert is deprecated, assertThat from JUnit 4.4+, Hamcrest matchers and/or
+   ExpectedException rule provide equivalent functionality
+
  * PumpStreamHandler now explicitly verifies the streams for output
    and error are not null and will throw an exception if they
    are. This way creating a PumpStreamHandler will fail early as
@@ -143,6 +365,11 @@
    availableProcessors, freeMemory, maxMemory and totalMemory methods
    of the Java Runtime class.
 
+ * linecontains filter now has a new "matchAny" attribute which when
+   set to "true" allows any (instead of all) of the user-specified
+   strings to be present in the line.
+   Bugzilla Report 62313
+
  * <resourcelist> has a new basedir attribute that can be used to
    resolve relative names and provides a root for the FileResources
    generated.
@@ -153,7 +380,15 @@
    can be used to specify the file's encoding.
    Bugzilla Report 62379
 
-Changes from Ant 1.9.10 TO Ant 1.9.11
+ * New file selectors, posixGroup and posixPermissions, are available.
+   The new selectors and related ownedBy selector have "followSymlinks"
+   attribute that defaults to "true" for consistency.
+   Bugzilla Report 22370
+
+ * The junitlauncher task now has a "printSummary" attribute which when
+   set to "true" will print the test execution summary to System.out.
+
+Changes from Ant 1.10.2 TO Ant 1.10.3
 =====================================
 
 Changes that could break older environments:
@@ -165,12 +400,23 @@
    and no longer throws an exception.
    ant-dev list https://www.mail-archive.com/dev@ant.apache.org/msg46634.html
 
+ * Reverted the signature change of various clone method
+   implementation in Ant's data-types introduced with 1.10.2 as they
+   broke subclasses of said data-types which tried to override clone.
+
 Fixed bugs:
 -----------
 
+ * Fixed NullPointerException in ChainedMapper
+   Bugzilla Report 62086
+
  * Fixed NullPointerException when a mappedresource is used in pathconvert
    Bugzilla Report 62076
 
+ * Fixed an issue where a string, when used as a resource collection, within
+   tokens, would be replaced by property values
+   Bugzilla Report 62147
+
  * Added a workaround for a bug in the jarsigner tool to <verifyjar>
    which requires the -storepass command line argument when verifying
    signatures using -strict together with a PKCS12 keystore. Unlike
@@ -184,16 +430,48 @@
 Other changes:
 --------------
 
+ * Allow Saxon to be used for junitreport XSL transformation
+   Github Pull Request #57
+
  * when running on Java 11+ rmic will fail early if iiop or idl are
-   requested. Java11 removes support for CORBA and the switches have
+   requested. Java 11 removes support for CORBA and the switches have
    been removed from the rmic tool.
 
-Changes from Ant 1.9.9 TO Ant 1.9.10
-====================================
+ * A new junitlauncher task which support JUnit 5 test framework.
+   Bugzilla Report 61796
+
+Changes from Ant 1.10.1 TO Ant 1.10.2
+=====================================
+
+Changes that could break older environments:
+-------------------------------------------
+
+ * updated the dependency of BCEL to 6.2.
+   Bugzilla Report 61196
+
+ * delete task previously would silently accept wildcard (*)
+   value for the "file" attribute. That's no longer the case
+   and an exception could get thrown by the underlying filesystem
+   for such use. Usage like:
+
+   <delete file="/foo/bar/*.something"/>
+
+   should instead be changed to use resource collections like:
+
+   <delete>
+   	 <fileset dir="/foo/bar/" includes="*.something"/>
+   </delete>
+
+ * Commons Net 3.6 is binary-code, but not source compatible;
+   see change list of Commons Net 3.0 for details
 
  * The Log4jListener is marked as deprecated as the required log4j library
    (in version 1.x) is not maintained any more.
 
+ * Image task is marked as deprecated as the required JAI library is not
+   maintained any more and internal APIs that JAI depended on are no longer
+   available in Java 9.
+
 Fixed bugs:
 -----------
 
@@ -201,6 +479,9 @@
    value.
    Bugzilla Report 60767
 
+ * bootstrapping Ant on Windows failed
+   Bugzilla Report 61027
+
  * Fixed the issue where the SCP based tasks would try to change
    the permissions on the parent directory of a transferred file,
    instead of changing it on the transferred file itself.
@@ -211,6 +492,11 @@
    the same source file (symlinked back to itself).
    Bugzilla Report 60644
 
+ * Fixed the issue where symlink creation with "overwrite=false",
+   on existing symlink whose target was a directory, would end
+   up creating a new symlink under the target directory.
+   Bugzilla Report 58683
+
  * Improvement to the Zip task for reduced memory usage in certain
    cases. Thanks to Glen Lewis for reporting the issue and
    suggesting the fix.
@@ -232,9 +518,23 @@
    values always get quoted.
    Github Pull Request #32
 
+ * Added <encoding> attributes to various script related tasks and a
+   compiled attribute to scriptdef.
+   Github Pull Request #30
+
+ * Added support for jarsigner's -tsadigestalg to <signjar>.
+   Bugzilla Report 60665
+
  * added "regexp" attribute to <linecontainsregexp>
    Bugzilla Report 60968
 
+ * reduced GC pressure by replacing all usage of FileInputStream and
+   FileOutputStream.
+
+ * Task can now also use attribute setters that expect a
+   java.nio.file.Path argument.
+   Bugzilla Report 61042
+
  * added a new magic property ant.tstamp.now that can be used to
    override the current time/date used by <tstamp>.
    Bugzilla Report 61079
@@ -264,20 +564,21 @@
 
  * Updated Maven Ant Tasks, Jakarta Regexp and JUnit 4 to the latest
    stable version (2.1.3, 1.4, and 4.12 respectively); updated
-   Java Mail API, JRuby and Jython to the latest Java 5 compatible
-   version (1.5.6, 1.6.8 and 2.5.3, respectively); added resolve targets
-   for Ivy and AntUnit to facilitate releases and updates, respectively.
+   JRuby to the latest Java 5 compatible version (1.6.8); added
+   resolve target for AntUnit to facilitate updates.
    Github Pull Request #50
 
-* Updated Commons Net to the latest Java 5 compatible version (2.2).
+ * Updated Java Mail API, Jython, Rhino and Commons Net to the latest
+   stable version (1.6.0, 2.7.0, 1.7.7.2 and 3.6, respectively).
+   Github Pull Request #53
 
-Changes from Ant 1.9.8 TO Ant 1.9.9
-===================================
+Changes from Ant 1.10.0 TO Ant 1.10.1
+=====================================
 
 Fixed bugs:
 -----------
 
- * Ant 1.9.8 made Path#systemClasspath final which broke the Eclipse
+ * Ant 1.10.0 made Path#systemClasspath final which broke the Eclipse
    integration.
    Bugzilla Report 60582
 
@@ -287,17 +588,36 @@
    newlines present in command line arguments.
    Bugzilla Report 60562
 
-Changes from Ant 1.9.7 TO Ant 1.9.8
-===================================
+Other changes:
+--------------
+
+ * new tasks <xz> and <unxz> and resource <xzresource> for XZ
+   compression. Also the compression attribute of <tar>/<untar> now
+   accepts "xz" as valid value.
+   The tasks and type are contained in the new ant-xz.jar and require
+   the library XZ for Java to be on the CLASSPATH.
+   Bugzilla Report 60350
+
+Changes from Ant 1.9.7 TO Ant 1.10.0
+====================================
 
 Changes that could break older environments:
 -------------------------------------------
 
+ * Ant 1.10.x requires Java8 or newer at compile or build time.
+   The 1.9.x series wil stay compatible with Java5.
+
+ * The <apt> task has been removed since apt itself has been removed
+   with Java8.
+
  * <fileset>/<zipfileset>/<tarfileset> exhibited undefined
    behavior when both the dir and file attribute have been used on the
    same instance. This will now cause the build to fail.
    Bugzilla Report 59402
 
+ * <native2ascii> will default to the builtin implementation on Java8
+   as well (sun isn't available for Java9+ anyway).
+
  * The ant.java.version property will now hold the value "9" rather
    than "1.9" if running on Java 9.
 
@@ -305,6 +625,9 @@
    be used when running on Java 9 since this option has been removed.
    Bugzilla Report 59906
 
+ * <javah> will default to the "forking" implementation on Java8
+   as well.
+
 Fixed bugs:
 -----------
 
@@ -352,6 +675,11 @@
 Other changes:
 --------------
 
+ * New file selectors <executable>, <symlink> and <ownedBy>.
+
+ * New task <setpermissions> that provides the ability to set POSIX
+   compatible permssions via NIO's PosixFilePermission
+
  * <junit> now initializes the cause of the AssertionFailedError when
    converting from AssertionError.
    Bugzilla Report 58982
@@ -389,6 +717,9 @@
  * it is now possible to use references to Ant types and classloaders
    built around Ant <path>s as values for TraX factory attributes.
 
+ * AntClassLoader and its subclasses register themselves as parallel
+   capable.
+
  * <junitreport> now enables the feature
    http://www.oracle.com/xml/jaxp/properties/enableExtensionFunctions
    when run on Java 9 so the redirect extension function can be used
diff --git a/ant.properties.sample b/ant.properties.sample
index 1930ca7..3126fcc 100644
--- a/ant.properties.sample
+++ b/ant.properties.sample
@@ -5,7 +5,7 @@
 # (the "License"); you may not use this file except in compliance with
 # the License.  You may obtain a copy of the License at
 #
-#     http://www.apache.org/licenses/LICENSE-2.0
+#     https://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
diff --git a/bootstrap.bat b/bootstrap.bat
index be2ec0b..6cec029 100755
--- a/bootstrap.bat
+++ b/bootstrap.bat
@@ -10,7 +10,7 @@
 REM  (the "License"); you may not use this file except in compliance with
 REM  the License.  You may obtain a copy of the License at
 REM
-REM      http://www.apache.org/licenses/LICENSE-2.0
+REM      https://www.apache.org/licenses/LICENSE-2.0
 REM
 REM  Unless required by applicable law or agreed to in writing, software
 REM  distributed under the License is distributed on an "AS IS" BASIS,
@@ -61,10 +61,20 @@
 if not exist build\nul mkdir build
 if not exist build\classes\nul mkdir build\classes
 
+rem Check if javac tool supports the --release param
+SET JAVAC_RELEASE_VERSION=""
+echo "public class JavacVersionCheck {}" > %CLASSDIR%\JavacVersionCheck.java
+"%JAVAC%" --release 8 -d %CLASSDIR% %CLASSDIR%\JavacVersionCheck.java >nul 2>&1
+IF %ERRORLEVEL% EQU 0 SET JAVAC_RELEASE_VERSION="--release 8"
+DEL %CLASSDIR%\JavacVersionCheck.java %CLASSDIR%\JavacVersionCheck.class >nul 2>&1
 echo.
-echo ... Compiling Ant Classes
-
-"%JAVAC%" %BOOTJAVAC_OPTS% -d %CLASSDIR% %TOOLS%\bzip2\*.java %TOOLS%\tar\*.java %TOOLS%\zip\*.java %TOOLS%\ant\*.java %TOOLS%\ant\types\*.java %TOOLS%\ant\taskdefs\*.java %TOOLS%\ant\util\regexp\RegexpMatcher.java %TOOLS%\ant\util\regexp\RegexpMatcherFactory.java %TOOLS%\ant\taskdefs\condition\*.java %TOOLS%\ant\taskdefs\compilers\*.java %TOOLS%\ant\types\resources\*.java %TOOLS%\ant\property\*.java
+IF %JAVAC_RELEASE_VERSION% == "" (
+  echo ... Compiling Ant Classes
+  "%JAVAC%" %BOOTJAVAC_OPTS% -d %CLASSDIR% %TOOLS%\bzip2\*.java %TOOLS%\tar\*.java %TOOLS%\zip\*.java %TOOLS%\ant\*.java %TOOLS%\ant\types\*.java %TOOLS%\ant\taskdefs\*.java %TOOLS%\ant\util\regexp\RegexpMatcher.java %TOOLS%\ant\util\regexp\RegexpMatcherFactory.java %TOOLS%\ant\taskdefs\condition\*.java %TOOLS%\ant\taskdefs\compilers\*.java %TOOLS%\ant\types\resources\*.java %TOOLS%\ant\property\*.java
+) ELSE (
+  echo ... Compiling Ant Classes with %JAVAC_RELEASE_VERSION%
+  "%JAVAC%" %BOOTJAVAC_OPTS% -d %CLASSDIR% %JAVAC_RELEASE_VERSION% %TOOLS%\bzip2\*.java %TOOLS%\tar\*.java %TOOLS%\zip\*.java %TOOLS%\ant\*.java %TOOLS%\ant\types\*.java %TOOLS%\ant\taskdefs\*.java %TOOLS%\ant\util\regexp\RegexpMatcher.java %TOOLS%\ant\util\regexp\RegexpMatcherFactory.java %TOOLS%\ant\taskdefs\condition\*.java %TOOLS%\ant\taskdefs\compilers\*.java %TOOLS%\ant\types\resources\*.java %TOOLS%\ant\property\*.java
+)
 
 if ERRORLEVEL 1 goto mainend
 
diff --git a/bootstrap.sh b/bootstrap.sh
index d1013d1..c97abb3 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -7,7 +7,7 @@
 # (the "License"); you may not use this file except in compliance with
 # the License.  You may obtain a copy of the License at
 #
-#     http://www.apache.org/licenses/LICENSE-2.0
+#     https://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
@@ -127,9 +127,24 @@
 mkdir -p ${CLASSDIR}
 mkdir -p bin
 
-echo ... Compiling Ant Classes
+# Check if javac tool supports the --release param
+echo "public class JavacVersionCheck {}" > ${CLASSDIR}/JavacVersionCheck.java
+"${JAVAC}" --release 8 -d ${CLASSDIR} ${CLASSDIR}/JavacVersionCheck.java 1>&2 2>/dev/null
+ret=$?
+rm ${CLASSDIR}/JavacVersionCheck.java ${CLASSDIR}/JavacVersionCheck.class 1>&2 2>/dev/null
+JAVAC_RELEASE_VERSION=
+if [ $ret -eq 0 ]; then
+  # set --release to 8
+  JAVAC_RELEASE_VERSION="--release 8"
+fi
+if [ "${JAVAC_RELEASE_VERSION}" = "" ]; then
+  echo ... Compiling Ant Classes
+else
+  echo ... Compiling Ant Classes with ${JAVAC_RELEASE_VERSION}
+fi
 
-"${JAVAC}" $BOOTJAVAC_OPTS -d ${CLASSDIR} ${TOOLS}/bzip2/*.java ${TOOLS}/tar/*.java ${TOOLS}/zip/*.java \
+"${JAVAC}" $BOOTJAVAC_OPTS -d ${CLASSDIR} ${JAVAC_RELEASE_VERSION} \
+           ${TOOLS}/bzip2/*.java ${TOOLS}/tar/*.java ${TOOLS}/zip/*.java \
            ${TOOLS}/ant/util/regexp/RegexpMatcher.java \
            ${TOOLS}/ant/util/regexp/RegexpMatcherFactory.java \
            ${TOOLS}/ant/property/*.java \
diff --git a/build.bat b/build.bat
index 0f1a52d..dc6e447 100755
--- a/build.bat
+++ b/build.bat
@@ -7,7 +7,7 @@
 REM  (the "License"); you may not use this file except in compliance with
 REM  the License.  You may obtain a copy of the License at
 REM 
-REM      http://www.apache.org/licenses/LICENSE-2.0
+REM      https://www.apache.org/licenses/LICENSE-2.0
 REM 
 REM  Unless required by applicable law or agreed to in writing, software
 REM  distributed under the License is distributed on an "AS IS" BASIS,
diff --git a/build.sh b/build.sh
index ee8e571..34b4875 100755
--- a/build.sh
+++ b/build.sh
@@ -7,7 +7,7 @@
 # (the "License"); you may not use this file except in compliance with
 # the License.  You may obtain a copy of the License at
 #
-#     http://www.apache.org/licenses/LICENSE-2.0
+#     https://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
diff --git a/build.xml b/build.xml
index f9150a8..21260f9 100644
--- a/build.xml
+++ b/build.xml
@@ -8,7 +8,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -33,15 +33,16 @@
   <property name="name" value="ant"/>
   <!-- this is the directory corresponding to groupId of Ant in the Maven repository -->
   <property name="groupid" value="org/apache/ant"/>
-  <property name="project.version" value="1.9.16alpha"/>
+  <property name="project.version" value="1.10.10alpha"/>
   <!-- pom.version is used when doing a distribution and must match with what is checked in under src/etc/poms -->
-  <property name="pom.version" value="1.9.16-SNAPSHOT"/>
-  <property name="manifest-version" value="1.9.16"/>
+  <property name="pom.version" value="1.10.10-SNAPSHOT"/>
+  <property name="manifest-version" value="1.10.10"/>
   <property name="bootstrap.jar" value="ant-bootstrap.jar"/>
 
   <property name="ant.package" value="org/apache/tools/ant"/>
   <property name="taskdefs.package" value="${ant.package}/taskdefs"/>
   <property name="condition.package" value="${taskdefs.package}/condition"/>
+  <property name="modules.package" value="${taskdefs.package}/modules"/>
   <property name="optional.package" value="${taskdefs.package}/optional"/>
   <property name="type.package" value="${ant.package}/types"/>
   <property name="optional.type.package" value="${type.package}/optional"/>
@@ -65,7 +66,6 @@
   <property name="src.antunit" value="${src.dir}/tests/antunit"/>
   <property name="etc.dir" value="${src.dir}/etc"/>
   <property name="tests.etc.dir" value="${etc.dir}/testcases"/>
-  <property name="manifest" value="${etc.dir}/manifest"/>
   <property name="lib.dir" value="lib"/>
   <property name="manual.dir" value="manual"/>
 
@@ -85,12 +85,13 @@
   <property name="build.junit.xml" location="${build.tests}/xml"/>
   <property name="build.junit.tmpdir" location="${build.tests}/tmp"/>
   <property name="build.junit.reports" location="${build.tests}/reports"/>
+  <property name="build.pkg.dir" value="${build.dir}/pkg"/>
   <property name="antunit.xml" location="${build.dir}/antunit/xml"/>
   <property name="antunit.tmpdir" location="${build.dir}/antunit/tmp"/>
   <property name="antunit.reports" location="${build.dir}/antunit/reports"/>
   <property name="antunit.loglevel" value="none"/>
-  <property name="manifest.tmp" value="${build.dir}/optional.manifest"/>
   <!-- the absolute path -->
+  <property name="build.classes.value" location="${build.classes}"/>
   <property name="build.tests.value" location="${build.tests}"/>
 
   <!--
@@ -99,12 +100,13 @@
        ===================================================================
   -->
   <property name="debug" value="true"/>
-  <property name="chmod.fail" value="true"/>
-  <property name="chmod.maxparallel" value="250"/>
+  <property name="setpermissions.fail" value="true"/>
+  <property name="setpermissions.nonposixmode" value="tryDosOrPass"/>
   <property name="deprecation" value="false"/>
   <property name="optimize" value="true"/>
-  <property name="javac.target" value="1.5"/>
-  <property name="javac.source" value="1.5"/>
+  <property name="javac.target" value="1.8"/>
+  <property name="javac.source" value="1.8"/>
+  <property name="javac.release" value="8"/>
   <property name="junit.filtertrace" value="off"/>
   <property name="junit.summary" value="no"/>
   <property name="test.haltonfailure" value="false"/>
@@ -121,7 +123,6 @@
   <property name="junit.collector.dir" value="${build.dir}/failingTests"/>
   <property name="junit.collector.class" value="FailedTests"/>
 
-
   <!--
        ===================================================================
          Set the paths used in the build
@@ -179,6 +180,10 @@
        ===================================================================
   -->
 
+  <selector id="needs.jdk9+">
+    <filename name="${modules.package}/"/>
+  </selector>
+
   <!-- Kaffe has some JDK 1.5 features including java.lang.Readable,
        but not all of them -->
   <selector id="not.in.kaffe">
@@ -210,6 +215,29 @@
       </or>
   </selector>
 
+  <selector id="needs.junitlauncher">
+    <or>
+      <filename name="${optional.package}/junitlauncher/"/>
+      <filename name="org/example/junitlauncher/Tracker.java"/>
+    </or>
+  </selector>
+
+  <selector id="needs.junit.engine.vintage">
+    <or>
+      <!-- we need JUnit vintage engine only in tests where we test the junitlauncher task -->
+      <filename name="${optional.package}/junitlauncher/**/JUnitLauncherTaskTest.java"/>
+      <filename name="org/example/junitlauncher/vintage/**/*"/>
+    </or>
+  </selector>
+
+  <selector id="needs.junit.engine.jupiter">
+    <or>
+      <!-- we need JUnit jupiter engine only in tests where we test the junitlauncher task -->
+      <filename name="${optional.package}/junitlauncher/**/JUnitLauncherTaskTest.java"/>
+      <filename name="org/example/junitlauncher/jupiter/**/*"/>
+    </or>
+  </selector>
+
   <selector id="needs.apache-regexp">
     <filename name="${regexp.package}/JakartaRegexp*"/>
   </selector>
@@ -265,13 +293,21 @@
     <filename name="${optional.package}/ANTLR*"/>
   </selector>
 
+  <selector id="needs.imageio">
+    <or>
+      <filename name="${optional.package}/image/ImageIO*"/>
+      <filename name="${optional.type.package}/imageio/"/>
+    </or>
+  </selector>
+
   <selector id="needs.jmf">
     <filename name="${optional.package}/sound/"/>
   </selector>
 
   <selector id="needs.jai">
     <or>
-      <filename name="${optional.package}/image/"/>
+      <filename name="${optional.package}/image/Image.*"/>
+      <filename name="${optional.package}/image/ImageTest.*"/>
       <filename name="${optional.type.package}/image/"/>
     </or>
   </selector>
@@ -293,6 +329,17 @@
     <filename name="${optional.package}/Xalan2TraceSupport*"/>
   </selector>
 
+  <selector id="needs.xz">
+    <or>
+      <filename name="${optional.package}/xz/"/>
+      <filename name="${type.package}/optional/xz/"/>
+    </or>
+  </selector>
+
+  <selector id="needs.graaljs">
+    <filename name="${optional.package}/script/graal/*"/>
+  </selector>
+
   <selector id="ant.launcher">
     <filename name="${ant.package}/launch/"/>
   </selector>
@@ -310,6 +357,7 @@
         <selector refid="needs.apache-xalan2"/>
         <selector refid="needs.commons-logging"/>
         <selector refid="needs.commons-net"/>
+        <selector refid="needs.imageio"/>
         <selector refid="needs.jai"/>
         <selector refid="needs.javamail"/>
         <selector refid="needs.jdepend"/>
@@ -317,8 +365,10 @@
         <selector refid="needs.jsch"/>
         <selector refid="needs.junit"/>
         <selector refid="needs.junit4"/>
+        <selector refid="needs.junitlauncher"/>
         <selector refid="needs.netrexx"/>
         <selector refid="needs.swing"/>
+        <selector refid="needs.xz"/>
         <selector refid="ant.launcher"/>
       </or>
     </not>
@@ -337,7 +387,7 @@
     <exclude unless="run.failing.tests" name="${optional.package}/jdepend/JDependTest.java"/>
   </patternset>
 
-  <!--tests that need an XML Schema-supporting parser to work-->
+  <!-- tests that need an XML Schema-supporting parser to work -->
   <selector id="needs.xmlschema">
     <or>
       <filename name="${optional.package}/SchemaValidateTest.*"/>
@@ -356,6 +406,7 @@
     <include name="${ant.package}/BuildFileTest*"/>
     <include name="${ant.package}/BuildFileRule*"/>
     <include name="${ant.package}/FileUtilities*"/>
+    <include name="${ant.package}/MagicTestNames*"/>
     <include name="${regexp.package}/RegexpMatcherTest*"/>
     <include name="${regexp.package}/RegexpTest*"/>
     <include name="${optional.package}/AbstractXSLTLiaisonTest*"/>
@@ -374,9 +425,6 @@
       </not>
     </condition>
     <property name="ignoresystemclasses" value="false"/>
-    <available property="jdk1.6+" classname="java.net.CookieStore"/>
-    <available property="jdk1.7+" classname="java.nio.file.FileSystem"/>
-    <available property="jdk1.8+" classname="java.lang.reflect.Executable"/>
     <available property="jdk9+" classname="java.lang.module.ModuleDescriptor"/>
     <condition property="jdk10+">
       <javaversion atleast="10"/>
@@ -402,6 +450,15 @@
     <available property="junit4.present"
                classname="org.junit.Test"
                classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+    <available property="junitlauncher.present"
+               classname="org.junit.platform.launcher.Launcher"
+               classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+    <available property="junit.engine.vintage.present"
+               classname="org.junit.vintage.engine.VintageTestEngine"
+               classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+    <available property="junit.engine.jupiter.present"
+               classname="org.junit.jupiter.engine.JupiterTestEngine"
+               classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
     <available property="antunit.present"
                classname="org.apache.ant.antunit.AntUnit"
                classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
@@ -417,6 +474,9 @@
     <available property="apache.oro.present"
                classname="org.apache.oro.text.regex.Perl5Matcher"
                classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+    <available property="imageio.present"
+               classname="javax.imageio.ImageIO"
+               classpathref="classpath"/>
     <available property="jmf.present"
                classname="javax.sound.sampled.Clip"
                classpathref="classpath"/>
@@ -444,15 +504,12 @@
     <available property="bcel.present"
                classname="org.apache.bcel.Constants"
                classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
-
-    <condition property="javamail.complete">
-      <and>
-        <available classname="javax.activation.DataHandler"
-          classpathref="classpath"/>
-        <available classname="javax.mail.Transport"
-          classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
-      </and>
-    </condition>
+    <available property="javamail.present"
+               classname="javax.mail.Transport"
+               classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+    <available property="graaljs.present"
+               classname="com.oracle.truffle.js.scriptengine.GraalJSScriptEngine"
+               classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
 
     <condition property="tests.and.ant.share.classloader">
       <or>
@@ -511,10 +568,13 @@
     <available property="jsch.present"
                classname="com.jcraft.jsch.Session"
                classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
+    <available property="xz.present"
+               classname="org.tukaani.xz.XZOutputStream"
+               classpathref="classpath" ignoresystemclasses="${ignoresystemclasses}"/>
 
     <property name="build.compiler" value="modern"/>
 
-    <!--check for XSD support in the parser-->
+    <!-- check for XSD support in the parser -->
     <condition property="xmlschema.present">
       <or>
         <parsersupports feature="http://apache.org/xml/features/validation/schema"/>
@@ -522,18 +582,15 @@
       </or>
     </condition>
 
-    <!-- 
-    Java8 introduced a HTML checker 'doclint' which is very strict and breaks 
+    <!--
+    Java8 introduced a HTML checker 'doclint' which is very strict and breaks
     the build if there is a HTML error in the JavaDoc.
     -->
-    <condition 
-      property="javadoc.doclint.none" 
-      value="-Xdoclint:none" 
-      else="">
-      <and>
-        <isset property="jdk1.8+"/>
-        <not><isset property="withDoclint"/></not>
-      </and>
+    <condition
+            property="javadoc.doclint.none"
+            value="-Xdoclint:none"
+            else="">
+      <not><isset property="withDoclint"/></not>
     </condition>
   </target>
 
@@ -542,7 +599,7 @@
          Prepare the build
        ===================================================================
   -->
-  <target name="prepare">
+  <target name="prepare" depends="check-optional-packages">
     <tstamp>
       <format property="year" pattern="yyyy"/>
     </tstamp>
@@ -556,50 +613,35 @@
          Build the code
        ===================================================================
   -->
-  <target name="build" depends="prepare,check-optional-packages"
+  <target name="build" depends="prepare, compile, compile-jdk9+" unless="skip.build"
           description="--> compiles the source code">
-    <mkdir dir="${build.dir}"/>
-    <mkdir dir="${build.classes}"/>
-    <mkdir dir="${build.lib}"/>
 
+    <!-- Builds and verifies that the classes belonging in the confined package of
+    junitlauncher task do not depend on classes they aren't meant to -->
+    <!-- first wipe out the "confined" package that might have been built already
+     due to the javac above -->
+    <delete dir="${build.classes}/${optional.package}/junitlauncher/confined/"/>
     <javac srcdir="${java.dir}"
            includeantruntime="false"
            destdir="${build.classes}"
            debug="${debug}"
            deprecation="${deprecation}"
+           includes="${optional.package}/junitlauncher/confined/**"
            target="${javac.target}"
            source="${javac.source}"
+           release="${javac.release}"
            optimize="${optimize}">
-      <classpath refid="classpath"/>
+      <classpath>
+        <!-- A very limited classpath which only doesn't include optional libraries,
+         which the classes in confined package aren't meant to depend on -->
+        <fileset dir="${build.classes}">
+          <!-- exclude the org/apache/tools/ant/taskdefs/optional/junitlauncher package
+          from the classpath, since the confined package isn't meant to depend on
+          classes in this package -->
+          <exclude name="org/apache/tools/ant/taskdefs/optional/junitlauncher/*"/>
+        </fileset>
+      </classpath>
 
-      <selector id="conditional-patterns">
-        <not>
-          <or>
-            <selector refid="not.in.kaffe" if="kaffe"/>
-
-            <selector refid="needs.apache-resolver" unless="apache.resolver.present"/>
-            <selector refid="needs.junit" unless="junit.present"/> <!-- TODO should perhaps use -source 1.4? -->
-            <selector refid="needs.junit4" unless="junit4.present"/>
-            <selector refid="needs.apache-regexp" unless="apache.regexp.present"/>
-            <selector refid="needs.apache-oro" unless="apache.oro.present"/>
-            <selector refid="needs.apache-bcel" unless="bcel.present"/>
-            <selector refid="needs.apache-log4j" unless="log4j.present"/>
-            <selector refid="needs.commons-logging" unless="commons.logging.present"/>
-            <selector refid="needs.apache-bsf" unless="bsf.present"/>
-            <selector refid="needs.javamail" unless="javamail.complete"/>
-            <selector refid="needs.netrexx" unless="netrexx.present"/>
-            <selector refid="needs.commons-net" unless="commons.net.present"/>
-            <selector refid="needs.antlr" unless="antlr.present"/>
-            <selector refid="needs.jmf" unless="jmf.present"/>
-            <selector refid="needs.jai" unless="jai.present"/>
-            <selector refid="needs.jdepend" unless="jdepend.present"/>
-            <selector refid="needs.swing" unless="swing.present"/>
-            <selector refid="needs.jsch" unless="jsch.present"/>
-            <selector refid="needs.xmlschema" unless="xmlschema.present"/>
-            <selector refid="needs.apache-xalan2" unless="recent.xalan2.present"/>
-          </or>
-        </not>
-      </selector>
     </javac>
 
     <copy todir="${build.classes}">
@@ -624,10 +666,83 @@
       <fileset dir="${etc.dir}">
         <include name="junit-frames.xsl"/>
         <include name="junit-noframes.xsl"/>
+        <include name="junit-frames-saxon.xsl"/>
+        <include name="junit-noframes-saxon.xsl"/>
       </fileset>
     </copy>
   </target>
 
+  <target name="compile" depends="prepare">
+    <mkdir dir="${build.classes}"/>
+    <javac srcdir="${java.dir}"
+           includeantruntime="false"
+           destdir="${build.classes}"
+           debug="${debug}"
+           deprecation="${deprecation}"
+           excludes="${optional.package}/junitlauncher/confined/**"
+           target="${javac.target}"
+           source="${javac.source}"
+           release="${javac.release}"
+           optimize="${optimize}">
+      <classpath refid="classpath"/>
+
+      <selector id="conditional-patterns">
+        <not>
+          <or>
+            <selector refid="needs.jdk9+"/>
+            <selector refid="not.in.kaffe" if="kaffe"/>
+            <selector refid="needs.apache-resolver" unless="apache.resolver.present"/>
+            <selector refid="needs.junit" unless="junit.present"/> <!-- TODO should perhaps use -source 1.4? -->
+            <selector refid="needs.junit4" unless="junit4.present"/>
+            <selector refid="needs.junitlauncher" unless="junitlauncher.present"/>
+            <selector refid="needs.junit.engine.vintage" unless="junit.engine.vintage.present"/>
+            <selector refid="needs.junit.engine.jupiter" unless="junit.engine.jupiter.present"/>
+            <selector refid="needs.apache-regexp" unless="apache.regexp.present"/>
+            <selector refid="needs.apache-oro" unless="apache.oro.present"/>
+            <selector refid="needs.apache-bcel" unless="bcel.present"/>
+            <selector refid="needs.apache-log4j" unless="log4j.present"/>
+            <selector refid="needs.commons-logging" unless="commons.logging.present"/>
+            <selector refid="needs.apache-bsf" unless="bsf.present"/>
+            <selector refid="needs.javamail" unless="javamail.present"/>
+            <selector refid="needs.netrexx" unless="netrexx.present"/>
+            <selector refid="needs.commons-net" unless="commons.net.present"/>
+            <selector refid="needs.antlr" unless="antlr.present"/>
+            <selector refid="needs.imageio" unless="imageio.present"/>
+            <selector refid="needs.jmf" unless="jmf.present"/>
+            <selector refid="needs.jai" unless="jai.present"/>
+            <selector refid="needs.jdepend" unless="jdepend.present"/>
+            <selector refid="needs.swing" unless="swing.present"/>
+            <selector refid="needs.jsch" unless="jsch.present"/>
+            <selector refid="needs.xz" unless="xz.present"/>
+            <selector refid="needs.xmlschema" unless="xmlschema.present"/>
+            <selector refid="needs.apache-xalan2" unless="recent.xalan2.present"/>
+          </or>
+        </not>
+      </selector>
+    </javac>
+  </target>
+
+  <target name="compile-jdk9+" depends="prepare" if="jdk9+">
+    <mkdir dir="${build.classes}"/>
+
+    <javac srcdir="${java.dir}"
+           includeantruntime="false"
+           destdir="${build.classes}"
+           debug="${debug}"
+           deprecation="${deprecation}"
+           target="${javac.target}"
+           source="${javac.source}"
+           optimize="${optimize}">
+      <classpath refid="classpath"/>
+
+      <selector id="conditional-patterns-jdk9+">
+          <or>
+            <selector refid="needs.jdk9+"/>
+          </or>
+      </selector>
+    </javac>
+  </target>
+
   <!--
        ===================================================================
          Create the all of the Apache Ant jars
@@ -647,28 +762,8 @@
       <mapper type="glob" from="*" to="*.txt"/>
     </copy>
 
-    <copy file="${manifest}" tofile="${manifest.tmp}"/>
-    <manifest file="${manifest.tmp}">
-      <section name="${optional.package}/">
-        <attribute name="Extension-name"
-                   value="org.apache.tools.ant"/>
-        <attribute name="Specification-Title"
-                   value="Apache Ant"/>
-        <attribute name="Specification-Version"
-                   value="${manifest-version}"/>
-        <attribute name="Specification-Vendor"
-                   value="Apache Software Foundation"/>
-        <attribute name="Implementation-Title"
-                   value="org.apache.tools.ant"/>
-        <attribute name="Implementation-Version"
-                   value="${manifest-version}"/>
-        <attribute name="Implementation-Vendor"
-                   value="Apache Software Foundation"/>
-      </section>
-    </manifest>
-
     <jar destfile="${build.lib}/${name}-launcher.jar"
-         basedir="${build.classes}"
+         basedir="${build.classes}" index="true"
          whenmanifestonly="fail">
       <selector refid="ant.launcher"/>
       <metainf dir="${build.dir}">
@@ -681,8 +776,7 @@
     </jar>
 
     <jar destfile="${build.lib}/${name}.jar"
-         basedir="${build.classes}"
-         manifest="${manifest}"
+         basedir="${build.classes}" index="true"
          whenmanifestonly="fail">
       <!-- Verification: (cd dist/lib; for j in *.jar; do jar tf $j; done) | egrep -v '/$|META-INF/MANIFEST\.MF' | sort | uniq -d -->
       <selector refid="ant.core"/>
@@ -690,10 +784,10 @@
         <include name="LICENSE.txt"/>
         <include name="NOTICE.txt"/>
       </metainf>
-
       <manifest>
+        <attribute name="Main-Class" value="org.apache.tools.ant.Main"/>
         <section name="${ant.package}/">
-          <attribute name="Extension-name"
+          <attribute name="Extension-Name"
                      value="org.apache.tools.ant"/>
           <attribute name="Specification-Title"
                      value="Apache Ant"/>
@@ -717,7 +811,6 @@
 
     <jar destfile="${build.lib}/${bootstrap.jar}"
          basedir="${build.classes}"
-         manifest="${manifest}"
          whenmanifestonly="fail">
       <include name="${ant.package}/Main.class"/>
       <metainf dir="${build.dir}">
@@ -725,8 +818,8 @@
         <include name="NOTICE.txt"/>
       </metainf>
       <manifest>
-        <attribute name="Class-Path"
-                   value="ant.jar xalan.jar"/>
+        <attribute name="Main-Class" value="org.apache.tools.ant.Main"/>
+        <attribute name="Class-Path" value="ant.jar xalan.jar"/>
       </manifest>
     </jar>
 
@@ -734,14 +827,31 @@
       <attribute name="dep"/>
       <sequential>
         <jar destfile="${build.lib}/${optional.jars.prefix}-@{dep}.jar"
-             basedir="${build.classes}"
-             manifest="${manifest.tmp}"
+             basedir="${build.classes}" index="true"
              whenmanifestonly="${optional.jars.whenmanifestonly}">
           <selector refid="needs.@{dep}"/>
           <metainf dir="${build.dir}">
             <include name="LICENSE.txt"/>
             <include name="NOTICE.txt"/>
           </metainf>
+          <manifest>
+            <section name="${optional.package}/">
+              <attribute name="Extension-Name"
+                         value="org.apache.tools.ant"/>
+              <attribute name="Specification-Title"
+                         value="Apache Ant"/>
+              <attribute name="Specification-Version"
+                         value="${manifest-version}"/>
+              <attribute name="Specification-Vendor"
+                         value="Apache Software Foundation"/>
+              <attribute name="Implementation-Title"
+                         value="org.apache.tools.ant"/>
+              <attribute name="Implementation-Version"
+                         value="${manifest-version}"/>
+              <attribute name="Implementation-Vendor"
+                         value="Apache Software Foundation"/>
+            </section>
+          </manifest>
         </jar>
       </sequential>
     </macrodef>
@@ -749,6 +859,7 @@
     <optional-jar dep="apache-resolver"/>
     <optional-jar dep="junit"/>
     <optional-jar dep="junit4"/>
+    <optional-jar dep="junitlauncher"/>
     <optional-jar dep="apache-regexp"/>
     <optional-jar dep="apache-oro"/>
     <optional-jar dep="apache-bcel"/>
@@ -759,12 +870,14 @@
     <optional-jar dep="netrexx"/>
     <optional-jar dep="commons-net"/>
     <optional-jar dep="antlr"/>
+    <optional-jar dep="imageio"/>
     <optional-jar dep="jmf"/>
     <optional-jar dep="jai"/>
     <optional-jar dep="swing"/>
     <optional-jar dep="jsch"/>
     <optional-jar dep="jdepend"/>
     <optional-jar dep="apache-xalan2"/>
+    <optional-jar dep="xz"/>
 
   </target>
 
@@ -776,7 +889,7 @@
       We cannot build the test jar unless JUnit is present,
       as JUnit is needed to compile the test classes.
     </fail>
-    <jar destfile="${build.lib}/${name}-testutil.jar"
+    <jar destfile="${build.lib}/${name}-testutil.jar" index="true"
          basedir="${build.tests}">
       <patternset refid="useful.tests"/>
       <metainf dir="${build.dir}">
@@ -841,6 +954,7 @@
     <optional-src-jar dep="apache-resolver"/>
     <optional-src-jar dep="junit"/>
     <optional-src-jar dep="junit4"/>
+    <optional-src-jar dep="junitlauncher"/>
     <optional-src-jar dep="apache-regexp"/>
     <optional-src-jar dep="apache-oro"/>
     <optional-src-jar dep="apache-bcel"/>
@@ -851,12 +965,14 @@
     <optional-src-jar dep="netrexx"/>
     <optional-src-jar dep="commons-net"/>
     <optional-src-jar dep="antlr"/>
+    <optional-src-jar dep="imageio"/>
     <optional-src-jar dep="jmf"/>
     <optional-src-jar dep="jai"/>
     <optional-src-jar dep="swing"/>
     <optional-src-jar dep="jsch"/>
     <optional-src-jar dep="jdepend"/>
     <optional-src-jar dep="apache-xalan2"/>
+    <optional-src-jar dep="xz"/>
 
   </target>
 
@@ -878,7 +994,7 @@
          Create the essential distribution that can run Apache Ant
        ===================================================================
   -->
-  <target name="dist-lite" depends="jars,test-jar"
+  <target name="dist-lite" depends="jars,test-jar,-ant-dist-warn-jdk9+"
           description="--> creates a minimum distribution to run Apache Ant">
 
     <mkdir dir="${dist.dir}"/>
@@ -909,18 +1025,23 @@
       <include name="*.pl"/>
     </fixcrlf>
 
-    <chmod perm="ugo+rx" dir="${dist.dir}" type="dir" includes="**"
-      failonerror="${chmod.fail}"/>
-    <chmod perm="ugo+r" dir="${dist.dir}" type="file" includes="**"
-      failonerror="${chmod.fail}" maxparallel="${chmod.maxparallel}"/>
-    <chmod perm="ugo+x" type="file" failonerror="${chmod.fail}">
+    <setpermissions mode="755" failonerror="${setpermissions.fail}"
+                    nonPosixMode="${setpermissions.nonposixmode}">
+      <dirset dir="${dist.dir}"/>
+    </setpermissions>
+    <setpermissions mode="644" failonerror="${setpermissions.fail}"
+                    nonPosixMode="${setpermissions.nonposixmode}">
+      <fileset dir="${dist.dir}"/>
+    </setpermissions>
+    <setpermissions mode="755" failonerror="${setpermissions.fail}"
+                    nonPosixMode="${setpermissions.nonposixmode}">
       <fileset dir="${dist.bin}">
         <include name="**/ant"/>
         <include name="**/antRun"/>
         <include name="**/*.pl"/>
         <include name="**/*.py"/>
       </fileset>
-    </chmod>
+    </setpermissions>
 
   </target>
 
@@ -1005,18 +1126,23 @@
       </fileset>
     </copy>
 
-    <chmod perm="ugo+rx" dir="${dist.dir}" type="dir" includes="**"
-      failonerror="${chmod.fail}"/>
-    <chmod perm="ugo+r" dir="${dist.dir}" type="file" includes="**"
-      failonerror="${chmod.fail}" maxparallel="${chmod.maxparallel}"/>
-    <chmod perm="ugo+x" type="file" failonerror="${chmod.fail}">
+    <setpermissions mode="755" failonerror="${setpermissions.fail}"
+                    nonPosixMode="${setpermissions.nonposixmode}">
+      <dirset dir="${dist.dir}"/>
+    </setpermissions>
+    <setpermissions mode="644" failonerror="${setpermissions.fail}"
+                    nonPosixMode="${setpermissions.nonposixmode}">
+      <fileset dir="${dist.dir}"/>
+    </setpermissions>
+    <setpermissions mode="755" failonerror="${setpermissions.fail}"
+                    nonPosixMode="${setpermissions.nonposixmode}">
       <fileset dir="${dist.bin}">
         <include name="**/ant"/>
         <include name="**/antRun"/>
         <include name="**/*.pl"/>
         <include name="**/*.py"/>
       </fileset>
-    </chmod>
+    </setpermissions>
 
     <!-- publish some useful stylesheets -->
     <copy todir="${dist.etc}">
@@ -1120,18 +1246,26 @@
       <exclude name="${tests.etc.dir}/taskdefs/fixcrlf/input/Junk?.java"/>
     </fixcrlf>
 
-    <chmod perm="ugo+x" dir="${src.dist.dir}" type="dir"
-      failonerror="${chmod.fail}"/>
-    <chmod perm="ugo+r" dir="${src.dist.dir}" failonerror="${chmod.fail}"/>
-    <chmod perm="ugo+x" failonerror="${chmod.fail}">
+    <setpermissions mode="755" failonerror="${setpermissions.fail}"
+                    nonPosixMode="${setpermissions.nonposixmode}">
+      <dirset dir="${src.dist.dir}"/>
+    </setpermissions>
+
+    <setpermissions mode="644" failonerror="${setpermissions.fail}"
+                    nonPosixMode="${setpermissions.nonposixmode}">
+      <fileset dir="${src.dist.dir}"/>
+    </setpermissions>
+
+    <setpermissions mode="755" failonerror="${setpermissions.fail}"
+                    nonPosixMode="${setpermissions.nonposixmode}">
       <fileset dir="${src.dist.dir}">
-        <include name="**/.sh"/>
-        <include name="**/.pl"/>
-        <include name="**/.py"/>
+        <include name="**/*.sh"/>
+        <include name="**/*.pl"/>
+        <include name="**/*.py"/>
         <include name="**/ant"/>
         <include name="**/antRun"/>
       </fileset>
-    </chmod>
+    </setpermissions>
 
   </target>
 
@@ -1181,10 +1315,28 @@
   </condition>
 
   <target name="pkg-distribution" depends="zip-distribution" if="buildosxpackage">
-    <exec executable="release/build-osx-pkg.py">
-      <arg value="--output-dir"/>
-      <arg value="${dist.base.binaries}"/>
-      <arg value="${dist.base.binaries}/${dist.name}-bin.zip"/>
+    <mkdir dir="${build.pkg.dir}"/>
+    <unzip src="${dist.base.binaries}/${dist.name}-bin.zip" dest="${build.pkg.dir}">
+      <mapper type="regexp" from="^([^/]*)/(.*)$$" to="\2"/>
+    </unzip>
+    <chmod perm="+x" type="file">
+      <fileset dir="${build.pkg.dir}/bin">
+        <include name="ant"/>
+        <include name="antRun"/>
+        <include name="*.pl"/>
+        <include name="*.py"/>
+      </fileset>
+    </chmod>
+    <exec executable="/usr/bin/pkgbuild">
+      <arg value="--root"/>
+      <arg value="${build.pkg.dir}"/>
+      <arg value="--identifier"/>
+      <arg value="org.apache.ant"/>
+      <arg value="--version"/>
+      <arg value="${project.version}"/>
+      <arg value="--install-location"/>
+      <arg value="/usr/local/ant"/>
+      <arg value="${dist.base.binaries}/${dist.name}.pkg"/>
     </exec>
   </target>
 
@@ -1214,6 +1366,8 @@
           src="${dist.base.binaries}/${dist.name}-bin.tar"/>
     <bzip2 destfile="${dist.base.binaries}/${dist.name}-bin.tar.bz2"
            src="${dist.base.binaries}/${dist.name}-bin.tar"/>
+    <xz destfile="${dist.base.binaries}/${dist.name}-bin.tar.xz"
+        src="${dist.base.binaries}/${dist.name}-bin.tar"/>
     <delete file="${dist.base.binaries}/${dist.name}-bin.tar"/>
   </target>
 
@@ -1261,6 +1415,8 @@
           src="${dist.base.manual}/${dist.name}-manual.tar"/>
     <bzip2 destfile="${dist.base.manual}/${dist.name}-manual.tar.bz2"
            src="${dist.base.manual}/${dist.name}-manual.tar"/>
+    <xz destfile="${dist.base.manual}/${dist.name}-manual.tar.xz"
+        src="${dist.base.manual}/${dist.name}-manual.tar"/>
     <delete file="${dist.base.manual}/${dist.name}-manual.tar"/>
 
     <delete dir="${dist.name}"/>
@@ -1308,6 +1464,8 @@
           src="${dist.base.source}/${dist.name}-src.tar"/>
     <bzip2 destfile="${dist.base.source}/${dist.name}-src.tar.bz2"
            src="${dist.base.source}/${dist.name}-src.tar"/>
+    <xz destfile="${dist.base.source}/${dist.name}-src.tar.xz"
+        src="${dist.base.source}/${dist.name}-src.tar"/>
     <delete file="${dist.base.source}/${dist.name}-src.tar"/>
     <delete dir="${dist.name}"/>
     <checksums>
@@ -1346,8 +1504,10 @@
           description="--> cleans up everything">
     <delete file="${bootstrap.dir}/bin/antRun"/>
     <delete file="${bootstrap.dir}/bin/antRun.bat"/>
-    <delete file="${bootstrap.dir}/bin/*.pl"/>
-    <delete file="${bootstrap.dir}/bin/*.py"/>
+    <delete>
+      <fileset dir="${bootstrap.dir}/bin" includes="*.pl"/>
+      <fileset dir="${bootstrap.dir}/bin" includes="*.py"/>
+    </delete>
   </target>
 
   <!--
@@ -1374,20 +1534,20 @@
          Creates the API documentation
        ===================================================================
   -->
-  <target name="check-javadoc">
+  <target name="check-javadoc" depends="prepare">
     <uptodate property="javadoc.notrequired"
-      targetfile="${build.javadocs}/packages.html">
+              targetfile="${build.javadocs}/packages.html">
       <srcfiles dir="${java.dir}" includes="**/*.java"/>
     </uptodate>
     <uptodate property="tests.javadoc.notrequired"
-      targetfile="${build.tests.javadocs}/packages.html">
+              targetfile="${build.tests.javadocs}/packages.html">
       <srcfiles dir="${src.junit}">
         <patternset refid="useful.tests"/>
       </srcfiles>
     </uptodate>
   </target>
 
-  <target name="javadocs" depends="prepare,check-javadoc,check-optional-packages"
+  <target name="javadocs" depends="check-javadoc"
           description="--> creates the API documentation" unless="javadoc.notrequired">
     <mkdir dir="${build.javadocs}"/>
     <javadoc useexternalfile="yes"
@@ -1399,7 +1559,8 @@
              windowtitle="${Name} API"
              doctitle="${Name}"
              maxmemory="1000M"
-             verbose="${javadoc.verbose}">
+             verbose="${javadoc.verbose}"
+             additionalparam="${javadoc.doclint.none}">
 
       <packageset dir="${java.dir}"/>
 
@@ -1420,7 +1581,7 @@
     </javadoc>
   </target>
 
-  <target name="test-javadocs" depends="prepare,check-javadoc" unless="tests.javadoc.notrequired"
+  <target name="test-javadocs" depends="check-javadoc" unless="tests.javadoc.notrequired"
           description="--> creates the API documentation for test utilities">
     <mkdir dir="${build.tests.javadocs}"/>
     <javadoc useexternalfile="yes"
@@ -1430,7 +1591,8 @@
              version="true"
              locale="en"
              windowtitle="${Name} Test Utilities"
-             doctitle="${Name}">
+             doctitle="${Name}"
+             additionalparam="${javadoc.doclint.none}">
 
       <!-- hide some meta information for javadoc -->
       <tag name="pre" description="Precondition:" scope="all"/>
@@ -1456,6 +1618,7 @@
            debug="${debug}"
            target="${javac.target}"
            source="${javac.source}"
+           release="${javac.release}"
            deprecation="${deprecation}">
       <classpath refid="tests-classpath"/>
 
@@ -1554,6 +1717,11 @@
 
   <target name="test-init" depends="probe-offline,check-optional-packages,dump-info">
     <mkdir dir="${build.junit.tmpdir}"/>
+    <condition property="sun.io.useCanonCaches" value="false">
+      <not>
+        <javaversion atleast="9"/>
+      </not>
+    </condition>
     <macrodef name="test-junit">
       <element name="junit-nested" implicit="true"/>
       <sequential>
@@ -1589,7 +1757,7 @@
                errorproperty="junit.failed"
                filtertrace="${junit.filtertrace}">
           <sysproperty key="ant.home" value="${ant.home}"/>
-          <sysproperty key="build.tests" file="${build.tests}"/>
+          <sysproperty key="build.classes.value" value="${build.classes.value}"/>
           <sysproperty key="build.tests.value" value="${build.tests.value}"/>
           <sysproperty key="offline" value="${offline}"/>
           <sysproperty key="tests-classpath.value"
@@ -1599,6 +1767,11 @@
           <sysproperty key="tests.and.ant.share.classloader"
                        value="${tests.and.ant.share.classloader}"/>
           <sysproperty key="java.io.tmpdir" file="${build.junit.tmpdir}"/>
+          <!-- in Java8 the canonical cache seems to interfere with
+               our symlink tests -->
+          <syspropertyset>
+            <propertyref name="sun.io.useCanonCaches"/>
+          </syspropertyset>
           <classpath>
             <path refid="tests-runtime-classpath"/>
             <pathelement location="${junit.collector.dir}"/>
@@ -1704,7 +1877,41 @@
     </junitreport>
   </target>
 
-  <target name="junit-tests" depends="junit-batch,junit-single-test"/>
+  <target name="junit-tests" depends="junit-batch,graaljs-tests,junit-single-test"/>
+
+  <target name="graaljs-tests" depends="compile-tests,test-init"
+          if="graaljs.present">
+    <junit printsummary="${junit.summary}"
+           haltonfailure="${test.haltonfailure}"
+           fork="true"
+           forkmode="perTest"
+           tempdir="${build.dir}"
+           failureproperty="junit.failed"
+           errorproperty="junit.failed"
+           filtertrace="${junit.filtertrace}">
+      <sysproperty key="ant.home" value="${ant.home}"/>
+      <sysproperty key="build.classes.value" value="${build.classes.value}"/>
+      <sysproperty key="build.tests.value" value="${build.tests.value}"/>
+      <sysproperty key="offline" value="${offline}"/>
+      <sysproperty key="tests-classpath.value"
+                   value="${toString:tests-runtime-classpath}"/>
+      <sysproperty key="root" file="${basedir}"/>
+      <sysproperty key="build.compiler" value="${build.compiler}"/>
+      <sysproperty key="tests.and.ant.share.classloader"
+                   value="${tests.and.ant.share.classloader}"/>
+      <sysproperty key="java.io.tmpdir" file="${build.junit.tmpdir}"/>
+      <classpath>
+        <path refid="tests-runtime-classpath"/>
+        <pathelement location="${junit.collector.dir}"/>
+      </classpath>
+      <formatter type="xml"/>
+      <batchtest todir="${build.junit.xml}" unless="hasFailingTests">
+        <fileset dir="${src.junit}" excludes="**/Abstract*">
+          <selector refid="needs.graaljs" if="graaljs.present"/>
+        </fileset>
+      </batchtest>
+    </junit>
+  </target>
 
   <target name="junit-batch" depends="compile-tests,test-init" if="junit.batch">
 
@@ -1721,6 +1928,7 @@
           <!-- abstract classes, not testcases -->
           <exclude name="${taskdefs.package}/TaskdefsTest.java"/>
           <exclude name="${ant.package}/BuildFileTest.java"/>
+          <exclude name="${ant.package}/MagicTestNames.java"/>
           <exclude name="${regexp.package}/RegexpMatcherTest.java"/>
           <exclude name="${regexp.package}/RegexpTest.java"/>
           <exclude name="${optional.package}/AbstractXSLTLiaisonTest.java"/>
@@ -1733,12 +1941,17 @@
           <exclude name="${optional.package}/junit/TestFormatter.java"/>
           <exclude name="${ant.package}/TestHelper.java"/>
 
+          <!-- JUnit 5 / junitlauncher tests that aren't meant to run by junit task -->
+          <exclude name="${optional.package}/junitlauncher/"/>
+
           <!-- interactive tests -->
           <exclude name="${taskdefs.package}/TestProcess.java"/>
           <exclude name="${optional.package}/splash/SplashScreenTest.java"/>
 
-          <!-- only run these tests if their required libraries are
-               installed -->
+          <!-- GraalVM JavaScript Nashorn compat tests influencing current JVM -->
+          <exclude name="${optional.package}/script/graal/"/>
+
+          <!-- only run these tests if their required libraries are installed -->
           <selector refid="conditional-patterns"/>
 
           <!-- tests excluded if the test is run in offline mode -->
@@ -1873,6 +2086,10 @@
       <echo>AntUnit tests must be run with ${bootstrap.dir} (or ${dist.dir}), not ${ant.home}. Try './build.sh antunit-tests' for example.</echo>
   </target>
 
+  <target name="-ant-dist-warn-jdk9+" unless="jdk9+">
+      <echo>Java 9+ features won't be available in the distribution</echo>
+  </target>
+
   <target name="antunit-tests" depends="build,test-init,-antunit-warn-location" if="run.antunit"
           description="--> run the antunit tests">
     <condition property="antunit.includes" value="${antunit.testcase}"
diff --git a/check.xml b/check.xml
index b5a6586..fe3bacc 100644
--- a/check.xml
+++ b/check.xml
@@ -7,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -18,43 +18,65 @@
 <project default="checkstyle" name="CheckAnt" xmlns:ivy="antlib:org.apache.ivy.ant" xmlns:if="ant:if" xmlns:unless="ant:unless">
 
   <description>
-    Check Ants codebase against certain code styleguide rules using
-    checkstyle and simian.
+    Check Ant codebase against certain code style guidelines using
+    Checkstyle, Apache Rat, SpotBugs, OWASP Dependency Check, Simian
+    and Nu Html Checker (v.Nu).
 
     Checkstyle uses an abstract syntax tree (AST) for doing checks
-    against java sources. It is available at http://checkstyle.sourceforge.net/
+    against Java sources. It is available at https://checkstyle.org/
     under GPL 2.1 license.
 
-    "Simian (Similarity Analyser) identifies duplication in Java, C#, C,
-    CPP, COBOL, JSP, HTML source code and even plain text files."
-    It is available at http://www.redhillconsulting.com.au/products/simian/
+    "Apache Rat is a release audit tool, focused on licenses." It is available
+    at https://creadur.apache.org/rat/ under Apache License, Version 2.0.
+
+    "SpotBugs is a program which uses static analysis to look for bugs in Java
+    code." It is available at https://spotbugs.github.io/ under LGPL 3 license.
+
+    "Dependency-Check is a utility that identifies project dependencies and
+    checks if there are any known, publicly disclosed, vulnerabilities." It is
+    available at https://www.owasp.org/index.php/OWASP_Dependency_Check under
+    Apache License, Version 2.0.
+
+    "Simian (Similarity Analyser) identifies duplication in Java, C#, C, CPP,
+    COBOL, Ruby, JSP, ASP, HTML, XML, Visual Basic, Groovy source code and even
+    plain text files."  It is available at https://www.harukizaemon.com/simian/
     and is for free use in open source projects.
 
+    "The Nu Html Checker (v.Nu) is the backend of checker.html5.org,
+    html5.validator.nu, and validator.w3.org/nu." It is available at
+    https://validator.github.io/validator/ under MIT license.
+
     See external task page and homepages for more information.
   </description>
 
   <import file="build.xml"/>
+  <property name="reports.dir"
+            value="${build.dir}/reports"
+            description="Base directory for generated reports"/>
 
-  <property name="config.dir" location="${etc.dir}/checkstyle"/>
 
-  <!-- Ant Checkstyle report -->
+  <!-- Ant Checkstyle -->
+  <property name="checkstyle.src.dir" location="${etc.dir}/checkstyle"/>
+  <property name="checkstyle.version"
+            value="6.19"
+            description="Which version of Checkstyle to use"/>
   <property name="checkstyle.reportdir"
-            location="${build.dir}/reports/checkstyle"
+            location="${reports.dir}/checkstyle"
             description="Where to store Checkstyle reports"/>
   <property name="checkstyle.raw"
             location="${checkstyle.reportdir}/raw.xml"
-            description="Name of Checkstyle XML-Report"/>
+            description="Name of Checkstyle XML report"/>
   <property name="stylesheet.html"
-            location="${config.dir}/checkstyle-frames.xsl"
+            location="${checkstyle.src.dir}/checkstyle-frames.xsl"
             description="Name of Checkstyle XSLT for generating HTML"/>
   <property name="stylesheet.html.sorted"
-            location="${config.dir}/checkstyle-frames-sortby-check.xsl"
+            location="${checkstyle.src.dir}/checkstyle-frames-sortby-check.xsl"
             description="Name of Checkstyle XSLT for generating 2nd HTML"/>
   <property name="stylesheet.text"
-            location="${config.dir}/checkstyle-text.xsl"
+            location="${checkstyle.src.dir}/checkstyle-text.xsl"
             description="Name of Checkstyle XSLT for generating plain text"/>
   <property name="stylesheet.xdoc"
-            location="${config.dir}/checkstyle-xdoc.xsl"
+            location="${checkstyle.src.dir}/checkstyle-xdoc.xsl"
             description="Name of Checkstyle XSLT for generating XDOC"/>
 
   <property name="checkstyle.basedir"
@@ -64,35 +86,38 @@
             value="**/*.java"
             description="Include pattern of the files to check"/>
 
-  <!-- Findbugs: Running Findbugs -->
+  <!-- Findbugs: Running SpotBugs -->
+  <property name="spotbugs.version"
+            value="3.1.4"
+            description="Which version of SpotBugs to use"/>
   <property name="findbugs.reportdir"
-            location="${build.dir}/reports/findbugs"
-            description="Where to store Findbugs results"/>
+            location="${reports.dir}/findbugs"
+            description="Where to store SpotBugs results"/>
   <property name="findbugs.raw"
             value="raw.xml"
-            description="Findbugs Output xml-file"/>
+            description="Name of SpotBugs XML report"/>
   <property name="findbugs.xsl"
             value="fancy.xsl"
-            description="Which XSL to use for generating Output: default, fancy, plain, summary"/>
+            description="Which XSL to use for generating output: default, fancy, plain, summary"/>
   <property name="findbugs.jvmargs"
             value="-Xms128m -Xmx512m"
-            description="JVMArgs for invoking Findbugs"/>
+            description="JVM arguments when invoking SpotBugs"/>
 
-  <!-- RAT Release Auditing Tool -->
+  <!-- Apache Rat: Release Auditing Tool -->
+  <property name="rat.version"
+            value="0.13"
+            description="Which version of Apache Rat to use"/>
   <property name="rat.report.dir"
-            value="${build.dir}/reports/rat"
-            description="Where to store the RAT reports"/>
+            value="${reports.dir}/rat"
+            description="Where to store Apache Rat reports"/>
   <property name="rat.report.file"
             value="${rat.report.dir}/report.html"
-            description="RAT-Report file"/>
-  <property name="rat.version"
-            value="0.11"
-            description="Which Version of RAT to use"/>
+            description="Name of Apache Rat report"/>
 
   <!-- Simian -->
   <property name="simian.version"
-            value="2.5.9"
-            description="Which Version of Simian to use"/>
+            value="2.5.10"
+            description="Which version of Simian to use"/>
   <property name="simian.uri"
             value="http://www.harukizaemon.com/simian/simian-${simian.version}.tar.gz"
             description="Where to get Simian"/>
@@ -100,13 +125,32 @@
             value="${build.dir}/simian-lib"
             description="Where to store Simian resources"/>
   <property name="simian.report.dir"
-            value="${build.dir}/simian"
+            value="${reports.dir}/simian"
             description="Where to store Simian reports"/>
 
+  <!-- OWASP Dependency Check -->
+  <property name="owasp.dc.version"
+            value="3.2.1"
+            description="Which version of OWASP Dependency Check to use"/>
+  <property name="owasp.dc.report.dir"
+            value="${reports.dir}/owasp-dc"
+            description="Where to store the OWASP Dependency Check reports"/>
+
+  <!-- Nu Html Checker -->
+  <property name="htmlcheck.nu.version"
+            value="18.11.5"
+            description="Which version of Nu Html Checker to use"/>
+  <property name="htmlcheck.report.dir"
+            value="${reports.dir}/html-check"
+            description="Directory where to store the HTML-Check report"/>
+  <property name="htmlcheck.report.file"
+            value="${htmlcheck.report.dir}/report.txt"
+            description="Report file of the HTML-Check"/>
+
 
   <target name="init-ivy">
-    <property name="ivy.version"  value="2.4.0"/>
-    <property name="ivy.jar.url"  value="http://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar"/>
+    <property name="ivy.version"  value="2.5.0"/>
+    <property name="ivy.jar.url"  value="https://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar"/>
     <property name="ivy.jar.dir"  value="${build.dir}/ivy"/>
     <property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar"/>
     <mkdir dir="${ivy.jar.dir}"/>
@@ -117,7 +161,7 @@
     <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>
   </target>
 
-  <target name="checkstyle" description="--> checks Ant codebase according to ${config.dir}/checkstyle-config" depends="init-ivy">
+  <target name="checkstyle" description="--> checks Ant codebase according to ${checkstyle.src.dir}/checkstyle-config" depends="init-ivy">
     <available property="antlr.present" classname="antlr.CommonAST"/>
     <echo if:set="antlr.present">
         Found antlr on the classpath.
@@ -126,11 +170,11 @@
         Skip running Checkstyle.
     </echo>
     <sequential unless:set="antlr.present">
-      <ivy:cachepath organisation="com.puppycrawl.tools" module="checkstyle" revision="6.18"
-                     inline="true" conf="default" pathid="checkstyle.classpath" transitive="true"/>
-      <taskdef resource="com/puppycrawl/tools/checkstyle/ant/checkstyle-ant-task.properties" classpathref="checkstyle.classpath" />
+      <ivy:cachepath organisation="com.puppycrawl.tools" module="checkstyle" revision="${checkstyle.version}"
+                     inline="true" conf="default" pathid="checkstyle.classpath"/>
+      <taskdef resource="com/puppycrawl/tools/checkstyle/ant/checkstyle-ant-task.properties" classpathref="checkstyle.classpath"/>
       <mkdir dir="${checkstyle.reportdir}"/>
-      <checkstyle config="${config.dir}/checkstyle-config" failOnViolation="false">
+      <checkstyle config="${checkstyle.src.dir}/checkstyle-config" failOnViolation="false">
         <formatter type="xml" toFile="${checkstyle.raw}"/>
         <fileset dir="${java.dir}">
           <include name="${tocheck}"/>
@@ -167,7 +211,7 @@
 
   <target name="xdocreport" description="--> generates a xdoc checkstyle report" unless="antlr.present">
     <xslt in="${checkstyle.raw}" style="${stylesheet.xdoc}"
-           out="${checkstyle.reportdir}/xdocs/index.xml">
+          out="${checkstyle.reportdir}/xdocs/index.xml">
       <param name="basedir" expression="${checkstyle.basedir}"/>
     </xslt>
   </target>
@@ -203,7 +247,7 @@
     </taskdef>
     <mkdir dir="${simian.report.dir}"/>
     <simian failureProperty="simian.duplicates.found">
-        <fileset dir="${java.dir}" />
+        <fileset dir="${java.dir}"/>
         <formatter type="plain" toFile="${simian.report.dir}/simian-log.txt"/>
         <formatter type="xml" toFile="${simian.report.dir}/simian-log.xml"/>
     </simian>
@@ -226,40 +270,66 @@
     <fixcrlf srcdir="src/main" includes="${path}" javafiles="yes" tab="remove" tablength="4"/>
   </target>
 
-  <target name="findbugs" description="--> checks Ant codebase with Findbugs" depends="init-ivy,build" xmlns:fb="http://findbugs.sourceforge.net/">
-    <ivy:cachepath organisation="com.google.code.findbugs" module="findbugs-ant" revision="3.0.0"
-                   inline="true" conf="default" pathid="findbugs.real.classpath" transitive="true"/>
-    <!-- Load the Findbugs AntTasks -->               
-    <taskdef uri="http://findbugs.sourceforge.net/" resource="edu/umd/cs/findbugs/anttask/tasks.properties" classpathref="findbugs.real.classpath" />
+  <target name="findbugs" description="--> checks Ant codebase with SpotBugs" depends="init-ivy,build"
+          xmlns:fb="http://findbugs.sourceforge.net/">
+    <!-- Path of optional libs is provided through CLI to forked JVM -->
+    <path id="optional.libs">
+      <fileset dir="lib/optional" includes="*.jar"/>
+    </path>
 
-    <!-- Start Findbugs -->
+    <ivy:cachepath organisation="com.github.spotbugs" module="spotbugs-ant" revision="${spotbugs.version}"
+                   inline="true" conf="default" pathid="spotbugs.classpath"/>
+    <!-- Load the SpotBugs AntTasks -->
+    <taskdef uri="http://findbugs.sourceforge.net/" resource="edu/umd/cs/findbugs/anttask/tasks.properties"
+             classpathref="spotbugs.classpath"/>
+
+    <!-- Start SpotBugs -->
     <mkdir dir="${findbugs.reportdir}"/>
-    <fb:findbugs pluginlistref="findbugs.real.classpath"
-                 classpathref="findbugs.real.classpath"
+    <fb:spotbugs classpathref="spotbugs.classpath"
                  output="xml:withMessages"
                  outputFile="${findbugs.reportdir}/${findbugs.raw}"
                  jvmargs="${findbugs.jvmargs}"
                  projectName="${Name} ${project.version}">
-      <class location="${build.classes}" />
-      <sourcePath path="${java.dir}" />
-    </fb:findbugs>
+      <class location="${build.classes}"/>
+      <sourcePath path="${java.dir}"/>
+      <auxClasspath refid="optional.libs"/>
+    </fb:spotbugs>
 
     <!-- Generate (human) readable output -->
     <xslt basedir="${findbugs.reportdir}" includes="${findbugs.raw}" destdir="${findbugs.reportdir}">
       <style>
-        <javaresource name="${findbugs.xsl}" classpathref="findbugs.real.classpath"/>
+        <javaresource name="${findbugs.xsl}" classpathref="spotbugs.classpath"/>
       </style>  
     </xslt>
   </target>
 
   <target name="rat" description="--> Runs the ReleaseAuditingTool" depends="init-ivy">
     <ivy:cachepath organisation="org.apache.rat" module="apache-rat-tasks" revision="${rat.version}"
-                   inline="true" conf="default" pathid="rat.classpath" transitive="true"/>
+                   inline="true" conf="default" pathid="rat.classpath"/>
     <typedef resource="org/apache/rat/anttasks/antlib.xml"
              uri="antlib:org.apache.rat.anttasks"
              classpathref="rat.classpath"/>
     <mkdir dir="${rat.report.dir}"/>
-    <rat:report xmlns:rat="antlib:org.apache.rat.anttasks" reportfile="${build.dir}/reports/rat/report.txt">
+    <rat:report xmlns:rat="antlib:org.apache.rat.anttasks" reportfile="${rat.report.dir}/report.txt">
+      <rat:fullTextMatcher licenseFamilyCategory="AL   "
+             licenseFamilyName="Apache License Version 2.0 with HTTPS reference">
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+      </rat:fullTextMatcher>
+      <rat:approvedLicense
+             familyName="Apache License Version 2.0 with HTTPS reference"/>
       <fileset dir="${java.dir}">
         <exclude name="org/apache/tools/ant/defaultManifest.mf"/>
         <exclude name="org/apache/tools/ant/version.txt"/>
@@ -267,42 +337,35 @@
     </rat:report>
   </target>
 
-  <target name="dependency-check" description="--> Runs the OWASP dependency check">
-    <property name="dependency-check.url" value="http://dl.bintray.com/jeremy-long/owasp/dependency-check-ant-3.1.0-release.zip"/>
-    <property name="tools.dir" value="tools"/>
-    <property name="dependency-check.dir" value="${tools.dir}/dependency-check"/>
-    <property name="dependency-check.home" value="${dependency-check.dir}/dependency-check-ant"/>
-
-    <!--available property="dependency-check.present" file="${dependency-check.home}/dependency-check-ant/dependency-check-ant.jar"/-->
-    <condition property="dependency-check.present">
-      <resourcecount when="greater" count="0">
-        <fileset dir="${dependency-check.home}" includes="**/dependency-check-ant.jar"/>
-      </resourcecount>
-    </condition>
-    
-    <sequential unless:set="dependency-check.present">
-      <mkdir dir="${dependency-check.home}"/>
-      <get src="${dependency-check.url}" dest="${dependency-check.dir}/dependency-check-ant.zip"/>
-      <unzip src="${dependency-check.dir}/dependency-check-ant.zip" dest="${dependency-check.dir}/dependency-check-ant"/>
-    </sequential>
-
-    <path id="dependency-check.path">
-      <pathelement location="${dependency-check.home}/dependency-check-ant.jar"/>
-      <fileset dir="${dependency-check.home}">
-        <include name="**/*.jar"/>
-      </fileset>
-    </path>
-    <taskdef resource="dependency-check-taskdefs.properties" uri="https://jeremylong.github.io/">
-      <classpath refid="dependency-check.path"/>
-    </taskdef>
-
-    <owasp:dependency-check
-        xmlns:owasp="https://jeremylong.github.io/"
-        projectName="${ant.project.name}"
-    >
+  <target name="dependency-check" description="--> Runs the OWASP Dependency Check" depends="init-ivy">
+    <ivy:cachepath organisation="org.owasp" module="dependency-check-ant" revision="${owasp.dc.version}"
+                   inline="true" conf="default" pathid="owasp.dc.classpath"/>
+    <taskdef resource="dependency-check-taskdefs.properties" uri="https://jeremylong.github.io/"
+             classpathref="owasp.dc.classpath"/>
+    <mkdir dir="${owasp.dc.report.dir}"/>
+    <owasp:dependency-check xmlns:owasp="https://jeremylong.github.io/"
+                            projectName="${ant.project.name}"
+                            reportOutputDirectory="${owasp.dc.report.dir}">
       <fileset dir="lib" includes="**/*.jar"/>
       <fileset dir="." includes="dist/**/*.jar"/>
     </owasp:dependency-check>
   </target>
 
+  <target name="html-check" description="--> Runs the Nu Html Checker" depends="init-ivy">
+    <ivy:cachepath organisation="nu.validator" module="validator" revision="${htmlcheck.nu.version}"
+                   inline="true" conf="default" pathid="nu.classpath"/>
+    <fileset dir="." id="html.files">
+      <include name="${src.dir}/**/*.html"/>
+      <include name="${manual.dir}/**/*.html"/>
+      <exclude name="${manual.dir}/index.html"/>
+    </fileset>
+    <pathconvert pathsep=" " property="html.list" refid="html.files"/>
+    <mkdir dir="${htmlcheck.report.dir}"/>
+    <java classname="nu.validator.client.SimpleCommandLineValidator" classpathref="nu.classpath"
+          taskname="html-check" output="${htmlcheck.report.file}">
+      <arg line="--html --format text"/>
+      <arg line="${html.list}"/>
+    </java>
+    <concat><file name="${htmlcheck.report.file}"/></concat>
+  </target>
 </project>
diff --git a/contributors.xml b/contributors.xml
index a62b1d4..18cb423 100644
--- a/contributors.xml
+++ b/contributors.xml
@@ -7,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -40,6 +40,14 @@
   </name>
   <name>
     <first>Adam</first>
+    <last>Murdoch</last>
+  </name>
+  <name>
+    <first>Adam</first>
+    <last>Retter</last>
+  </name> 
+  <name>
+    <first>Adam</first>
     <last>Sotona</last>
   </name>
   <name>
@@ -47,6 +55,10 @@
     <last>Nistor</last>
   </name>
   <name>
+    <first>Adrien</first>
+    <last>Grand</last>
+  </name>
+  <name>
     <first>Aleksandr</first>
     <last>Ishutin</last>
   </name>
@@ -55,6 +67,10 @@
     <last>Rosen</last>
   </name>
   <name>
+    <first>Alexander</first>
+    <last>Grund</last>
+  </name>
+  <name>
     <first>Alexei</first>
     <last>Yudichev</last>
   </name>
@@ -79,6 +95,10 @@
     <last>Ames</last>
   </name>
   <name>
+    <first>Andreas</first>
+    <last>Mross</last>
+  </name>
+  <name>
     <first>Andrew</first>
     <last>Eisenberg</last>
   </name>
@@ -132,6 +152,10 @@
     <last>Mazkovoi</last>
   </name>
   <name>
+    <first>Arcadius</first>
+    <last>Ahouansou</last>
+  </name>
+  <name>
     <first>Arjan</first>
     <last>Veenstra</last>
   </name>
@@ -145,8 +169,12 @@
     <last>Kuiper</last>
   </name>
   <name>
+    <first>Arun</first>
+    <last>Jamwal</last>
+  </name>
+  <name>
     <first>Aslak</first>
-    <last>Helles&#244;y</last>
+    <last>Hellesôy</last>
   </name>
   <name>
     <first>Atsuhiko</first>
@@ -161,6 +189,9 @@
     <last>Fejes 2</last>
   </name>
   <name>
+    <last>barney2k7</last>
+  </name>
+  <name>
     <first>Bart</first>
     <last>Vanhaute</last>
   </name>
@@ -218,6 +249,14 @@
     <last>Atherton</last>
   </name>
   <name>
+    <first>Cedomir</first>
+    <last>Igaly</last>
+  </name>
+  <name>
+    <first>Charles</first>
+    <last>Duffy</last>
+  </name>
+  <name>
     <first>Charles</first>
     <last>Hudak</last>
   </name>
@@ -283,6 +322,10 @@
     <last>MacNeill</last>
   </name>
   <name>
+    <first>Costin</first>
+    <last>Manolache</last>
+  </name>
+  <name>
     <first>Craeg</first>
     <last>Strong</last>
   </name>
@@ -292,16 +335,20 @@
   </name>
   <name>
     <first>Craig</first>
+    <last>Pell</last>
+  </name>
+  <name>
+    <first>Craig</first>
     <middle>R.</middle>
     <last>McClanahan</last>
   </name>
   <name>
     <first>Craig</first>
-    <last>Ryan</last>
+    <last>Richardson</last>
   </name>
   <name>
     <first>Craig</first>
-    <last>Richardson</last>
+    <last>Ryan</last>
   </name>
   <name>
     <first>Craig</first>
@@ -368,6 +415,10 @@
     <last>Briones</last>
   </name>
   <name>
+    <first>Darrell</first>
+    <last>DeBoer</last>
+  </name>
+  <name>
     <first>Davanum</first>
     <last>Srinivas</last>
   </name>
@@ -381,7 +432,8 @@
   </name>
   <name>
     <first>David</first>
-    <last>A.</last>
+    <middle>A.</middle>
+    <last>Herman</last>
   </name>
   <name>
     <first>David</first>
@@ -389,7 +441,7 @@
   </name>
   <name>
     <first>David</first>
-    <last>G&#228;rtner</last>
+    <last>Gärtner</last>
   </name>
   <name>
     <first>David</first>
@@ -452,12 +504,8 @@
     <last>Devienne</last>
   </name>
   <name>
-    <first>Donal</first>
-    <last>Quinlan</last>
-  </name>
-  <name>
     <first>Don</first>
-    <last>Bnamen</last>
+    <last>Brown</last>
   </name>
   <name>
     <first>Don</first>
@@ -468,6 +516,14 @@
     <last>Jeffery</last>
   </name>
   <name>
+    <first>Donal</first>
+    <last>Quinlan</last>
+  </name>
+  <name>
+    <first>Donald</first>
+    <last>Leslie</last>
+  </name>
+  <name>
     <first>Drew</first>
     <last>Sudell</last>
   </name>
@@ -496,6 +552,10 @@
     <last>Bourg</last>
   </name>
   <name>
+    <first>Eugène</first>
+    <last>Adell</last>
+  </name>
+  <name>
     <first>Eric</first>
     <last>Olsen</last>
   </name>
@@ -552,6 +612,10 @@
     <last>Lavigne</last>
   </name>
   <name>
+    <first>Gal</first>
+    <last>Shachor</last>
+  </name>
+  <name>
     <first>Gary</first>
     <middle>S.</middle>
     <last>Weaver</last>
@@ -673,11 +737,20 @@
     <last>Bleijenbergh</last>
   </name>
   <name>
+    <first>JC</first>
+    <last>Mann</last>
+  </name>
+  <name>
     <first>Jack</first>
     <middle>J.</middle>
     <last>Woehr</last>
   </name>
   <name>
+    <first>Jacobus</first>
+    <middle>Martinus</middle>
+    <last>Kruithof</last>
+  </name>
+  <name>
     <first>Jaikiran</first>
     <last>Pai</last>
   </name>  
@@ -687,12 +760,16 @@
     <last>Davidson</last>
   </name>
   <name>
+    <first>James</first>
+    <last>Todd</last>
+  </name>
+  <name>
     <first>Jan</first>
     <last>Cumps</last>
   </name>
   <name>
     <first>Jan</first>
-    <last>Mat&#232;rne</last>
+    <last>Matèrne</last>
   </name>
   <name>
     <first>Jan</first>
@@ -732,18 +809,14 @@
     <last>van der Meer</last>
   </name>
   <name>
-    <first>JC</first>
-    <last>Mann</last>
-  </name>
-  <name>
-    <first>J</first>
-    <last>D</last>
-  </name>
-  <name>
     <first>Jean-Francois</first>
     <last>Brousseau</last>
   </name>
   <name>
+    <first>Jean-Louis</first>
+    <last>Boudart</last>
+  </name>
+  <name>
     <first>Jeff</first>
     <last>Gettle</last>
   </name>
@@ -792,14 +865,14 @@
     <last>Casey</last>
   </name>
   <name>
-    <first>Joerg</first>
-    <last>Wassmer</last>
-  </name>
-  <name>
     <first>Joel</first>
     <last>Tucci</last>
   </name>
   <name>
+    <first>Joerg</first>
+    <last>Wassmer</last>
+  </name>
+  <name>
     <first>Joey</first>
     <last>Richey</last>
   </name>
@@ -829,19 +902,24 @@
     <last>Stevens</last>
   </name>
   <name>
+    <first>Jonathan</first>
+    <middle>K.</middle>
+    <last>Schneider</last>
+  </name>
+  <name>
     <first>Jose</first>
     <middle>Alberto</middle>
     <last>Fernandez</last>
   </name>
   <name>
-    <first>Josh</first>
-    <last>Lucas</last>
-  </name>
-  <name>
     <first>Joseph</first>
     <last>Walton</last>
   </name>
   <name>
+    <first>Josh</first>
+    <last>Lucas</last>
+  </name>
+  <name>
     <first>Juerg</first>
     <last>Wanner</last>
   </name>
@@ -850,10 +928,22 @@
     <last>Simpson</last>
   </name>
   <name>
+    <first>Julien</first>
+    <last>Lepiller</last>
+  </name>
+  <name>
     <first>Justin</first>
     <last>Vallon</last>
   </name>
   <name>
+    <first>Justyna</first>
+    <last>Horwat</last>
+  </name>
+  <name>
+    <first>Karl</first>
+    <last>Jansen</last>
+  </name>
+  <name>
     <first>Keiron</first>
     <last>Liddle</last>
   </name>
@@ -880,7 +970,7 @@
   </name>
   <name>
     <first>Kevin</first>
-    <middle>Z</middle>
+    <middle>Z.</middle>
     <last>Grey</last>
   </name>
   <name>
@@ -935,6 +1025,10 @@
     <last>Claude</last>
   </name>
   <name>
+    <first>Maarten</first>
+    <last>Coene</last>
+  </name>
+  <name>
     <first>Magesh</first>
     <last>Umasankar</last>
   </name>
@@ -943,6 +1037,10 @@
     <last>Sahu</last>
   </name>
   <name>
+    <first>Marc</first>
+    <last>Guillemot</last>
+  </name>
+  <name>
     <first>Marcel</first>
     <last>Schutte</last>
   </name>
@@ -960,15 +1058,24 @@
   </name>
   <name>
     <first>Mark</first>
+    <middle>A.</middle>
+    <last>Ziesemer</last>
+  </name>
+  <name>
+    <first>Mark</first>
     <last>DeLaFranier</last>
   </name>
   <name>
     <first>Mark</first>
+    <last>Harmer</last>
+  </name>
+  <name>
+    <first>Mark</first>
     <last>Hecker</last>
   </name>
   <name>
     <first>Mark</first>
-    <last>Salter</last>
+    <last>Niggemann</last>
   </name>
   <name>
     <first>Mark</first>
@@ -977,12 +1084,7 @@
   </name>
   <name>
     <first>Mark</first>
-    <last>Niggemann</last>
-  </name>
-  <name>
-    <first>Mark</first>
-    <middle>A.</middle>
-    <last>Ziesemer</last>
+    <last>Salter</last>
   </name>
   <name>
     <first>Markus</first>
@@ -1009,6 +1111,14 @@
     <last>von Gagern</last>
   </name>
   <name>
+    <first>Mathieu</first>
+    <last>Champlon</last>
+  </name>
+  <name>
+    <first>Mathieu</first>
+    <last>Peltier</last>
+  </name>
+  <name>
     <first>Matt</first>
     <last>Albrecht</last>
   </name>
@@ -1041,18 +1151,6 @@
     <last>Wildig</last>
   </name>
   <name>
-    <first>Mathieu</first>
-    <last>Champlon</last>
-  </name>
-  <name>
-    <first>Mathieu</first>
-    <last>Peltier</last>
-  </name>
-  <name>
-    <first>Matthias</first>
-    <last>Bhend</last>
-  </name>
-  <name>
     <first>Matthew</first>
     <last>Hawthorne</last>
   </name>
@@ -1067,6 +1165,10 @@
   </name>
   <name>
     <first>Matthew</first>
+    <last>Warman</last>
+  </name>
+  <name>
+    <first>Matthew</first>
     <last>Watson</last>
   </name>
   <name>
@@ -1074,6 +1176,14 @@
     <last>Yanos</last>
   </name>
   <name>
+    <first>Matthias</first>
+    <last>Bhend</last>
+  </name>
+  <name>
+    <first>Matthias</first>
+    <last>Gutheil</last>
+  </name>
+  <name>
     <first>Michael</first>
     <last>Bayne</last>
   </name>
@@ -1096,6 +1206,10 @@
   </name>
   <name>
     <first>Michael</first>
+    <last>Montuori</last>
+  </name>
+  <name>
+    <first>Michael</first>
     <last>Newcomb</last>
   </name>
   <name>
@@ -1107,6 +1221,14 @@
     <last>Saunders</last>
   </name>
   <name>
+    <first>Michael</first>
+    <last>Seele</last>
+  </name>
+  <name>
+    <first>Mickaël</first>
+    <last>Guessant</last>
+  </name>
+  <name>
     <last>Miha</last>
   </name>
   <name>
@@ -1126,9 +1248,6 @@
     <last>Zaťko</last>
   </name>
   <name>
-    <last>mnowostawski</last>
-  </name>
-  <name>
     <first>Mounir</first>
     <last>El Hajj</last>
   </name>
@@ -1146,21 +1265,34 @@
   </name>
   <name>
     <first>Nick</first>
+    <last>Davis</last>
+  </name>
+  <name>
+    <first>Nick</first>
     <last>Fortescue</last>
   </name>
   <name>
     <first>Nick</first>
+    <last>King</last>
+  </name>
+  <name>
+    <first>Nick</first>
     <last>Pellow</last>
   </name>
   <name>
-    <first>Nicola</first>
-    <last>Ken</last>
-  </name>
-  <name>
     <first>Nico</first>
     <last>Seessle</last>
   </name>
   <name>
+    <first>Nicola</first>
+    <middle>Ken</middle>
+    <last>Barozzi</last>
+  </name>
+  <name>
+    <first>Nicolas</first>
+    <last>Lalevée</last>
+  </name>
+  <name>
     <first>Nigel</first>
     <last>Magnay</last>
   </name>
@@ -1173,6 +1305,10 @@
     <last>Rossmueller</last>
   </name>
   <name>
+    <first>Olivier</first>
+    <last>Parent</last>
+  </name>
+  <name>
     <first>Omer</first>
     <last>Shapira</last>
   </name>
@@ -1181,16 +1317,13 @@
     <last>Medek</last>
   </name>
   <name>
-    <first>&#216;ystein</first>
-    <last>Gisn&#229;s</last>
-  </name>
-  <name>
     <first>Patrick</first>
     <last>Altaie</last>
   </name>
   <name>
     <first>Patrick</first>
-    <last>C.</last>
+    <middle>C.</middle>
+    <last>Beard</last>
   </name>
   <name>
     <first>Patrick</first>
@@ -1198,7 +1331,12 @@
   </name>
   <name>
     <first>Patrick</first>
-    <last>Gus</last>
+    <middle>Gus</middle>
+    <last>Heck</last>
+  </name>
+  <name>
+    <first>Patrick</first>
+    <last>Martin</last>
   </name>
   <name>
     <first>Paul</first>
@@ -1282,8 +1420,8 @@
     <last>Dittgen</last>
   </name>
   <name>
-    <first>R</first>
-    <last>Handerson</last>
+    <first>Preston</first>
+    <last>Bannister</last>
   </name>
   <name>
     <first>Ralf</first>
@@ -1306,6 +1444,10 @@
     <last>Waldin</last>
   </name>
   <name>
+    <first>Razzi</first>
+    <last>Abuissa</last>
+  </name>
+  <name>
     <first>Reinhard</first>
     <last>Pointner</last>
   </name>
@@ -1334,11 +1476,24 @@
     <last>Beton</last>
   </name>
   <name>
+    <first>Rob</first>
+    <last>Riasol</last>
+  </name>
+  <name>
+    <first>Rob</first>
+    <last>Oxspring</last>
+  </name>
+  <name>
+    <first>Rob</first>
+    <last>van Oostrum</last>
+  </name>
+  <name>
     <first>Robbie</first>
     <last>Gibson</last>
   </name>
   <name>
     <first>Robert</first>
+    <middle>H.</middle>
     <last>Anderson</last>
   </name>
   <name>
@@ -1378,14 +1533,6 @@
     <last>Verduijn</last>
   </name>
   <name>
-    <first>Rob</first>
-    <last>Oxspring</last>
-  </name>
-  <name>
-    <first>Rob</first>
-    <last>van Oostrum</last>
-  </name>
-  <name>
     <first>Rodrigo</first>
     <last>Schmidt</last>
   </name>
@@ -1448,6 +1595,10 @@
     <last>Kane</last>
   </name>
   <name>
+    <first>Sebastian</first>
+    <last>Kantha</last>
+  </name>
+  <name>
     <first>Sebastien</first>
     <last>Arod</last>
   </name>
@@ -1456,12 +1607,16 @@
     <last>Kanga</last>
   </name>
   <name>
-    <first>Sebastian</first>
-    <last>Kantha</last>
+    <first>Simeon</first>
+    <last>Fitch</last>
   </name>
   <name>
-      <first>Simon</first>
-      <last>Law</last>
+    <first>Simon</first>
+    <last>Law</last>
+  </name>
+  <name>
+    <first>Simon</first>
+    <last>Legner</last>
   </name>
   <name>
     <first>Simone</first>
@@ -1480,6 +1635,13 @@
     <last>Mazzocchi</last>
   </name>
   <name>
+    <last>stephan</last>
+  </name>
+  <name>
+    <first>Stephan</first>
+    <last>Michels</last>
+  </name>
+  <name>
     <first>Stephan</first>
     <last>Strittmatter</last>
   </name>
@@ -1488,15 +1650,12 @@
     <last>Bailliez</last>
   </name>
   <name>
-    <last>stephan</last>
-  </name>
-  <name>
-    <first>Stephan</first>
-    <last>Michels</last>
+    <first>Stephen</first>
+    <last>Chin</last>
   </name>
   <name>
     <first>Stephen</first>
-    <last>Chin</last>
+    <last>Goetze</last>
   </name>
   <name>
     <first>Steve</first>
@@ -1581,6 +1740,10 @@
   </name>
   <name>
     <first>Tim</first>
+    <last>Stephenson</last>
+  </name>
+  <name>
+    <first>Tim</first>
     <last>Whittington</last>
   </name>
   <name>
@@ -1593,12 +1756,12 @@
     <last>Endres</last>
   </name>
   <name>
-    <first>Tim</first>
-    <last>Stephenson</last>
+    <first>Tom</first>
+    <last>Ball</last>
   </name>
   <name>
     <first>Tom</first>
-    <last>Ball</last>
+    <last>Brus</last>
   </name>
   <name>
     <first>Tom</first>
@@ -1625,8 +1788,12 @@
     <last>Zezula</last>
   </name>
   <name>
+    <first>Tony</first>
+    <last>Gravagno</last>
+  </name>
+  <name>
     <first>Trejkaz</first>
-    <last>Xaoz</last>
+    <last>Xaoza</last>
   </name>
   <name>
     <first>Ulrich</first>
@@ -1645,6 +1812,14 @@
     <last>Toni</last>
   </name>
   <name>
+    <first>Ville</first>
+    <last>Skyttä</last>
+  </name>
+  <name>
+    <first>Vimil</first>
+    <last>Saju</last>
+  </name>
+  <name>
     <first>Vincent</first>
     <last>Legoll</last>
   </name>
@@ -1653,22 +1828,30 @@
     <last>Privat</last>
   </name>
   <name>
-    <first>Vimil</first>
-    <last>Saju</last>
-  </name>
-  <name>
     <first>Vitold</first>
     <last>Sedyshev</last>
   </name>
   <name>
+    <first>Vladislav</first>
+    <last>Bauer</last>
+  </name>
+  <name>
     <first>Volker</first>
     <last>Leidl</last>
   </name>
   <name>
+    <first>Waldek</first>
+    <last>Herka</last>
+  </name>
+  <name>
     <first>Wang</first>
     <last>Weijun</last>
   </name>
   <name>
+    <first>Wenjing</first>
+    <last>Wang</last>
+  </name>
+  <name>
     <first>Will</first>
     <last>Wang</last>
   </name>
@@ -1713,6 +1896,10 @@
     <last>Witdouck</last>
   </name>
   <name>
+    <first>Xia</first>
+    <last>Li</last>
+  </name>
+  <name>
     <first>Yohann</first>
     <last>Roussel</last>
   </name>
@@ -1733,7 +1920,7 @@
     <last>Wagner</last>
   </name>
   <name>
-    <first/>
-    <last>riasol</last>
+    <first>Øystein</first>
+    <last>Gisnås</last>
   </name>
 </contributors>
diff --git a/docs.xml b/docs.xml
index 3f80b26..cccd2cb 100644
--- a/docs.xml
+++ b/docs.xml
@@ -7,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -17,9 +17,7 @@
 -->
 <project name="docs" default="txt2html">
 
-    <available property="jdk1.5+" classname="java.net.Proxy"/>
     <target name="txt2html">
-        <fail unless="jdk1.5+" message="Tomcat BuildUtils requires Java5+"/>
         <property name="build.dir" value="build"/>
         <tempfile property="temp.dir"/>
         <mkdir dir="${temp.dir}/org/apache/tomcat/buildutil"/>
diff --git a/fetch.xml b/fetch.xml
index 106237d..24e8e6d 100644
--- a/fetch.xml
+++ b/fetch.xml
@@ -8,7 +8,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -232,6 +232,24 @@
     <f2 project="org.hamcrest" archive="hamcrest-library"/>
   </target>
 
+  <target name="junitlauncher"
+    description="load junitlauncher libraries"
+    depends="init">
+    <f2 project="org.junit.platform" archive="junit-platform-launcher" />
+  </target>
+
+  <target name="junit-engine-jupiter"
+          description="load junit jupiter engine libraries (necessary only for internal Ant project tests)"
+          depends="init">
+    <f2 project="org.junit.jupiter" archive="junit-jupiter-engine" />
+  </target>
+
+  <target name="junit-engine-vintage"
+          description="load junit vintage engine libraries (necessary only for internal Ant project tests)"
+          depends="init">
+    <f2 project="org.junit.vintage" archive="junit-vintage-engine" />
+  </target>
+
   <target name="xml"
           description="load full XML libraries (Xalan and xml-resolver)"
           depends="init">
@@ -262,7 +280,7 @@
   <target name="bcel"
           description="load Byte Code Engineering Library (BCEL)"
           depends="init">
-    <f2 project="bcel"/>
+    <f2 project="org.apache.bcel" archive="bcel"/>
   </target>
 
   <target name="jdepend"
@@ -287,7 +305,6 @@
           description="load BeanShell support"
           depends="bsf">
     <f2 project="org.beanshell" archive="bsh"/>
-    <f2 project="org.beanshell" archive="bsh-core"/>
   </target>
 
   <target name="jython"
@@ -302,9 +319,15 @@
     <f2 project="org.mozilla" archive="rhino"/>
   </target>
 
+  <target name="graal.js"
+          description="load Graal.js">
+    <f2 project="org.graalvm.js" archive="js"/>
+    <f2 project="org.graalvm.js" archive="js-scriptengine"/>
+  </target>
+
   <target name="script"
           description="load script languages (except Jython)"
-          depends="bsf,jruby,beanshell,rhino"/>
+          depends="bsf,jruby,beanshell,rhino,graal.js"/>
 
   <target name="debugging"
     description="internal Ant debugging"
@@ -312,14 +335,14 @@
     <f2 project="which"/>
   </target>
 
-  <target name="javamail"
-          description="load Java Mail"
+  <target name="jakartamail"
+          description="load Jakarta Mail"
           depends="init">
     <!-- We only need this one dependency as per
-      the project doc https://javaee.github.io/javamail/#Download_JavaMail_Release
+      the project doc https://eclipse-ee4j.github.io/mail/
       This alone should bring in all necessary dependencies (including the API
        jars and the activation jars -->
-    <f2 project="com.sun.mail" archive="javax.mail"/>
+    <f2 project="com.sun.mail" archive="jakarta.mail"/>
   </target>
 
   <target name="jspc"
@@ -371,8 +394,14 @@
          dest="${temp.dir}/NetRexx.zip" skipexisting="true"/>
   </target>
 
+  <target name="xz"
+          description="load XZ for Java"
+          depends="init">
+    <f2 project="org.tukaani" archive="xz"/>
+  </target>
+
   <target name="all"
     description="load all the libraries (except jython)"
-    depends="antunit,ivy,logging,junit,xml,networking,regexp,antlr,bcel,jdepend,bsf,debugging,script,javamail,jspc,jai,netrexx"/>
-
+    depends="antunit,ivy,logging,junit,junitlauncher,xml,networking,regexp,antlr,bcel,jdepend,bsf,debugging,script,
+      jakartamail,jspc,jai,xz,netrexx,junit-engine-vintage,junit-engine-jupiter"/>
 </project>
diff --git a/get-m2.xml b/get-m2.xml
index 4111e81..de30ef2 100644
--- a/get-m2.xml
+++ b/get-m2.xml
@@ -8,7 +8,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
diff --git a/launch-build.xml b/launch-build.xml
index 753ef2b..0c5feea 100644
--- a/launch-build.xml
+++ b/launch-build.xml
@@ -7,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
diff --git a/lib/libraries.properties b/lib/libraries.properties
index 0bf5f19..7964e69 100644
--- a/lib/libraries.properties
+++ b/lib/libraries.properties
@@ -5,7 +5,7 @@
 # (the "License"); you may not use this file except in compliance with
 # the License.  You may obtain a copy of the License at
 #
-#     http://www.apache.org/licenses/LICENSE-2.0
+#     https://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
@@ -33,36 +33,37 @@
 
 # Versions of different libraries. Please keep in alphabetical order, except
 # when a specific dependency forces them to be out-of-order
-ivy.version=2.4.0
-activation.version=1.1.1
+ivy.version=2.5.0
 ant-antunit.version=1.4
 antlr.version=2.7.7
-bcel.version=5.1
+bcel.version=6.4.1
 bsf.version=2.4.0
-bsh.version=2.0b4
-bsh-core.version=${bsh.version}
-# Later versions are built with Java 6
-commons-net.version=2.2
+bsh.version=2.0b5
+commons-net.version=3.6
 commons-logging.version=1.1
 commons-logging-api.version=${commons-logging.version}
+js.version=20.1.0
+js-scriptengine.version=${js.version}
 hamcrest-core.version=1.3
 hamcrest-library.version=${hamcrest-core.version}
 jai-core.version=1.1.3
 jai-codec.version=1.1.3
+jakarta.mail.version=1.6.4
 jakarta-regexp.version=1.4
 # Later versions of Tomcat provide a jspc task
 jasper-compiler.version=4.1.36
 jasper-runtime.version=${jasper-compiler.version}
-# Later versions are built with Java 7
-javax.mail.version=1.5.6
 jdepend.version=2.9.1
-# Later versions are built with Java 7
 jruby.version=1.6.8
 junit.version=4.13.1
-# Later versions are built with Java 6
-rhino.version=1.7R5
+rhino.version=1.7.11
+junit-platform-launcher.version=1.2.0
+# Only used for internal tests in Ant project
+junit-vintage-engine.version=5.2.0
+# Only used for internal tests in Ant project
+junit-jupiter-engine.version=5.2.0
 jsch.version=0.1.55
-jython.version=2.5.3
+jython.version=2.7.0
 # log4j 1.2.15 requires JMS and a few other Sun jars that are not in the m2 repo
 log4j.version=1.2.14
 oro.version=2.0.8
@@ -70,6 +71,7 @@
 which.version=1.0
 xalan.version=2.7.2
 xml-resolver.version=1.2
+xz.version=1.8
 # paired
 jacl.version=1.2.6
 tcljava.version=${jacl.version}
diff --git a/lib/optional/junit-4.12.jar b/lib/optional/junit-4.12.jar
deleted file mode 100644
index 3a7fc26..0000000
--- a/lib/optional/junit-4.12.jar
+++ /dev/null
Binary files differ
diff --git a/lib/optional/junit-4.13.jar b/lib/optional/junit-4.13.jar
new file mode 100644
index 0000000..acc3c43
--- /dev/null
+++ b/lib/optional/junit-4.13.jar
Binary files differ
diff --git a/manual/Integration/jext-plugin.html b/manual/Integration/jext-plugin.html
index 84e88c0..dade832 100644
--- a/manual/Integration/jext-plugin.html
+++ b/manual/Integration/jext-plugin.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,43 +15,39 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
-<html>
+<html lang="en">
 <head>
-  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <meta http-equiv="Content-Language" content="en-us">
-  <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>Apache AntWork Plugin for the Jext Java Text Editor</title>
 </head>
 <body>
 
-<h1>AntWork Plugin for the Jext Java Text Editor</h1>
- <a name="authors"></a>by<ul>
-  <li>Klaus Hartlage
-      (<a href="mailto:KHartlage@t-online.de">KHartlage@t-online.de</a>)</li>
+<h1 id="authors">AntWork Plugin for the Jext Java Text Editor</h1>
+by
+<ul>
+  <li>Klaus Hartlage (<a href="mailto:KHartlage@t-online.de">KHartlage@t-online.de</a>)</li>
 </ul>
-<hr>
+<hr/>
 
-<p>You can download the plugin at: <a
-href="ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip">ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip</a></p>
+<p>You can download the plugin
+at: <a href="https://sourceforge.net/projects/jext/files/OldFiles/antwork_plugin.zip/download"
+target="_top">https://sourceforge.net/projects/jext/files/OldFiles/antwork_plugin.zip/download</a></p>
 
-<h2>Installation instructions from the Readme.txt:</h2>
+<h2>Installation instructions from the Readme.txt</h2>
 
 <p>You have to enable the Jext Console to see the Apache Ant output (menu:
-Edit-&gt;Options... - General Panel), because the Ant messages are
-redirected to the Jext console.</p>
+Edit&rarr;Options&hellip;&ndash;General Panel), because Ant messages are redirected to the Jext
+console.</p>
 
-<p>You can configure the Ant call in the Jext menu: Edit-&gt;Options... -
-Plugin Options - Antwork Plugin Panel; here you can set the ant home
-directory and the path to your build file.</p>
+<p>You can configure the Ant call in the Jext menu: Edit&rarr;Options&hellip;&ndash; Plugin
+Options&ndash;Antwork Plugin Panel; here you can set Ant home directory and the path to your build
+file.</p>
 
-<p>You can start AntWork in the menu: Plugins-&gt;Ant-&gt;Work Now!  In the
-appearing dialog box you can enter the target which you want to
-compile.</p>
+<p>You can start AntWork in the menu: Plugins&rarr;Ant&rarr;Work Now!  In the appearing dialog box
+you can enter the target which you want to compile.</p>
 
-<p>If a javac error occurs in the ant run an error-list opens within
-Jext. With a double-click on the error-message you jump to the error
-in the specified java text file.</p>
+<p>If a <code>javac</code> error occurs in the Ant run, an error list opens within Jext. With a
+double click on the error message you jump to the error in the specified Java source file.</p>
 
-
-</body></html>
+</body>
+</html>
diff --git a/manual/LICENSE b/manual/LICENSE
index f820d4b..239ec94 100644
--- a/manual/LICENSE
+++ b/manual/LICENSE
@@ -1,7 +1,7 @@
 /*
  *                                 Apache License
  *                           Version 2.0, January 2004
- *                        http://www.apache.org/licenses/
+ *                        https://www.apache.org/licenses/
  *
  *   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
  *
@@ -193,7 +193,7 @@
  *   you may not use this file except in compliance with the License.
  *   You may obtain a copy of the License at
  *
- *       http://www.apache.org/licenses/LICENSE-2.0
+ *       https://www.apache.org/licenses/LICENSE-2.0
  *
  *   Unless required by applicable law or agreed to in writing, software
  *   distributed under the License is distributed on an "AS IS" BASIS,
diff --git a/manual/Tasks/BorlandEJBTasks.html b/manual/Tasks/BorlandEJBTasks.html
index 126fe5c..a60d3d2 100644
--- a/manual/Tasks/BorlandEJBTasks.html
+++ b/manual/Tasks/BorlandEJBTasks.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,130 +15,122 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-<meta http-equiv="Content-Language" content="en-us">
 <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>Borland EJB Tasks</title>
 </head>
 
 <body>
 
-<h2><a name="log">BorlandDeploy</a>Tool</h2>
+<h2 id="log">BorlandDeployTool</h2>
 <p>by Benoit Moussaud (<a href="mailto:benoit.moussaud@criltelecom.com">benoit.moussaud@criltelecom.com</a>)</p>
 
 
 <h3>Description</h3>
 <p>The BorlandDeployTool is a vendor specific nested element for the Ejbjar optional task.</p>
-<p>BorlandDeploymentTool is dedicated to the Borland Application Server 4.5.x and Borland
-  Enterprise Server 5.x. It  generates and compiles the stubs and skeletons for all ejb described into the
-  Deployment Descriptor, builds the jar file including the support files and
-  verify whether the produced jar is valid or not.</p>
+<p>BorlandDeployTool is dedicated to the Borland Application Server 4.5.x and Borland Enterprise
+Server 5.x. It generates and compiles the stubs and skeletons for all EJBs described in the
+Deployment Descriptor, builds the jar file including the support files and verifies whether the
+produced jar is valid or not.</p>
 
-<p>Benoit Moussaud maintains a separate <a
-href="http://www.moussaud.org/ejbjar.html">FAQ</a> for this task at
-his homepage.</p>
+<p>Benoit Moussaud maintains a
+separate <a href="https://web.archive.org/web/20141122083215/http://www.moussaud.org/ejbjar.html"
+target="_top">FAQ</a> for this task at his homepage.</p>
 
 <h3>Borland element</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top" width="63"><b>Attribute</b></td>
-    <td valign="top" width="915"><b>Description</b></td>
-    <td align="center" valign="top" width="62"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top" width="63">destdir</td>
-    <td valign="top" width="915">The base directory into which the generated borland
-      ready jar files are deposited</td>
-    <td align="center" valign="middle" width="62">yes</td>
+    <td>destdir</td>
+    <td>The base directory in which the generated Borland ready jar files are stored</td>
+    <td>Yes</td>
   </tr>
   <tr>
-    <td valign="top" width="63">debug</td>
-    <td valign="top" width="915">If true, turn on the debug mode for each borland
-      tools (java2iiop, iastool ...) default = false</td>
-    <td align="center" valign="middle" width="62">no</td>
+    <td>debug</td>
+    <td>If <q>true</q>, turn on the debug mode for each Borland tools
+      (<code>java2iiop</code>, <code>iastool</code>, ...)</td>
+    <td>No; default <q>false</q></td>
   </tr>
   <tr>
-    <td valign="top" width="63">verify</td>
-    <td valign="top" width="915">If true, turn on the verification at the end
-      of the jar production (default = false)</td>
-    <td align="center" valign="middle" width="62">no</td>
+    <td>verify</td>
+    <td>If <q>true</q>, turn on the verification at the end of the jar production.</td>
+    <td>No; default <q>false</q></td>
   </tr>
   <tr>
-    <td valign="top" width="63">verifyargs</td>
-    <td valign="top" width="915">extra parameter for verify command</td>
-    <td align="center" valign="middle" width="62">no</td>
+    <td>verifyargs</td>
+    <td>extra parameter for verify command</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top" width="63">suffix</td>
-    <td valign="top" width="915">String value appended to the basename of the
-      deployment descriptor to create the filename of the Borland EJB jar file.</td>
-    <td align="center" valign="middle" width="62">No, defaults to '-ejb.jar'.</td>
+    <td>suffix</td>
+    <td>String value appended to the basename of the deployment descriptor to create the filename of
+      the Borland EJB jar file.</td>
+    <td>No; defaults to <q class="no-break">-ejb.jar</q></td>
   </tr>
   <tr>
-    <td valign="top" width="63">basdtd</td>
-    <td valign="top" width="915"><b>Deprecated</b>. Defines the location of the
-      DTD which covers the Borland specific deployment descriptors.
-      This should not be necessary if you have borland in your classpath. If you
-      do not, you should use a nested
+    <td>basdtd</td>
+    <td><em><u>Deprecated</u></em>. Defines the location of the DTD which covers the Borland
+      specific deployment descriptors.  This should not be necessary if you have borland in your
+      classpath. If you do not, you should use a nested
       <a href="ejb.html#ejbjar-dtd"><code>&lt;dtd&gt;</code></a> element, described
       in the ejbjar task documentation.</td>
-    <td align="center" valign="middle" width="62">no</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top" width="63">ejbdtd</td>
-    <td valign="top" width="915"><b>Deprecated</b>. Defines the location of the
-      ejb-jar DTD in the class hierarchy. This should not be necessary
-      if you have borland in your classpath. If you do not, you should use a
-      nested <a href="ejb.html#ejbjar-dtd"><code>&lt;dtd&gt;</code></a> element,
-      described in the ejbjar task
-      documentation. </td>
-    <td align="center" valign="middle" width="62">no</td>
+    <td>ejbdtd</td>
+    <td><em><u>Deprecated</u></em>. Defines the location of the ejb-jar DTD in the class
+      hierarchy. This should not be necessary if you have borland in your classpath. If you do not,
+      you should use a nested <a href="ejb.html#ejbjar-dtd"><code>&lt;dtd&gt;</code></a> element,
+      described in the ejbjar task documentation.</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top" width="63">generateclient </td>
-    <td valign="top" width="915">If true, turn on the generation of the corresponding
-      ejbjar (default = false)</td>
-    <td align="center" valign="middle" width="62">no</td>
+    <td>generateclient</td>
+    <td>If <q>true</q>, turn on the generation of the corresponding EJB jar.</td>
+    <td>No; default <q>false</q></td>
   </tr>
   <tr>
-    <td valign="top" width="63">version</td>
-    <td valign="top" width="915">set the Borland Application Version.
-            <ul>
-              <li>4 means B.A.S (Borland Application Server) 4.x, target will add ejb-inprise.xml file</li>
-              <li>5 means B.E.S (Borland Application Server) 5.x, target will add ejb-borland.xml file</li>
-            </ul>
-          </td>
-    <td align="center" valign="middle" width="62">No, defaults to 4</td>
+    <td>version</td>
+    <td>set the Borland Application Version.
+      <ul>
+        <li>4 means B.A.S (Borland Application Server) 4.x, target will add ejb-inprise.xml file</li>
+        <li>5 means B.E.S (Borland Application Server) 5.x, target will add ejb-borland.xml file</li>
+      </ul>
+    </td>
+    <td>No; defaults to <q>4</q></td>
   </tr>
   <tr>
-    <td valign="top" width="63">java2iiopParams </td>
-    <td valign="top" width="915">If filled, the params are added to the java2iiop command (ex: -no_warn_missing_define)</td>
-    <td align="center" valign="middle" width="62">no</td>
+    <td>java2iiopParams</td>
+    <td>If filled, the params are added to the <kbd>java2iiop</kbd> command
+    (ex: <kbd>-no_warn_missing_define</kbd>)</td>
+    <td>No</td>
   </tr>
 
 </table>
 
 <h3>Examples</h3>
-<p>The following build.xml snippet is an example of how to use Borland element
-  into the ejbjar task</p>
-<pre>    &lt;ejbjar srcdir=&quot;${build.classes}&quot; basejarname=&quot;vsmp&quot; descriptordir=&quot;${rsc.dir}/hrmanager&quot;&gt;
-        &lt;borland destdir=&quot;lib&quot; verify=&quot;on&quot; generateclient=&quot;on&quot; version=&quot;5&quot;&gt;
-          &lt;classpath refid=&quot;classpath&quot;/&gt;
-        &lt;/borland&gt;
-        &lt;include name=&quot;**\ejb-jar.xml&quot;/&gt;
-        &lt;support dir=&quot;${build.classes}&quot;&gt;
-          &lt;include name=&quot;demo\*.class&quot;/&gt;
-          &lt;include name=&quot;demo\helper\*.class&quot;/&gt;
-         &lt;/support&gt;
-     &lt;/ejbjar&gt;</pre>
-<pre>The borland element will generate into the lib dir an ejb jar file using the deployment descriptor placed into the ${rsc.dir}/hrmanager directory.
-The verify phase is turned on and the generate client phase as well.
-</pre>
-
-<h3>&nbsp;</h3>
+<p>The following <samp>build.xml</samp> snippet is an example of how to use Borland element in
+the <code>ejbjar</code> task</p>
+<pre>
+&lt;ejbjar srcdir=&quot;${build.classes}&quot; basejarname=&quot;vsmp&quot; descriptordir=&quot;${rsc.dir}/hrmanager&quot;&gt;
+    &lt;borland destdir=&quot;lib&quot; verify=&quot;on&quot; generateclient=&quot;on&quot; version=&quot;5&quot;&gt;
+        &lt;classpath refid=&quot;classpath&quot;/&gt;
+    &lt;/borland&gt;
+    &lt;include name=&quot;**\ejb-jar.xml&quot;/&gt;
+    &lt;support dir=&quot;${build.classes}&quot;&gt;
+        &lt;include name=&quot;demo\*.class&quot;/&gt;
+        &lt;include name=&quot;demo\helper\*.class&quot;/&gt;
+    &lt;/support&gt;
+&lt;/ejbjar&gt;</pre>
+<p>The <code>borland</code> element will generate into the <samp>lib</samp> directory an EJB jar
+file using the deployment descriptor placed into the <samp>${rsc.dir}/hrmanager</samp> directory.
+The verify phase is turned on and the generate client phase as well.</p>
 
 </body>
 </html>
-
diff --git a/manual/Tasks/BorlandGenerateClient.html b/manual/Tasks/BorlandGenerateClient.html
index 01956b2..3a43861 100644
--- a/manual/Tasks/BorlandGenerateClient.html
+++ b/manual/Tasks/BorlandGenerateClient.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,77 +15,73 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-<meta http-equiv="Content-Language" content="en-us">
 <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>BorlandGenerateClient Task</title>
 </head>
 
 <body>
 
-<h2><a name="log">BorlandGenerateClient</a></h2>
+<h2 id="log">BorlandGenerateClient</h2>
 <p>by Benoit Moussaud (<a href="mailto:benoit.moussaud@criltelecom.com">benoit.moussaud@criltelecom.com</a>)</p>
 <h3>Description</h3>
-<p>The BorlandGenerateClient is a task dedicated to Borland Application Server
-  v 4.5. It offers to generate the client jar file corresponding to an ejb jar
-  file.</p>
+<p>The BorlandGenerateClient is a task dedicated to Borland Application Server v 4.5. It offers to
+generate the client jar file corresponding to an EJB jar file.</p>
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top" width="63"><b>Attribute</b></td>
-    <td valign="top" width="915"><b>Description</b></td>
-    <td align="center" valign="top" width="62"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top" width="63">ejbjar</td>
-    <td valign="top" width="915">ejb jar file</td>
-    <td align="center" valign="middle" width="62">yes</td>
+    <td>ejbjar</td>
+    <td>EJB jar file</td>
+    <td>yes</td>
   </tr>
   <tr>
-    <td valign="top" width="63">debug</td>
-    <td valign="top" width="915">If true, turn on the debug mode for each borland
-      tools (java2iiop, iastool ...) default = false</td>
-    <td align="center" valign="middle" width="62">no</td>
+    <td>debug</td>
+    <td>If <q>true</q>, turn on the debug mode for each Borland tool
+      (<code>java2iiop</code>, <code>iastool</code>, ...)</td>
+    <td>no; default <q>false</q></td>
   </tr>
   <tr>
-    <td valign="top" width="63">clientjar</td>
-    <td valign="top" width="915">client jar file name. If missing the client jar
-      file name is build using the ejbjar file name: ejbjar = hellobean-ejb.jar
-      =&gt; hellobean-ejbclient.jar</td>
-    <td align="center" valign="middle" width="62">no</td>
+    <td>clientjar</td>
+    <td>client jar file name. If missing the client jar file name is build using
+      the <var>ejbjar</var> file name: <var>ejbjar</var>=<q>hellobean-ejb.jar</q>
+      &rArr; <q>hellobean-ejbclient.jar</q></td>
+    <td>no</td>
   </tr>
   <tr>
-    <td valign="top" width="63">mode</td>
-    <td valign="top" width="915">choose the command launching mode. Two values:
-      java or fork. default = fork. java is not supported for version=5.Possibility to specify a classpath.</td>
-    <td align="center" valign="middle" width="62">no</td>
+    <td>mode</td>
+    <td>choose the command launching mode. Two values: <q>java</q> or <q>fork</q>
+      (default). <q>java</q> is not supported for <var>version</var>=<q>5</q>. Possibility to
+      specify a classpath.</td>
+    <td>no</td>
   </tr>
   <tr>
-    <td valign="top" width="63">version</td>
-    <td valign="top" width="915">set the Borland Application Version.
-            <ul>
-              <li>4 means B.A.S (Borland Application Server 4.x)</li>
-              <li>5 means B.E.S (Borland Application Server 5.x)</li>
-            </ul>
-          </td>
-    <td align="center" valign="middle" width="62">No, defaults to 4</td>
+    <td>version</td>
+    <td>set the Borland Application Version.
+      <ul>
+        <li><q>4</q> means B.A.S (Borland Application Server 4.x)</li>
+        <li><q>5</q> means B.E.S (Borland Application Server 5.x)</li>
+      </ul>
+    </td>
+    <td>No; defaults to <q>4</q></td>
   </tr>
 </table>
 
 <h3>Examples</h3>
-<p>The following build.xml snippet is an example of how to use Borland element
-   into the ejbjar task using the java mode.</p>
+<p>The following <samp>build.xml</samp> snippet is an example of how to use Borland element in
+the <code>ejbjar</code> task using the <q>fork</q> <var>mode</var>.</p>
 <pre>
-&lt;blgenclient ejbjar=&quot;lib/secutest-ejb.jar&quot; clientjar=&quot;lib/client.jar&quot; debug=&quot;true&quot; mode=&quot;fork&quot;&gt; version=&quot;5&quot;&gt;
+&lt;blgenclient ejbjar=&quot;lib/secutest-ejb.jar&quot; clientjar=&quot;lib/client.jar&quot; debug=&quot;true&quot; mode=&quot;fork&quot; version=&quot;5&quot;&gt;
     &lt;classpath&gt;
         &lt;pathelement location=&quot;mymodule.jar&quot;/&gt;
     &lt;/classpath&gt;
-&lt;/blgenclient&gt;
-</pre>
-<pre>&nbsp;</pre>
+&lt;/blgenclient&gt;</pre>
 
 </body>
 </html>
-
diff --git a/manual/Tasks/ant.html b/manual/Tasks/ant.html
index 87b78bb..f867701 100644
--- a/manual/Tasks/ant.html
+++ b/manual/Tasks/ant.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,323 +15,286 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-<meta http-equiv="Content-Language" content="en-us">
 <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>Ant Task</title>
 </head>
 
 <body>
 
-<h2><a name="ant">Ant</a></h2>
+<h2 id="ant">Ant</h2>
 <h3>Description</h3>
 
-<p>Runs Apache Ant on a supplied buildfile. This can be used to build
-subprojects.  <strong>This task must not be used outside of a
-<code>target</code> if it invokes the same build file it is part
+<p>Runs Apache Ant on a supplied buildfile. This can be used to build subprojects.  <strong>This
+task must not be used outside of a <code>target</code> if it invokes the same build file it is part
 of.</strong></p>
 
-<p>When the <i>antfile</i> attribute is omitted, the file &quot;build.xml&quot;
-in the supplied directory (<i>dir</i> attribute) is used.</p>
-<p>If no target attribute is supplied, the default target of the new project is
-used.</p>
-<p>By default, all of the properties of the current project will be
-available in the new project.  Alternatively, you can set the
-<i>inheritAll</i> attribute to <code>false</code> and only
-&quot;user&quot; properties (i.e., those passed on the command-line)
-will be passed to the new project.  In either case, the set of
-properties passed to the new project will override the properties that
-are set in the new project (See also the <a
-href="property.html">property task</a>).</p>
+<p>When the <var>antfile</var> attribute is omitted, the file <samp>build.xml</samp> in the supplied
+directory (<var>dir</var> attribute) is used.</p>
+<p>If no target attribute is supplied, the default target of the new project is used.</p>
+<p>By default, all of the properties of the current project will be available in the new project.
+Alternatively, you can set the <var>inheritAll</var> attribute to <q>false</q> and only
+&quot;user&quot; properties (i.e., those passed on the command-line) will be passed to the new
+project.  In either case, the set of properties passed to the new project will override the
+properties that are set in the new project (See also the <a href="property.html">property</a>
+task).</p>
 
-<p>You can also set properties in the new project from the old project
-by using nested property tags. These properties are always passed
-to the new project and any project created in that project
-regardless of the setting of <i>inheritAll</i>.  This allows you to
-parameterize your subprojects.</p>
+<p>You can also set properties in the new project from the old project by using
+nested <code>property</code> tags. These properties are always passed to the new project and any
+project created in that project regardless of the setting of <var>inheritAll</var>.  This allows you
+to parameterize your subprojects.</p>
 
-<p>When more than one nested <code>&lt;property&gt;</code> element
-  would set a property of the same name, the one declared last will
-  win.  This is for backwards compatibility reasons even so it is
-  different from the way <code>&lt;property&gt;</code> tasks in build
-  files behave.</p>
+<p>When more than one nested <code>&lt;property&gt;</code> element would set a property of the same
+name, the one declared last will win.  This is for backwards compatibility reasons even though it is
+different from the way <code>&lt;property&gt;</code> tasks in build files behave.</p>
 
 <p>Properties defined on the command line cannot be overridden by
-  nested <code>&lt;property&gt;</code> elements.  <em>Since Ant
-  1.8.0.</em> the same is true for nested structures
-  of <code>&lt;ant&gt;</code> tasks: if a build file <em>A</em>
-  invokes <em>B</em> via an <code>&lt;ant&gt;</code> task setting a
-  property with a nested <code>&lt;property&gt;</code> element
-  and <em>B</em> contains an <code>&lt;ant&gt;</code> tasks
-  invoking <em>C</em>, <em>C</em> will see the value set
-  in <em>A</em>, even if <em>B</em> used a
-  nested <code>&lt;property&gt;</code> element as well.</p>
+nested <code>&lt;property&gt;</code> elements.  <em>Since Ant 1.8.0</em>, the same is true for
+nested structures of <code>&lt;ant&gt;</code> tasks: if a build file <var>A</var>
+invokes <var>B</var> via an <code>&lt;ant&gt;</code> task setting a property with a
+nested <code>&lt;property&gt;</code> element and <var>B</var> contains an <code>&lt;ant&gt;</code>
+tasks invoking <var>C</var>, <var>C</var> will see the value set in <var>A</var>, even
+if <var>B</var> used a nested <code>&lt;property&gt;</code> element as well.</p>
 
-<p>References to data types can also be passed to the new project, but
-by default they are not.  If you set the inheritrefs attribute to
-true, all references will be copied, but they will not override
-references defined in the new project.</p>
+<p>References to data types can also be passed to the new project, but by default they are not.  If
+you set the <var>inheritrefs</var> attribute to <q>true</q>, all references will be copied, but they
+will not override references defined in the new project.</p>
 
-<p>Nested <a href="#reference"><i><code>&lt;reference&gt;</code></i></a> elements
-can also be used to copy references from the calling project to the
-new project, optionally under a different id.  References taken from
-nested elements will override existing references that have been
-defined outside of targets in the new project - but not those defined
-inside of targets.</p>
+<p>Nested <a href="#reference"><code>&lt;reference&gt;</code></a> elements can also be used to copy
+references from the calling project to the new project, optionally under a different <var>id</var>.
+References taken from nested elements will override existing references that have been defined
+outside of targets in the new project&mdash;but not those defined inside of targets.</p>
 
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">antfile</td>
-    <td valign="top">the buildfile to use. Defaults to
-      &quot;build.xml&quot;.  This file is expected to be a filename
-      relative to the dir attribute given.</td>
-    <td valign="top" align="center">No</td>
+    <td>antfile</td>
+    <td>the buildfile to use. This file is expected to be a filename relative to the <var>dir</var>
+      attribute given.</td>
+    <td>No; defaults to <q>build.xml</q></td>
   </tr>
   <tr>
-    <td valign="top">dir</td>
-    <td valign="top">the directory to use as a basedir for the new Ant
-      project (unless useNativeBasedir is set to true).
-      Defaults to the current project's basedir, unless
-      inheritall has been set to false, in which case it doesn't
-      have a default value.  This will override the basedir
-      setting of the called project.<br/>
-      Also serves as the directory to resolve the antfile and output
-      attribute's values (if any).
+    <td>dir</td>
+    <td>the directory to use as a <var>basedir</var> for the new Ant project
+      (unless <var>useNativeBasedir</var> is set to <q>true</q>).  This will override
+      the <var>basedir</var> setting of the called project.<br/>  Also serves as the directory to
+      resolve the <var>antfile</var> and <var>output</var> attribute's values (if any).
     </td>
-    <td valign="top" align="center">No</td>
+    <td>No; defaults to the current project's <var>basedir</var>, unless <var>inheritall</var> has
+      been set to <q>false</q>, in which case it doesn't have a default value</td>
   </tr>
   <tr>
-    <td valign="top">target</td>
-    <td valign="top">the target of the new Ant project that should be executed.
-      Defaults to the new project's default target.</td>
-    <td valign="top" align="center">No</td>
+    <td>target</td>
+    <td>the target of the new Ant project that should be executed.</td>
+    <td>No; defaults to the new project's default target</td>
   </tr>
   <tr>
-    <td valign="top">output</td>
-    <td valign="top">Filename to write the ant output to.  This is
-    relative to the value of the dir attribute if it has been set or
-    to the base directory of the current project otherwise.
+    <td>output</td>
+    <td>Filename to write the Ant output to.  This is relative to the value of the <var>dir</var>
+      attribute if it has been set or to the <var>basedir</var> of the current project otherwise.
     </td>
-    <td align="center" valign="top">No</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">inheritAll</td>
-    <td valign="top">If <code>true</code>, pass all properties to the
-      new Ant project.  Defaults to <code>true</code>.</td>
-    <td align="center" valign="top">No</td>
+    <td>inheritAll</td>
+    <td>If <q>true</q>, pass all properties to the new Ant project.</td>
+    <td>No; defaults to <q>true</q></td>
   </tr>
   <tr>
-    <td valign="top">inheritRefs</td>
-    <td valign="top">If <code>true</code>, pass all references to the
-      new Ant project.  Defaults to <code>false</code>.</td>
-    <td align="center" valign="top">No</td>
+    <td>inheritRefs</td>
+    <td>If <q>true</q>, pass all references to the new Ant project.</td>
+    <td>No; defaults to <q>false</q></td>
   </tr>
   <tr>
-    <td valign="top">useNativeBasedir</td>
-    <td valign="top">If set to true, the child build will use the same
-      basedir as it would have used when run from the command line
-      (i.e. the basedir one would expect when looking at the child
-      build's buildfile).  Defaults to <code>false</code>.  <em>since
-      Ant 1.8.0</em></td>
-    <td valign="top" align="center">No</td>
+    <td>useNativeBasedir</td>
+    <td>If set to <q>true</q>, the child build will use the same <var>basedir</var> as it would have
+      used when run from the command line (i.e. the <var>basedir</var> one would expect when looking
+      at the child build's buildfile).  <em>Since Ant 1.8.0</em></td>
+    <td>No; defaults to <q>false</q></td>
   </tr>
 </table>
 
 <h3>Parameters specified as nested elements</h3>
 
 <h4>property</h4>
-<p>See the description of the <a href="property.html">property
-task</a>. <br>
-These properties become equivalent to properties you define on
-the command line. These are special properties and they will always get passed
-down, even through additional <code>&lt;*ant*&gt;</code> tasks with inheritall set to
-false (see above). <br>
-Note that the <code>refid</code> attribute points to a
-reference in the calling project, not in the new one.</p>
+<p>See the description of the <a href="property.html">property</a> task.<br/>  These properties
+become equivalent to properties you define on the command line. These are special properties and
+they will always get passed down, even through additional <code>&lt;*ant*&gt;</code> tasks
+with <var>inheritAll</var> set to <q>false</q> (see above).<br/>  Note that the <var>refid</var>
+attribute points to a reference in the calling project, not in the new one.</p>
 
-<h4><a name="reference">reference</a></h4>
-<p>Used to choose references that shall be copied into the new project,
-optionally changing their id.</p>
+<h4 id="reference">reference</h4>
+<p>Used to choose references that shall be copied into the new project, optionally changing
+their <var>id</var>.</p>
 
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">refid</td>
-    <td valign="top">The id of the reference in the calling project.</td>
-    <td valign="top" align="center">Yes</td>
+    <td>refid</td>
+    <td>The <var>id</var> of the reference in the calling project.</td>
+    <td>Yes</td>
   </tr>
   <tr>
-    <td valign="top">torefid</td>
-    <td valign="top">The id of the reference in the new project.</td>
-    <td valign="top" align="center">No, defaults to the value of refid.</td>
+    <td>torefid</td>
+    <td>The <var>id</var> of the reference in the new project.</td>
+    <td>No; defaults to the value of <var>refid</var></td>
   </tr>
 </table>
 
 <h4>propertyset</h4>
 
-<p>You can specify a set of properties to be copied into the new
-project with <a
-href="../Types/propertyset.html">propertyset</a>s.</p>
+<p><em>Since Ant 1.6</em>.</p>
 
-<p><em>since Ant 1.6</em>.</p>
+<p>You can specify a set of properties to be copied into the new project
+with <a href="../Types/propertyset.html">propertyset</a>s.</p>
 
 <h4>target</h4>
+<p><em>Since Ant 1.6.3</em>.</p>
 
-<p>You can specify multiple targets using nested <code>&lt;target&gt;</code> elements
-instead of using the target attribute.  These will be executed as if
-Ant had been invoked with a single target whose dependencies are the
-targets so specified, in the order specified.</p>
-<table border="1" cellpadding="2" cellspacing="0">
+<p>You can specify multiple targets using nested <code>&lt;target&gt;</code> elements instead of
+using the <var>target</var> attribute.  These will be executed as if Ant had been invoked with a
+single target whose dependencies are the targets so specified, in the order specified.</p>
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">name</td>
-    <td valign="top">The name of the called target.</td>
-    <td valign="top" align="center">Yes</td>
+    <td>name</td>
+    <td>The name of the called target.</td>
+    <td>Yes</td>
   </tr>
 </table>
-<p><em>since Ant 1.6.3</em>.</p>
 
 <h3>Basedir of the new project</h3>
 
-<p>If you set <code>useNativeBasedir</code> to true, the basedir of
-  the new project will be whatever the basedir attribute of
-  the <code>&lt;project&gt;</code> element of the new project says (or
-  the new project's directory if the there is no basedir attribute) -
-  no matter what any other attribute of this task says and no matter
-  how deeply nested into levels of
-  <code>&lt;ant&gt;</code> invocations this task lives.</p>
- 
-<p>If you haven't set <code>useNativeBasedir</code> or set it to
-  false, the following rules apply:</p>
+<p>If you set <var>useNativeBasedir</var> to true, the <var>basedir</var> of the new project will be
+whatever the <var>basedir</var> attribute of the <code>&lt;project&gt;</code> element of the new
+project says (or the new project's directory if the there is no <var>basedir</var>
+attribute)&mdash;no matter what any other attribute of this task says and no matter how deeply
+nested into levels of <code>&lt;ant&gt;</code> invocations this task lives.</p>
 
-<p>The basedir value of the new project is affected by the two
-  attributes dir and inheritall as well as
-  the <code>&lt;ant&gt;</code> task's history.  The current behaviour
-  is known to be confusing but cannot be changed without breaking
-  backwards compatibility in subtle ways.</p>
+<p>If you haven't set <var>useNativeBasedir</var> or set it to <q>false</q>, the following rules
+apply:</p>
 
-<p>If the <code>&lt;ant&gt;</code> task is in a "top level" build
-  file, i.e. the project containing the <code>&lt;ant&gt;</code> task
-  has not itself been invoked as part of a
-  different <code>&lt;ant&gt;</code> (or <code>&lt;antcall&gt;</code>)
-  task "higher up", the following table shows the details:</p>
+<p>The <var>basedir</var> value of the new project is affected by the two attributes, <var>dir</var>
+and <var>inheritall</var>, as well as the <code>&lt;ant&gt;</code> task's history.  The current
+behaviour is known to be confusing but cannot be changed without breaking backwards compatibility in
+subtle ways.</p>
 
-<table border="1" cellpadding="2" cellspacing="0">
+<p>If the <code>&lt;ant&gt;</code> task is in a "top level" build file, i.e. the project containing
+the <code>&lt;ant&gt;</code> task has not itself been invoked as part of a
+different <code>&lt;ant&gt;</code> (or <code>&lt;antcall&gt;</code>) task "higher up", the following
+table shows the details:</p>
+
+<table>
   <tr>
-    <td valign="top"><b>dir attribute</b></td>
-    <td valign="top"><b>inheritAll attribute</b></td>
-    <td valign="top"><b>new project's basedir</b></td>
+    <th scope="col"><var>dir</var> attribute</th>
+    <th scope="col"><var>inheritAll</var> attribute</th>
+    <th scope="col">new project's <var>basedir</var></th>
   </tr>
   <tr>
-    <td valign="top">value provided</td>
-    <td valign="top">true</td>
-    <td valign="top">value of dir attribute</td>
+    <td>value provided</td>
+    <td><q>true</q></td>
+    <td>value of <var>dir</var> attribute</td>
   </tr>
   <tr>
-    <td valign="top">value provided</td>
-    <td valign="top">false</td>
-    <td valign="top">value of dir attribute</td>
+    <td>value provided</td>
+    <td><q>false</q></td>
+    <td>value of <var>dir</var> attribute</td>
   </tr>
   <tr>
-    <td valign="top">omitted</td>
-    <td valign="top">true</td>
-    <td valign="top">basedir of calling project (the one whose build
-        file contains the <code>&lt;ant&gt;</code> task).</td>
+    <td>omitted</td>
+    <td><q>true</q></td>
+    <td><var>basedir</var> of calling project (the one whose build
+      file contains the <code>&lt;ant&gt;</code> task).</td>
   </tr>
   <tr>
-    <td valign="top">omitted</td>
-    <td valign="top">false</td>
-    <td valign="top">basedir attribute of the <code>&lt;project&gt;</code> element
-        of the new project</td>
+    <td>omitted</td>
+    <td><q>false</q></td>
+    <td><var>basedir</var> attribute of the <code>&lt;project&gt;</code> element
+      of the new project</td>
   </tr>
 </table>
 
-<p>If on the other hand the <code>&lt;ant&gt;</code> task is already
-  nested into another invocation, the parent invocation's settings
-  affect the outcome of the basedir value.  The current task's dir
-  attribute will always win, but if the dir attribute has been omitted
-  an even more complex situation arises:</p>
+<p>If on the other hand the <code>&lt;ant&gt;</code> task is already nested into another invocation,
+the parent invocation's settings affect the outcome of the <var>basedir</var> value.  The current
+task's <var>dir</var> attribute will always win, but if the <var>dir</var> attribute has been
+omitted an even more complex situation arises:</p>
 
-<table border="1" cellpadding="2" cellspacing="0">
+<table>
   <tr>
-    <td valign="top"><b>parent dir attribute</b></td>
-    <td valign="top"><b>parent inheritAll attribute</b></td>
-    <td valign="top"><b>current inheritAll attribute</b></td>
-    <td valign="top"><b>new project's basedir</b></td>
+    <th scope="col">parent <var>dir</var> attribute</th>
+    <th scope="col">parent <var>inheritAll</var> attribute</th>
+    <th scope="col">current <var>inheritAll</var> attribute</th>
+    <th scope="col">new project's <var>basedir</var></th>
   </tr>
   <tr>
-    <td valign="top">value provided</td>
-    <td valign="top">any</td>
-    <td valign="top">any</td>
-    <td valign="top">value of parent's dir attribute</td>
+    <td>value provided</td>
+    <td>any</td>
+    <td>any</td>
+    <td>value of parent's <var>dir</var> attribute</td>
   </tr>
   <tr>
-    <td valign="top">omitted</td>
-    <td valign="top">true</td>
-    <td valign="top">true</td>
-    <td valign="top">basedir of parent project (the one whose build
-        file called the build file that contains
-        the current <code>&lt;ant&gt;</code> task).</td>
+    <td>omitted</td>
+    <td><q>true</q></td>
+    <td><q>true</q></td>
+    <td><var>basedir</var> of parent project (the one whose build file called the build file that
+      contains the current <code>&lt;ant&gt;</code> task).</td>
   </tr>
   <tr>
-    <td valign="top">omitted</td>
-    <td valign="top">true</td>
-    <td valign="top">false</td>
-    <td valign="top">basedir of parent project (the one whose build
-        file called the build file that contains
-        the current <code>&lt;ant&gt;</code> task).</td>
+    <td>omitted</td>
+    <td><q>true</q></td>
+    <td><q>false</q></td>
+    <td><var>basedir</var> of parent project (the one whose build file called the build file that
+      contains the current <code>&lt;ant&gt;</code> task).</td>
   </tr>
   <tr>
-    <td valign="top">omitted</td>
-    <td valign="top">false</td>
-    <td valign="top">true</td>
-    <td valign="top">basedir of calling project (the one whose build
-        file contains the current <code>&lt;ant&gt;</code> task).</td>
+    <td>omitted</td>
+    <td><q>false</q></td>
+    <td><q>true</q></td>
+    <td><var>basedir</var> of calling project (the one whose build file contains the
+      current <code>&lt;ant&gt;</code> task).</td>
   </tr>
   <tr>
-    <td valign="top">omitted</td>
-    <td valign="top">false</td>
-    <td valign="top">false</td>
-    <td valign="top">basedir attribute of the <code>&lt;project&gt;</code> element
-        of the new project</td>
+    <td>omitted</td>
+    <td><q>false</q></td>
+    <td><q>false</q></td>
+    <td><var>basedir</var> attribute of the <code>&lt;project&gt;</code> element of the new
+      project</td>
   </tr>
 </table>
 
-<p>If you add even deeper levels of nesting, things get even more
-  complicated and you need to apply the above table recursively.</p>
+<p>If you add even deeper levels of nesting, things get even more complicated and you need to apply
+the above table recursively.</p>
 
-<p>If the basedir of the outer most build has been specified as a
-  property on the command line (i.e. <code>-Dbasedir=some-value</code>
-  or a <code>-propertyfile</code> argument) the value provided will
-  get an even higher priority.  For any <code>&lt;ant&gt;</code> task
-  that doesn't specify a dir attribute, the new project's basedir will
-  be the value specified on the command line - no matter how deeply
-  nested into layers of build files the task may be.</p>
+<p>If the <var>basedir</var> of the outermost build has been specified as a property on the command
+line (i.e. <kbd>-Dbasedir=some-value</kbd> or a <kbd>-propertyfile</kbd> argument) the value
+provided will get an even higher priority.  For any <code>&lt;ant&gt;</code> task that doesn't
+specify a <var>dir</var> attribute, the new project's <var>basedir</var> will be the value specified
+on the command line&mdash;no matter how deeply nested into layers of build files the task may
+be.</p>
 
-<p>The same happens if the basedir is specified as a
-  nested <code>&lt;property&gt;</code> of an <code>&lt;ant&gt;</code>
-  task.  The basedir of build files started at deeper levels will be
-  set to the specified value of the property element unless the
-  corresponding Ant tasks set the dir attribute explicitly.</p>
+<p>The same happens if the <var>basedir</var> is specified as a nested <code>&lt;property&gt;</code>
+of an <code>&lt;ant&gt;</code> task.  The <var>basedir</var> of build files started at deeper levels
+will be set to the specified value of the property element unless the corresponding Ant tasks set
+the <var>dir</var> attribute explicitly.</p>
 
 <h3>Examples</h3>
-<blockquote><pre>
+<p>These are different ways of using the task:</p>
+<pre>
 &lt;ant antfile=&quot;subproject/subbuild.xml&quot; target=&quot;compile&quot;/&gt;
 
 &lt;ant dir=&quot;subproject&quot;/&gt;
@@ -342,72 +306,55 @@
 
 &lt;ant inheritAll=&quot;false&quot; antfile=&quot;subproject/subbuild.xml&quot;&gt;
   &lt;property name=&quot;output.type&quot; value=&quot;html&quot;/&gt;
-&lt;/ant&gt;
-</pre></blockquote>
+&lt;/ant&gt;</pre>
 
 <p>These lines invoke the same build file:</p>
-<blockquote><pre>
-&lt;ant antfile=&quot;sub1/sub2/build.xml&quot; /&gt;
-&lt;ant antfile=&quot;sub2/build.xml&quot; dir=&quot;sub1&quot; /&gt;
-&lt;ant antfile=&quot;build.xml&quot; dir=&quot;sub1/sub2&quot; /&gt;
-</pre></blockquote>
+<pre>
+&lt;ant antfile=&quot;sub1/sub2/build.xml&quot;/&gt;
+&lt;ant antfile=&quot;sub2/build.xml&quot; dir=&quot;sub1&quot;/&gt;
+&lt;ant antfile=&quot;build.xml&quot; dir=&quot;sub1/sub2&quot;/&gt;</pre>
 
-<p>The build file of the calling project defines some
-<code>&lt;path&gt;</code> elements like this:</p>
+<p>The build file of the calling project defines some <code>&lt;path&gt;</code> elements like
+this:</p>
 
-<blockquote><pre>
+<pre>
 &lt;path id="path1"&gt;
     ...
 &lt;/path&gt;
 &lt;path id="path2"&gt;
     ...
-&lt;/path&gt;
-</pre></blockquote>
+&lt;/path&gt;</pre>
 
-<p>and the called build file (<code>subbuild.xml</code>) also defines
-a <code>&lt;path&gt;</code> with the id <code>path1</code>, but
-<code>path2</code> is not defined:</p>
+<p>and the called build file (<samp>subbuild.xml</samp>) also defines a <code>&lt;path&gt;</code>
+with the <var>id</var> <samp>path1</samp>, but <samp>path2</samp> is not defined; then</p>
 
-<blockquote><pre>
-&lt;ant antfile=&quot;subbuild.xml&quot; inheritrefs=&quot;true&quot;/&gt;
-</pre></blockquote>
+<pre>&lt;ant antfile=&quot;subbuild.xml&quot; inheritrefs=&quot;true&quot;/&gt;</pre>
 
-<p>will not override <code>subbuild</code>'s definition of
-<code>path1</code>, but make the parent's definition of
-<code>path2</code> available in the subbuild.</p>
+<p>will not override <samp>subbuild</samp>'s definition of <samp>path1</samp>, but make the parent's
+definition of <samp>path2</samp> available in the <samp>subbuild</samp>, whereas</p>
 
-<blockquote><pre>
-&lt;ant antfile=&quot;subbuild.xml&quot;/&gt;
-</pre></blockquote>
+<pre>&lt;ant antfile=&quot;subbuild.xml&quot;/&gt;</pre>
 
 <p>as well as</p>
 
-<blockquote><pre>
-&lt;ant antfile=&quot;subbuild.xml&quot; inheritrefs=&quot;false&quot;/&gt;
-</pre></blockquote>
+<pre>&lt;ant antfile=&quot;subbuild.xml&quot; inheritrefs=&quot;false&quot;/&gt;</pre>
 
-<p>will neither override <code>path1</code> nor copy
-<code>path2</code>.</p>
+<p>will neither override <samp>path1</samp> nor copy <samp>path2</samp>, while</p>
 
-<blockquote><pre>
+<pre>
 &lt;ant antfile=&quot;subbuild.xml&quot; inheritrefs=&quot;false&quot;&gt;
   &lt;reference refid=&quot;path1&quot;/&gt;
-&lt;/ant&gt;
-</pre></blockquote>
+&lt;/ant&gt;</pre>
 
-<p>will override <code>subbuild</code>'s definition of
-<code>path1</code>.</p>
+<p>will override <samp>subbuild</samp>'s definition of <samp>path1</samp>, and</p>
 
-<blockquote><pre>
+<pre>
 &lt;ant antfile=&quot;subbuild.xml&quot; inheritrefs=&quot;false&quot;&gt;
   &lt;reference refid=&quot;path1&quot; torefid=&quot;path2&quot;/&gt;
-&lt;/ant&gt;
-</pre></blockquote>
+&lt;/ant&gt;</pre>
 
-<p>will copy the parent's definition of <code>path1</code> into the
-new project using the id <code>path2</code>.</p>
-
-
+<p>will copy the parent's definition of <samp>path1</samp> into the new project using
+the <var>id</var> <samp>path2</samp>.</p>
 
 </body>
 </html>
diff --git a/manual/Tasks/antcall.html b/manual/Tasks/antcall.html
index 00cf615..47c8337 100644
--- a/manual/Tasks/antcall.html
+++ b/manual/Tasks/antcall.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,166 +15,147 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-<meta http-equiv="Content-Language" content="en-us">
 <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>AntCall Task</title>
 </head>
 
 <body>
 
-<h2><a name="antcall">AntCall</a></h2>
+<h2 id="antcall">AntCall</h2>
 <h3>Description</h3>
 
-<p>Call another target within the same buildfile optionally
-specifying some properties (params in this context).  <strong>This
-task must not be used outside of a <code>target</code>.</strong></p>
+<p>Call another target within the same buildfile optionally specifying some properties (params in
+this context).  <strong>This task must not be used outside of a <code>target</code>.</strong></p>
 
-<p>By default, all of the properties of the current project will be
-available in the new project.   Alternatively, you can
-set the <i>inheritAll</i> attribute to <code>false</code> and only
-&quot;user&quot; properties (i.e., those passed on the command-line)
-will be passed to the new project.  In either case, the set of
-properties passed to the new project will override the properties that
-are set in the new project (See also the <a href="property.html">property task</a>).</p>
-<p>You can also set properties in the new project from the old project
-by using nested param tags. These properties are always passed
-to the new project and any project created in that project
-regardless of the setting of <i>inheritAll</i>.  This allows you to
-parameterize your subprojects.  Properties defined on the command line
-can not be overridden by nested <code>&lt;param&gt;</code> elements.</p>
+<p>By default, all of the properties of the current project will be available in the new project.
+Alternatively, you can set the <var>inheritAll</var> attribute to <q>false</q> and only
+&quot;user&quot; properties (i.e., those passed on the command-line) will be passed to the new
+project.  In either case, the set of properties passed to the new project will override the
+properties that are set in the new project (see also the <a href="property.html">property</a>
+task).</p>
+<p>You can also set properties in the new project from the old project by using
+nested <code>&lt;param&gt;</code> tags. These properties are always passed to the new project and
+any project created in that project regardless of the setting of <var>inheritAll</var>.  This allows
+you to parameterize your subprojects.  Properties defined on the command line can not be overridden
+by nested <code>&lt;param&gt;</code> elements.</p>
 
-<p>When more than one nested <code>&lt;param&gt;</code> element
-  would set a property of the same name, the one declared last will
-  win.  This is for backwards compatibility reasons even so it is
-  different from the way <code>&lt;property&gt;</code> tasks in build
-  files behave.</p>
+<p>When more than one nested <code>&lt;param&gt;</code> element would set a property of the same
+name, the one declared last will win.  This is for backwards compatibility reasons even so it is
+different from the way <code>&lt;property&gt;</code> tasks in build files behave.</p>
 
-<p>Nested <a href="#reference"><i><code>&lt;reference&gt</code>;</i></a> elements can
-be used to copy references from the calling project to the new
-project, optionally under a different id.  References taken from
-nested elements will override existing references that have been
-defined outside of targets in the new project - but not those defined
-inside of targets.</p>
+<p>Nested <a href="#reference"><code>&lt;reference&gt;</code></a> elements can be used to copy
+references from the calling project to the new project, optionally under a different <var>id</var>.
+References taken from nested elements will override existing references that have been defined
+outside of targets in the new project&mdash;but not those defined inside of targets.</p>
 
-<p>
-When a target is invoked by antcall, all of its dependent targets will
-also be called within the context of any new parameters. For example. if
-the target &quot;doSomethingElse&quot; depended on the target &quot;init&quot;, then the
-<i>antcall</i> of &quot;doSomethingElse&quot; will call &quot;init&quot; during the call.
-Of course, any properties defined in the antcall task or inherited from the calling target
-will be fixed and not overridable in the init task--or indeed in the &quot;doSomethingElse&quot; task.
-</p>
+<p>When a target is invoked by <code>antcall</code>, all of its dependent targets will also be
+called within the context of any new parameters. For example. if the target <q>doSomethingElse</q>;
+depended on the target <q>init</q>, then the <code>antcall</code> of <q>doSomethingElse</q> will
+call <q>init</q> during the call.  Of course, any properties defined in the <code>antcall</code>
+task or inherited from the calling target will be fixed and not overridable in the <q>init</q>
+target&mdash;or indeed in the <q>doSomethingElse</q> target.</p>
 
-<p>The called target(s) are run in a new project; be aware that this
-means properties, references, etc.  set by called targets will not
-persist back to the calling project.</p>
+<p>The called target(s) are run in a new project; be aware that this means properties, references,
+etc. set by called targets will not persist back to the calling project.</p>
 
-<p>If the build file changes after you've started the build, the
-behavior of this task is undefined.</p>
+<p>If the build file changes after you've started the build, the behavior of this task is
+undefined.</p>
 
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">target</td>
-    <td valign="top">The target to execute.</td>
-    <td valign="top" align="center">Yes</td>
+    <td>target</td>
+    <td>The target to execute.</td>
+    <td>Yes</td>
   </tr>
   <tr>
-    <td valign="top">inheritAll</td>
-    <td valign="top">If <code>true</code>, pass all properties to the new Apache Ant
-    project.  Defaults to <code>true</code>.
-    </td>
-    <td align="center" valign="top">No</td>
+    <td>inheritAll</td>
+    <td>If <q>true</q>, pass all properties to the new Apache Ant project.</td>
+    <td>No; defaults to <q>true</q></td>
   </tr>
   <tr>
-    <td valign="top">inheritRefs</td>
-    <td valign="top">If <code>true</code>, pass all references to the
-      new Ant project.  Defaults to <code>false</code>.</td>
-    <td align="center" valign="top">No</td>
+    <td>inheritRefs</td>
+    <td>If <q>true</q>, pass all references to the new Ant project.</td>
+    <td>No; defaults to <q>false</q></td>
   </tr>
 </table>
 
 <h3>Note on <code>inheritRefs</code></h3>
 
-<p><code>&lt;antcall&gt;</code> will not override existing references,
-even if you set <code>inheritRefs</code> to true.  As the called build
-files is the same build file as the calling one, this means it will
-not override any reference set via an <code>id</code> attribute at
-all.  The only references that can be inherited by the child project
-are those defined by nested <code>&lt;reference&gt;</code> elements or
-references defined by tasks directly (not using the <code>id</code>
-attribute).</p>
+<p><code>&lt;antcall&gt;</code> will not override existing references, even if you
+set <var>inheritRefs</var> to true.  As the called build files is the same build file as the calling
+one, this means it will not override any reference set via an <var>id</var> attribute at all.  The
+only references that can be inherited by the child project are those defined by
+nested <code>&lt;reference&gt;</code> elements or references defined by tasks directly (not using
+the <var>id</var> attribute).</p>
 
 <h3>Parameters specified as nested elements</h3>
 <h4>param</h4>
-<p>Specifies the properties to set before running the specified target. See <a
-href="property.html">property</a> for usage guidelines.<br>
-These properties become equivalent to properties you define on
-the command line. These are special properties and they will always get passed
-down, even through additional <code>&lt;*ant*&gt;</code> tasks with inheritall set to
-false (see above).
-</p>
+<p>Specifies the properties to set before running the specified
+target. See <a href="property.html">property</a> for usage guidelines.<br/>  These properties become
+equivalent to properties you define on the command line. These are special properties and they will
+always get passed down, even through additional <code>&lt;*ant*&gt;</code> tasks
+with <var>inheritAll</var> set to <q>false</q> (see above).</p>
 
-<h4><a name="reference">reference</a></h4>
-<p>Used to choose references that shall be copied into the new project,
-optionally changing their id.</p>
+<h4 id="reference">reference</h4>
+<p>Used to choose references that shall be copied into the new project, optionally changing
+their <var>id</var>.</p>
 
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">refid</td>
-    <td valign="top">The id of the reference in the calling project.</td>
-    <td valign="top" align="center">Yes</td>
+    <td>refid</td>
+    <td>The <var>id</var> of the reference in the calling project.</td>
+    <td>Yes</td>
   </tr>
   <tr>
-    <td valign="top">torefid</td>
-    <td valign="top">The id of the reference in the new project.</td>
-    <td valign="top" align="center">No, defaults to the value of refid.</td>
+    <td>torefid</td>
+    <td>The <var>id</var> of the reference in the new project.</td>
+    <td>No; defaults to the value of <var>refid</var></td>
   </tr>
 </table>
 
 <h4>propertyset</h4>
 
-<p>You can specify a set of properties to be copied into the new
-project with <a
-href="../Types/propertyset.html">propertyset</a>s.</p>
+<p><em>Since Ant 1.6</em>.</p>
 
-<p><em>since Ant 1.6</em>.</p>
+<p>You can specify a set of properties to be copied into the new project
+with <a href="../Types/propertyset.html">propertyset</a>s.</p>
 
 <h4>target</h4>
+<p><em>Since Ant 1.6.3</em>.</p>
 
-<p>You can specify multiple targets using nested <code>&lt;target&gt;</code> elements
-instead of using the target attribute.  These will be executed as if
-Ant had been invoked with a single target whose dependencies are the
-targets so specified, in the order specified.</p>
-<table border="1" cellpadding="2" cellspacing="0">
+<p>You can specify multiple targets using nested <code>&lt;target&gt;</code> elements instead of
+using the <var>target</var> attribute.  These will be executed as if Ant had been invoked with a
+single target whose dependencies are the targets so specified, in the order specified.</p>
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">name</td>
-    <td valign="top">The name of the called target.</td>
-    <td valign="top" align="center">Yes</td>
+    <td>name</td>
+    <td>The name of the called target.</td>
+    <td>Yes</td>
   </tr>
 </table>
-<p><em>since Ant 1.6.3</em>.</p>
 
 <h3>Examples</h3>
-<blockquote><pre>
+<p>The following</p>
+<pre>
 &lt;target name=&quot;default&quot;&gt;
   &lt;antcall target=&quot;doSomethingElse&quot;&gt;
     &lt;param name=&quot;param1&quot; value=&quot;value&quot;/&gt;
@@ -182,20 +164,14 @@
 
 &lt;target name=&quot;doSomethingElse&quot;&gt;
   &lt;echo message=&quot;param1=${param1}&quot;/&gt;
-&lt;/target&gt;
-</pre></blockquote>
-<p>Will run the target 'doSomethingElse' and echo 'param1=value'.</p>
-
-<blockquote><pre>
+&lt;/target&gt;</pre>
+<p>will run the target <var>doSomethingElse</var> and echo <code>param1=value</code>, whereas</p>
+<pre>
 &lt;antcall ... &gt;
   &lt;reference refid=&quot;path1&quot; torefid=&quot;path2&quot;/&gt;
-&lt;/antcall&gt;
-</pre></blockquote>
-
-<p>will copy the parent's definition of <code>path1</code> into the
-new project using the id <code>path2</code>.</p>
-
-
+&lt;/antcall&gt;</pre>
+<p>will copy the parent's definition of <samp>path1</samp> into the new project using
+the <var>id</var> <samp>path2</samp>.</p>
 
 </body>
 </html>
diff --git a/manual/Tasks/antlr.html b/manual/Tasks/antlr.html
index ca0bcde..8add5c0 100644
--- a/manual/Tasks/antlr.html
+++ b/manual/Tasks/antlr.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,190 +15,134 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-<meta http-equiv="Content-Language" content="en-us">
 <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>ANTLR Task</title>
 </head>
 
 <body>
 
-<h2><a name="antlr">ANTLR</a></h2>
+<h2 id="antlr">ANTLR</h2>
 <h3>Description</h3>
-<p>
-  Invokes the <a HREF="http://www.antlr.org/" target="_top">ANTLR</a> Translator generator
-  on a grammar file.
-</p>
-<p>
-  To use the ANTLR task, set the <i>target</i> attribute to the name of the
-  grammar file to process.  Optionally, you can also set the
-  <i>outputdirectory</i> to write the generated file to a specific directory.
-  Otherwise ANTLR writes the generated files to the directory containing
-  the grammar file.
-</p>
-<p>
-  This task only invokes ANTLR if the grammar file (or the
-  supergrammar specified by the glib attribute) is newer than the
-  generated files.
-</p>
-<p><strong>Note:</strong> This task depends on external libraries not
-included in the Apache Ant distribution. See <a href="../install.html#librarydependencies">Library Dependencies</a>
-for more information.</p>
-<p>Antlr 2.7.1 Note:
-<i>
-  To successfully run ANTLR, your best option is probably to build the whole
-  jar with the provided script <b>mkalljar</b> and drop the resulting jar (about 300KB)
-  into ${ant.home}/lib. Dropping the default jar (70KB) is probably not enough
-  for most needs and your only option will be to add ANTLR home directory
-  to your classpath as described in ANTLR <tt>install.html</tt> document.
-</i>
-</p>
-<p>Antlr 2.7.2 Note:
-<i>
-  Instead of the above, you will need antlrall.jar that can be created
-  by the <b>antlr-all.jar</b> target of the Makefile provided with the
-  download.
-</i>
-</p>
+<p>Invokes the <a href="https://www.antlr.org/" target="_top">ANTLR</a> Translator generator on a
+grammar file.</p>
+<p>To use the ANTLR task, set the <var>target</var> attribute to the name of the grammar file to
+process.  Optionally, you can also set the <var>outputdirectory</var> to write the generated file to
+a specific directory.  Otherwise ANTLR writes the generated files to the directory containing the
+grammar file.</p>
+<p>This task only invokes ANTLR if the grammar file (or the supergrammar specified by
+the <var>glib</var> attribute) is newer than the generated files.</p>
+<p><strong>Note</strong>: This task depends on external libraries not included in the Apache Ant
+distribution. See <a href="../install.html#librarydependencies">Library Dependencies</a> for more
+information.</p>
+<p>Antlr 2.7.2 Note: <em>You will need <samp>antlrall.jar</samp> that can be created by
+the <q>antlr-all.jar</q> target of the Makefile provided with the download.</em></p>
 
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">target</td>
-    <td valign="top">The grammar file to process.</td>
-    <td valign="top" align="center">Yes</td>
+    <td>target</td>
+    <td>The grammar file to process.</td>
+    <td>Yes</td>
   </tr>
   <tr>
-    <td valign="top">outputdirectory</td>
-    <td valign="top">
-      The directory to write the generated files to.  If not set, the files
-      are written to the directory containing the grammar file.
-    </td>
-    <td valign="top" align="center">No</td>
+    <td>outputdirectory</td>
+    <td>The directory to write the generated files to.</td>
+    <td>No; defaults to the directory containing the grammar file</td>
   </tr>
   <tr>
-    <td valign="top">glib</td>
-    <td valign="top">
-      An optional super grammar file that the target grammar overrides.  This
-      feature is only needed for advanced vocabularies.
-    </td>
-    <td valign="top" align="center">No</td>
+    <td>glib</td>
+    <td>An optional super grammar file that the target grammar overrides.  This feature is only
+      needed for advanced vocabularies.</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">debug</td>
-    <td valign="top">
-      When set to "yes", this flag adds code to the generated parser that will
-      launch the ParseView debugger upon invocation.  The default is "no".
-      <br>
-      Note: ParseView is a separate component that needs to be installed or your
-      grammar will have compilation errors.
-    </td>
-    <td valign="top" align="center">No</td>
+    <td>debug</td>
+    <td>When set to <q>yes</q>, this flag adds code to the generated parser that will launch the
+      ParseView debugger upon invocation.<br/>  Note: ParseView is a separate component that needs
+      to be installed or your grammar will have compilation errors.</td>
+    <td>No; default is <q>no</q></td>
   </tr>
   <tr>
-    <td valign="top">html</td>
-    <td valign="top">
-      Emit an html version of the grammar with hyperlinked actions.
-    </td>
-    <td valign="top" align="center">No</td>
+    <td>html</td>
+    <td>Emit an HTML version of the grammar with hyperlinked actions if set to <q>yes</q>.</td>
+    <td>No; default is <q>no</q></td>
   </tr>
   <tr>
-    <td valign="top">diagnostic</td>
-    <td valign="top">
-      Generates a text file with debugging information based on the target grammar.
-    </td>
-    <td valign="top" align="center">No</td>
+    <td>diagnostic</td>
+    <td>Generate a text file with debugging information based on the target grammar if set
+      to <q>yes</q>.</td>
+    <td>No; default is <q>no</q></td>
   </tr>
   <tr>
-    <td valign="top">trace</td>
-    <td valign="top">
-      Forces <b>all</b> rules to call traceIn/traceOut if set to "yes".
-      The default is "no".
-    </td>
-    <td valign="top" align="center">No</td>
+    <td>trace</td>
+    <td>Force <strong>all</strong> rules to call traceIn/traceOut if set to <q>yes</q>.</td>
+    <td>No; default is <q>no</q></td>
   </tr>
   <tr>
-    <td valign="top">traceParser</td>
-    <td valign="top">
-      Only forces parser rules to call traceIn/traceOut if set to "yes".
-      The default is "no".
-    </td>
-    <td valign="top" align="center">No</td>
+    <td>traceParser</td>
+    <td>Only force parser rules to call traceIn/traceOut if set to <q>yes</q>.</td>
+    <td>No; default is <q>no</q></td>
   </tr>
   <tr>
-    <td valign="top">traceLexer</td>
-    <td valign="top">
-      Only forces lexer rules to call traceIn/traceOut if set to "yes".
-      The default is "no".
-    </td>
-    <td valign="top" align="center">No</td>
+    <td>traceLexer</td>
+    <td>Only force lexer rules to call traceIn/traceOut if set to <q>yes</q>.</td>
+    <td>No; default is <q>no</q></td>
   </tr>
   <tr>
-    <td valign="top">traceTreeWalker</td>
-    <td valign="top">
-      Only forces tree walker rules to call traceIn/traceOut if set to
-      "yes".  The default is "no".
-    </td>
-    <td valign="top" align="center">No</td>
+    <td>traceTreeWalker</td>
+    <td>Only force tree walker rules to call traceIn/traceOut if set to <q>yes</q>.</td>
+    <td>No; default is <q>no</q></td>
   </tr>
   <!--tr>
-    <td valign="top">fork</td>
-    <td valign="top">Run ANTLR in a separate VM.</td>
-    <td align="center" valign="top">No, default is &quot;off&quot;</td>
+    <td>fork</td>
+    <td>Run ANTLR in a separate JVM.</td>
+    <td>No; default is <q>off</q></td>
   </tr-->
   <tr>
-    <td valign="top">dir</td>
-    <td valign="top">The directory to invoke the VM in. <!--(ignored if
-      fork is disabled)--></td>
-    <td align="center" valign="top">No</td>
+    <td>dir</td>
+    <td>The directory to invoke JVM in.<!--(ignored if fork is disabled)--></td>
+    <td>No</td>
   </tr>
 </table>
 
-<h3><a name="nested">Nested Elements</a></h3>
+<h3 id="nested">Parameters specified as nested elements</h3>
 
-<p><code>ANTLR</code> supports a nested <code>&lt;classpath&gt;</code>
-element, that represents a <a href="../using.html#path">PATH like
-structure</a>. It is given as a convenience if you have to specify
-the original ANTLR directory. In most cases, dropping the appropriate
-ANTLR jar in the normal Ant lib repository will be enough.</p>
+<p>The task supports a nested <code>&lt;classpath&gt;</code> element, that represents
+a <a href="../using.html#path">path-like structure</a>. It is given as a convenience if you have to
+specify the original ANTLR directory. In most cases, dropping the appropriate ANTLR jar in the
+normal Ant lib repository will be enough.</p>
 
 <h4>jvmarg</h4>
 
-<p><!--If fork is enabled, -->Additional parameters may be passed to the new
-VM via nested <code>&lt;jvmarg&gt;</code> attributes, for example:</p>
+<p><!--If fork is enabled, -->Additional parameters may be passed to the new JVM via
+nested <code>&lt;jvmarg&gt;</code> attributes, for example:</p>
 
 <pre>
 &lt;antlr target="..."&gt;
   &lt;jvmarg value=&quot;-Djava.compiler=NONE&quot;/&gt;
   ...
-&lt;/antlr&gt;
-</pre>
+&lt;/antlr&gt;</pre>
 
-<p>would run ANTLR in a VM without JIT.</p>
+<p>would run ANTLR in a JVM without JIT.</p>
 
-<p><code>&lt;jvmarg&gt;</code> allows all attributes described in <a
-href="../using.html#arg">Command line arguments</a>.</p>
+<p><code>&lt;jvmarg&gt;</code> allows all attributes described
+in <a href="../using.html#arg">Command line arguments</a>.</p>
 
 <h3>Example</h3>
-<blockquote><pre>
+<p>Invoke ANTLR on grammar file <samp>etc/java.g</samp>, writing the generated files
+to <samp>build/src</samp>:</p>
+<pre>
 &lt;antlr
     target=&quot;etc/java.g&quot;
-    outputdirectory=&quot;build/src&quot;
-/&gt;
-</pre></blockquote>
-<p>
-  This invokes ANTLR on grammar file etc/java.g, writing the generated
-  files to build/src.
-</p>
-
+    outputdirectory=&quot;build/src&quot;/&gt;</pre>
 
 </body>
 </html>
-
diff --git a/manual/Tasks/antstructure.html b/manual/Tasks/antstructure.html
index ab7acc1..8cda7fe 100644
--- a/manual/Tasks/antstructure.html
+++ b/manual/Tasks/antstructure.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,86 +15,77 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-<meta http-equiv="Content-Language" content="en-us">
 <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>AntStructure Task</title>
 </head>
 
 <body>
 
-<h2><a name="antstructure">AntStructure</a></h2>
-<h3>Description</h3> 
+<h2 id="antstructure">AntStructure</h2>
+<h3>Description</h3>
 
-<p>Generates an DTD for Apache Ant buildfiles which contains information
-about all tasks currently known to Ant.</p>
+<p>Generates an DTD for Apache Ant buildfiles which contains information about all tasks currently
+known to Ant.</p>
 
-<p>Actually the DTD will not be a real DTD for buildfiles since Ant's
-usage of XML cannot be captured with a DTD.  Several elements in Ant
-can have different attribute lists depending on the element that
-contains them.  &quot;fail&quot; for example can be <a
-href="fail.html">the task</a> or the nested child element of the <a
-href="../Tasks/sound.html">sound</a> task.  Don't consider the
-generated DTD something to rely upon.</p>
+<p>Actually the DTD will not be a real DTD for buildfiles since Ant's usage of XML cannot be
+captured with a DTD.  Several elements in Ant can have different attribute lists depending on the
+element that contains them. <a href="fail.html"><code>&lt;fail&gt;</code></a> for example can be a
+task or a nested child element of the <a href="../Tasks/sound.html"><code>&lt;sound&gt;</code></a>
+task.  Don't consider the generated DTD something to rely upon.</p>
 
-<p>Also note that the DTD generated by this task is incomplete, you can
-always add XML entities using <a
-href="taskdef.html"><code>&lt;taskdef&gt;</code></a> or <a
-href="typedef.html"><code>&lt;typedef&gt;</code></a>. See <a
-href="http://www.sdv.fr/pages/casa/html/ant-dtd.en.html"
+<p>Also note that the DTD generated by this task is incomplete, you can always add XML entities
+using <a href="taskdef.html"><code>&lt;taskdef&gt;</code></a>
+or <a href="typedef.html"><code>&lt;typedef&gt;</code></a>.
+See <a href="https://web.archive.org/web/20071231061243/http://www.sdv.fr/pages/casa/html/ant-dtd.en.html"
 target="_top">here</a> for a way to get around this problem.</p>
-<p>This task doesn't know about required attributes, all will be
-listed as <code>#IMPLIED</code>.</p>
+<p>This task doesn't know about required attributes, all will be listed
+as <code>#IMPLIED</code>.</p>
 
-<p><em>Since Ant 1.7</em> custom structure printers can be used
-instead of the one that emits a DTD.  In order to plug in your own
-structure, you have to implement the interface
-<code>org.apache.tools.ant.taskdefs.AntStructure.StructurePrinter</code>
-and <code>&lt;typedef&gt; your class and use the new type as a nested
-element of this task - see the example below.</code>
+<p><em>Since Ant 1.7</em> custom structure printers can be used instead of the one that emits a DTD.
+In order to plug in your own structure, you have to implement the
+interface <code class="code">org.apache.tools.ant.taskdefs.AntStructure.StructurePrinter</code>
+and <code>&lt;typedef&gt;</code> your class and use the new type as a nested element of this
+task&mdash;see the example below.
 
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">output</td>
-    <td valign="top">file to write the DTD to.</td>
-    <td valign="top" align="center">Yes</td>
+    <td>output</td>
+    <td>file to write the DTD to.</td>
+    <td>Yes</td>
   </tr>
 </table>
 <h3>Examples</h3>
-<blockquote><pre>
-&lt;antstructure output=&quot;project.dtd&quot; /&gt;
-</pre></blockquote>
+<p>Basic usage</p>
 
-<p><b>Emitting your own structure instead of a DTD</b></p>
+<pre>&lt;antstructure output=&quot;project.dtd&quot;/&gt;</pre>
 
-<p>First you need to implement the interface</p>
+<p>Emit your own structure instead of a DTD: first you need to implement the interface</p>
 
 <pre>
 package org.example;
 import org.apache.tools.ant.taskdefs.AntStructure;
 public class MyPrinter implements AntStructure.StructurePrinter {
     ...
-}
-</pre>
+}</pre>
 
 <p>and then use it via typedef</p>
 
 <pre>
-  &lt;typedef name="myprinter" classname="org.example.MyPrinter" /&gt;
-  &lt;antstructure output="project.my"&gt;
-    &lt;myprinter /&gt;
-  &lt;/antstructure&gt;
-</pre>
+&lt;typedef name="myprinter" classname="org.example.MyPrinter"/&gt;
+&lt;antstructure output="project.my"&gt;
+  &lt;myprinter/&gt;
+&lt;/antstructure&gt;</pre>
 
-<p>Your own StructurePrinter can accept attributes and nested elements
+<p>Your own <code class="code">StructurePrinter</code> can accept attributes and nested elements
 just like any other Ant type or task.</p>
 
 </body>
diff --git a/manual/Tasks/antversion.html b/manual/Tasks/antversion.html
index cd9f838..7f032b5 100644
--- a/manual/Tasks/antversion.html
+++ b/manual/Tasks/antversion.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,82 +15,73 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-<meta http-equiv="Content-Language" content="en-us">
 <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>Antversion Task</title>
 </head>
 
 <body>
 
-<h2><a name="antversion">Antversion</a></h2>
+<h2 id="antversion">Antversion</h2>
+<p><em>Since Ant 1.7.0</em></p>
 <h3>Description</h3>
-<p>
-Stores the Apache Ant version (when used as task) or checks for a specific Ant version 
-(when used as condition).
-<b>Since Ant 1.7.0</b>
-</p>
+<p>Stores the Apache Ant version (when used as task) or checks for a specific Ant version (when used
+as condition).</p>
 
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required (Task)</b></td>
-    <td align="center" valign="top"><b>Required (Condition)</b></td>
+    <th scope="col" rowspan="2">Attribute</th>
+    <th scope="col" rowspan="2">Description</th>
+    <th scope="col" colspan="2">Required</th>
   </tr>
   <tr>
-    <td valign="top">atleast</td>
-    <td valign="top">The version that this at least.
-      The format is major.minor.point.</td>
-    <td valign="top" align="center">No</td>
-    <td valign="top" rowspan="2" align="center">One of these.</td>
+    <th scope="col">Task</th>
+    <th scope="col">Condition</th>
   </tr>
   <tr>
-    <td valign="top">exactly</td>
-    <td valign="top">The version that this ant is exactly.
-      The format is <tt>major.minor.point</tt>.</td>
-    <td valign="top" align="center">No</td>
+    <td>atleast</td>
+    <td>The version that this Ant is of at least.  The format
+      is <code>major.minor.point</code>.</td>
+    <td class="center">No</td>
+    <td rowspan="2">Exactly one of these</td>
   </tr>
   <tr>
-    <td valign="top">property</td>
-    <td valign="top">The name of the property to set.</td>
-    <td valign="top" align="center">Yes</td>
-    <td valign="top" align="center">No (ignored)</td>
+    <td>exactly</td>
+    <td>The version that this Ant is of exactly.  The format is <code>major.minor.point</code>.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>property</td>
+    <td>The name of the property to set.</td>
+    <td class="center">Yes</td>
+    <td>Ignored</td>
   </tr>
 </table>
 
-
 <h3>Examples</h3>
 
-<blockquote><pre>
-&lt;antversion property=&quot;antversion&quot;/&gt;
-</pre></blockquote>
-<p>Stores the current Ant version in the property <i>antversion</i>.</p>
+<p>Store the current Ant version in the property <code>antversion</code>.</p>
+<pre>&lt;antversion property=&quot;antversion&quot;/&gt;</pre>
 
-<blockquote><pre>
-&lt;antversion property=&quot;antversion&quot; atleast=&quot;1.6&quot;/&gt;
-</pre></blockquote>
-<p>Stores the Ant version in the property <i>antversion</i> if the current Ant version is 1.6.0
+<p>Store the Ant version in the property <code>antversion</code> if the current Ant version is 1.6.0
 or higher. Otherwise the property remains unset.</p>
+<pre>&lt;antversion property=&quot;antversion&quot; atleast=&quot;1.6&quot;/&gt;</pre>
 
-<blockquote><pre>
-&lt;antversion property=&quot;ant-is-exact-7&quot; exactly=&quot;1.7.0&quot;/&gt;
-</pre></blockquote>
-<p>Sets the property <i>ant-is-exact-7</i> if Ant 1.7.0 is running. Neither 1.6.5 nor 1.7.0
+<p>Set the property <code>ant-is-exact-7</code> if Ant 1.7.0 is running. Neither 1.6.5 nor 1.7.1
 would match.</p>
+<pre>&lt;antversion property=&quot;ant-is-exact-7&quot; exactly=&quot;1.7.0&quot;/&gt;</pre>
 
-<blockquote><pre>
+<p>Set <code>Ant17isOnline</code> if Ant 1.7.0 is running and can get a non-error-response from the
+Ant homepage.</p>
+<pre>
 &lt;condition property=&quot;Ant17isOnline&quot;&gt;
   &lt;and&gt;
     &lt;antversion exactly=&quot;1.7.0&quot;/&gt;
-    &lt;http url=&quot;http://ant.apache.org&quot;/&gt;
+    &lt;http url=&quot;https://ant.apache.org&quot;/&gt;
   &lt;/and&gt;
-&lt;/condition&gt;
-</pre></blockquote>
-<p>Sets <i>Ant17isOnline</i> if Ant 1.7.0 is running and can get a non-error-response from
-the Ant homepage.</p>
+&lt;/condition&gt;</pre>
 
 </body>
 </html>
diff --git a/manual/Tasks/apply.html b/manual/Tasks/apply.html
index 5444a64..b77cd76 100644
--- a/manual/Tasks/apply.html
+++ b/manual/Tasks/apply.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,393 +15,345 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-  <meta http-equiv="Content-Language" content="en-us">
   <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
   <title>Apply Task</title>
 </head>
 
 <body>
 
-<h2><a name="apply">Apply/<i>ExecOn</i></a></h2>
-<p><i>The name <code>execon</code> is deprecated and only kept for backwards
-compatibility.</i></p>
+<h2 id="apply">Apply</h2>
+<p><em>The name <code>execon</code> is <u>deprecated</u> and only kept for backwards
+compatibility.</em></p>
 <h3>Description</h3>
-<p>Executes a system command. When the <i>os</i> attribute is specified, then
-the command is only executed when Apache Ant is run on one of the specified operating
-systems.</p>
+<p>Executes a system command. When the <var>os</var> attribute is specified, then the command is
+only executed when Apache Ant is run on one of the specified operating systems.</p>
 
-<p>The files and/or directories of a number of <a
-href="../Types/resources.html#collection">Resource Collection</a>s
-&ndash; including but not restricted to
- <a href="../Types/fileset.html">FileSet</a>s,
- <a href="../Types/dirset.html">DirSet</a>s
- (<em>since&nbsp;Ant&nbsp;1.6</em>) or
- <a href="../Types/filelist.html">FileList</a>s
- (<em>since&nbsp;Ant&nbsp;1.6</em>)
-&ndash;
- are passed as arguments to the system command.</p>
-<p>If you specify a nested <a href="../Types/mapper.html">mapper</a>,
-the timestamp of each source file is compared to the timestamp of a
-target file which is defined by the nested mapper element and searched
-for in the given <i>dest</i>, if specified.</p>
-<p>At least one fileset or filelist is required,
-and you must not specify more than one mapper.</p>
+<p>The files and/or directories of a number of <a href="../Types/resources.html#collection">Resource
+Collection</a>s &ndash;- including but not restricted
+to <a href="../Types/fileset.html">FileSet</a>s, <a href="../Types/dirset.html">DirSet</a>s
+(<em>since Ant 1.6</em>) or <a href="../Types/filelist.html">FileList</a>s (<em>since Ant 1.6</em>)
+&ndash;- are passed as arguments to the system command.</p>
+<p>If you specify a nested <a href="../Types/mapper.html">mapper</a>, the timestamp of each source
+file is compared to the timestamp of a target file which is defined by the
+nested <code>mapper</code> element and searched for in the given <var>dest</var>, if specified.</p>
+<p>At least one <code>fileset</code> or <code>filelist</code> is required, and you must not specify
+more than one <code>mapper</code>.</p>
 
-<p>Note that you cannot interact with the forked program, the only way
-to send input to it is via the input and inputstring attributes.</p>
+<p>Note that you cannot interact with the forked program, the only way to send input to it is via
+the <var>input</var> and <var>inputstring</var> attributes.</p>
 
-<h4><a name="background">Running Ant as a background process on
-    Unix(-like) systems</a></h4>
+<h4 id="background">Running Ant as a background process on Unix(-like) systems</h4>
 
-<p>If you run Ant as a background process (like <code>ant &</code>)
-  and use the <code>&lt;apply&gt;</code> task with <code>spawn</code>
-  set to <code>false</code>, you must provide explicit input to the
-  forked process or Ant will be suspended because it tries to read
-  from the standard input.</p>
+<p>If you run Ant as a background process (like <kbd>ant &amp;</kbd>) and use
+the <code>&lt;apply&gt;</code> task with <var>spawn</var> set to <q>false</q>, you must provide
+explicit input to the forked process or Ant will be suspended because it tries to read from the
+standard input.</p>
 
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">executable</td>
-    <td valign="top">the command to execute without any command line
-      arguments.</td>
-    <td align="center" valign="top">Yes</td>
+    <td>executable</td>
+    <td>the command to execute without any command line arguments.</td>
+    <td>Yes</td>
   </tr>
   <tr>
-    <td valign="top">dest</td>
-    <td valign="top">the directory where the command is expected to place
-    target files when it is executed. This attribute is valid only when used
-    in conjunction with a nested mapper; if omitted, the target filenames
-    returned by the mapper will be interpreted as absolute paths.</td>
-    <td align="center" valign="top">No</td>
+    <td>dest</td>
+    <td>the directory where the command is expected to place target files when it is executed.</td>
+    <td>No; ignored unless a nested mapper is specified; by default, the target filenames returned
+      by the mapper will be interpreted as absolute paths</td>
   </tr>
   <tr>
-    <td valign="top">spawn</td>
-    <td valign="top">whether or not you want the commands to be spawned.<br>
-    If you spawn a command, its output will not be logged by ant.<br>
-    The input, output, error, and result property settings are not active when spawning a process.<br>
-    <em>since&nbsp;Ant&nbsp;1.6</em>
-    </td>
-    <td align="center" valign="top">No, default is <i>false</i></td>
-  </tr>
-
-  <tr>
-    <td valign="top">dir</td>
-    <td valign="top">the directory in which the command should be executed.</td>
-    <td align="center" valign="top">No.<br/>
-      <strong>Note:</strong> the default used when dir has not been
-      specified depends on the <code>vmlauncher</code> attribute.  If
-      <code>vmlauncher</code> is <code>true</code> the task will use
-      the current working directory, otherwise it uses the project's basedir.
-    </td>
+    <td>spawn</td>
+    <td>whether or not you want the commands to be spawned.<br/>  If you spawn a command, its output
+    will not be logged by Ant.<br/>  The input, output, error, and result property settings are not
+    active when spawning a process.<br/>  <em>since Ant 1.6</em></td>
+    <td>No; default is <q>false</q></td>
   </tr>
   <tr>
-    <td valign="top">relative</td>
-    <td valign="top">whether the filenames should be passed on the
-      command line as relative pathnames (relative to the base directory
-      of the corresponding fileset/list for source files or the
-      <i>dest</i> attribute for target files).</td>
-    <td align="center" valign="top">No, default is <i>false</i></td>
+    <td>dir</td>
+    <td>the directory in which the command should be executed.</td>
+    <td>No; if <var>vmlauncher</var> is <q>true</q>, defaults to the current working directory,
+      otherwise the project's <var>basedir</var></td>
   </tr>
   <tr>
-    <td valign="top">forwardslash</td>
-    <td valign="top">whether the file names should be passed
-      with forward slashes even if the operating system requires other
-      file separator. The option is ignored if the system file separator
-      is a forward slash.</td>
-    <td align="center" valign="top">No, default is <i>false</i></td>
+    <td>relative</td>
+    <td>whether the filenames should be passed on the command line as relative pathnames (relative
+      to the base directory of the corresponding fileset/list for source files or
+      the <var>dest</var> attribute for target files).</td>
+    <td>No; default is <q>false</q></td>
   </tr>
   <tr>
-    <td valign="top">os</td>
-    <td valign="top">list of Operating Systems on which the command may be
-      executed.</td>
-    <td align="center" valign="top">No</td>
+    <td>forwardslash</td>
+    <td>whether the file names should be passed with forward slashes even if the operating system
+      requires other file separator. The option is ignored if the system file separator is a forward
+      slash.</td>
+    <td>No; default is <q>false</q></td>
   </tr>
   <tr>
-    <td valign="top">osfamily</td>
-    <td valign="top">OS family as used in the &lt;os&gt; condition.
+    <td>os</td>
+    <td>list of Operating Systems on which the command may be executed.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>osfamily</td>
+    <td>OS family as used in the <code>&lt;os&gt;</code> condition.
     <em>since Ant 1.7</em></td>
-    <td align="center" valign="top">No</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">output</td>
-    <td valign="top">the file to which the output of the command
-    should be redirected.  If the error stream is not also redirected
-    to a file or property, it will appear in this output.</td>
-    <td align="center" valign="top">No</td>
+    <td>output</td>
+    <td>the file to which the output of the command should be redirected.  If the error stream is
+    not also redirected to a file or property, it will appear in this output.</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">error</td>
-    <td valign="top">The file to which the standard error of the
-    command should be redirected.  <em>since&nbsp;Ant&nbsp;1.6</em></td>
-    <td align="center" valign="top">No</td>
+    <td>error</td>
+    <td>The file to which the standard error of the command should be redirected.  <em>since Ant
+    1.6</em></td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">logError</td>
-    <td valign="top">This attribute is used when you wish to see error
-    output in Ant's log and you are redirecting output to a
-    file/property. The error output will not be included in the output
-    file/property. If you redirect error with the &quot;error&quot; or
-    &quot;errorProperty&quot; attributes, this will have no effect.
-    <em>since&nbsp;Ant&nbsp;1.6</em></td>
-    <td align="center" valign="top">No</td>
+    <td>logError</td>
+    <td>This attribute is used when you wish to see error output in Ant's log and you are
+    redirecting output to a file/property. The error output will not be included in the output
+    file/property. If you redirect error with the <var>error</var> or <var>errorProperty</var>
+    attributes, this will have no effect.  <em>since Ant 1.6</em></td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">append</td>
-    <td valign="top">whether output should be appended to or overwrite
-      an existing file.  If you set parallel to false, you will probably
-      want to set this one to true.</td>
-    <td align="center" valign="top">No, default is <i>false</i></td>
+    <td>append</td>
+    <td>whether output should be appended to or overwrite an existing file.  If you
+      set <var>parallel</var> to <q>false</q>, you will probably want to set this one
+      to <q>true</q>.</td>
+    <td>No; default is <q>false</q></td>
   </tr>
   <tr>
-    <td valign="top">outputproperty</td>
-    <td valign="top">the name of a property in which the output of the
-    command should be stored.  Unless the error stream is redirected
-    to a separate file or stream, this property will include the error
+    <td>outputproperty</td>
+    <td>the name of a property in which the output of the command should be stored.  Unless the
+    error stream is redirected to a separate file or stream, this property will include the error
     output.</td>
-    <td align="center" valign="top">No</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">errorproperty</td>
-    <td valign="top">The name of a property in which the standard error of the
-      command should be stored.  <em>since&nbsp;Ant&nbsp;1.6</em></td>
-    <td align="center" valign="top">No</td>
+    <td>errorproperty</td>
+    <td>The name of a property in which the standard error of the command should be
+      stored.  <em>since Ant 1.6</em></td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">input</td>
-    <td valign="top">A file from which the executed command's standard
-    input is taken. This attribute is mutually exclusive with the
-    inputstring attribute.  <em>since&nbsp;Ant&nbsp;1.6</em></td>
-    <td align="center" valign="top">No</td>
+    <td>input</td>
+    <td>A file from which the executed command's standard input is taken. This attribute is mutually
+    exclusive with the <var>inputstring</var> attribute.  <em>since Ant 1.6</em></td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">inputstring</td>
-    <td valign="top">A string which serves as the input stream for the
-    executed command. This attribute is mutually exclusive with the
-    input attribute.  <em>since&nbsp;Ant&nbsp;1.6</em></td>
-    <td align="center" valign="top">No</td>
+    <td>inputstring</td>
+    <td>A string which serves as the input stream for the executed command. This attribute is
+    mutually exclusive with the <var>input</var> attribute.  <em>since Ant 1.6</em></td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">resultproperty</td>
-    <td valign="top">the name of a property in which the return code
-      of the command should be stored. Only of interest if
-      failonerror=false. If you set parallel to false, only the result
-      of the first execution will be stored.</td>
-    <td align="center" valign="top">No</td>
+    <td>resultproperty</td>
+    <td>the name of a property in which the return code of the command should be stored. Only of
+      interest if <var>failonerror</var> is <q>false</q>. If you set <var>parallel</var>
+      to <q>false</q>, only the result of the first execution will be stored.</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">timeout</td>
-    <td valign="top">Stop the command if it doesn't finish within the
-      specified time (given in milliseconds).</td>
-    <td align="center" valign="top">No</td>
+    <td>timeout</td>
+    <td>Stop the command if it doesn't finish within the specified time (given in
+      milliseconds).</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">failonerror</td>
-    <td valign="top">Stop the buildprocess if the command exits with a
-      returncode other than 0.</td>
-    <td align="center" valign="top">No</td>
+    <td>failonerror</td>
+    <td>Stop the build process if the command exits with a return code other than <q>0</q>.</td>
+    <td>No; defaults to <q>false</q></td>
   </tr>
   <tr>
-    <td valign="top">failifexecutionfails</td>
-    <td valign="top">Stop the build if we can't start the program.
-      Defaults to true. </td>
-    <td align="center" valign="top">No</td>
+    <td>failifexecutionfails</td>
+    <td>Stop the build if we can't start the program.</td>
+    <td>No; defaults to <q>true</q></td>
   </tr>
   <tr>
-    <td valign="top">skipemptyfilesets</td>
-    <td valign="top">Don't run the command, if no source files have
-      been found or are newer than their corresponding target
-      files.  Despite its name, this attribute applies to filelists as
+    <td>skipemptyfilesets</td>
+    <td>Don't run the command, if no source files have been found or are newer than their
+      corresponding target files.  Despite its name, this attribute applies to filelists as
       well.</td>
-    <td align="center" valign="top">No, default is <i>false</i></td>
+    <td>No; default is <q>false</q></td>
   </tr>
   <tr>
-    <td valign="top">parallel</td>
-    <td valign="top">Run the command only once, appending all files as
-      arguments. If false, command will be executed once for every file.</td>
-    <td align="center" valign="top">No, default is <i>false</i></td>
+    <td>parallel</td>
+    <td>Run the command only once, appending all files as arguments. If <q>false</q>, command will
+      be executed once for every file.</td>
+    <td>No; default is <q>false</q></td>
   </tr>
   <tr>
-    <td valign="top">type</td>
-    <td valign="top">One of <i>file</i>, <i>dir</i> or
-      <i>both</i>. If set to <i>file</i>, only the names of plain
-      files will be sent to the command. If set to <i>dir</i>, only
-      the names of directories are considered.<br>
-      <strong>Note:</strong> The type attribute does not apply to
-      nested <i>dirset</i>s - <i>dirset</i>s always implicitly
-      assume type to be <i>dir</i>.</td>
-    <td align="center" valign="top">No, default is <i>file</i></td>
+    <td>type</td>
+    <td>One of <q>file</q>, <q>dir</q> or <q>both</q>. If set to <q>file</q>, only the names of
+      plain files will be sent to the command. If set to <q>dir</q>, only the names of directories
+      are considered.<br/>
+      <strong>Note</strong>: The <var>type</var> attribute does not apply to
+      nested <code>dirset</code>s&mdash;<code>dirset</code>s always implicitly assume type to
+      be <q>dir</q>.</td>
+    <td>No; default is <q>file</q></td>
   </tr>
   <tr>
-    <td valign="top">newenvironment</td>
-    <td valign="top">Do not propagate old environment when new environment
-      variables are specified.</td>
-    <td align="center" valign="top">No, default is <i>false</i></td>
+    <td>newenvironment</td>
+    <td>Do not propagate old environment when new environment variables are specified.</td>
+    <td>No; default is <q>false</q></td>
   </tr>
   <tr>
-    <td valign="top">vmlauncher</td>
-    <td valign="top">Run command using the Java VM's execution facilities
-        where available. If set to false the underlying OS's shell,
-        either directly or through the antRun scripts, will be used.
-        Under some operating systems, this gives access to facilities
-        not normally available through the VM including, under Windows,
-        being able to execute scripts, rather than their associated
-        interpreter.  If you want to specify the name of the
-        executable as a relative path to the directory given by the
-        dir attribute, it may become necessary to set vmlauncher to
-        false as well.</td>
-    <td align="center" valign="top">No, default is <i>true</i></td>
+    <td>vmlauncher</td>
+    <td>Run command using the JVM's execution facilities where available. If set to <q>false</q> the
+      underlying OS's shell, either directly or through the <kbd>antRun</kbd> scripts, will be
+      used.  Under some operating systems, this gives access to facilities not normally available
+      through JVM including, under Windows, being able to execute scripts, rather than their
+      associated interpreter.  If you want to specify the name of the executable as a relative path
+      to the directory given by the <var>dir</var> attribute, it may become necessary to
+      set <var>vmlauncher</var> to <q>false</q> as well.</td>
+    <td>No; default is <q>true</q></td>
   </tr>
   <tr>
-    <td valign="top">resolveExecutable</td>
-    <td valign="top">When this attribute is true, the name of the
-    executable if resolved firstly against the project basedir and if
-    that does not exist, against the execution directory if
-    specified. On Unix systems, if you only want to allow execution of
-    commands in the user's path, set this to false.
-    <em>since&nbsp;Ant&nbsp;1.6</em></td>
-    <td align="center" valign="top">No, default is <i>false</i></td>
+    <td>resolveExecutable</td>
+    <td>When this attribute is <q>true</q>, the name of the executable if resolved firstly against
+      the project <var>basedir</var> and if that does not exist, against the execution directory if
+      specified. On Unix systems, if you only want to allow execution of commands in the user's
+      path, set this to <q>false</q>.
+    <em>since Ant 1.6</em></td>
+    <td>No; default is <q>false</q></td>
   </tr>
   <tr>
-    <td valign="top">maxparallel</td>
-    <td valign="top">Limit the amount of parallelism by passing at
-      most this many sourcefiles at once.  Set it to &lt;= 0 for
-      unlimited. <em>Since&nbsp;Ant&nbsp;1.6.</em></td>
-    <td align="center" valign="top">No, unlimited by default</td>
+    <td>maxparallel</td>
+    <td>Limit the amount of parallelism by passing at most this many sourcefiles at once.  Set it to
+      negative integer for unlimited. <em>Since Ant 1.6</em>.</td>
+    <td>No, unlimited by default</td>
   </tr>
   <tr>
-    <td valign="top">addsourcefile</td>
-    <td valign="top">Whether source file names should be added to the
-      command automatically. <em>Since&nbsp;Ant&nbsp;1.6.</em></td>
-    <td align="center" valign="top">No, default is <i>true</i></td>
+    <td>addsourcefile</td>
+    <td>Whether source file names should be added to the command automatically. <em>Since Ant
+      1.6</em>.</td>
+    <td>No; default is <q>true</q></td>
   </tr>
   <tr>
-    <td valign="top">verbose</td>
-    <td valign="top">Whether to print a summary after execution or not.
-      <em>Since&nbsp;Ant&nbsp;1.6.</em></td>
-    <td align="center" valign="top">No, default <i>false</i></td>
+    <td>verbose</td>
+    <td>Whether to print a summary after execution or not.  <em>Since Ant 1.6</em>.</td>
+    <td>No; default is <q>false</q></td>
   </tr>
   <tr>
-    <td valign="top">ignoremissing</td>
-    <td valign="top">Whether to ignore nonexistent files specified
-      via filelists.  <em>Since&nbsp;Ant&nbsp;1.6.2.</em></td>
-    <td align="center" valign="top">No, default is <i>true</i></td>
+    <td>ignoremissing</td>
+    <td>Whether to ignore nonexistent files specified via filelists.  <em>Since Ant 1.6.2</em>.</td>
+    <td>No; default is <q>true</q></td>
   </tr>
   <tr>
-    <td valign="top">force</td>
-    <td valign="top">Whether to bypass timestamp comparisons
-      for target files.  <em>Since&nbsp;Ant&nbsp;1.6.3.</em></td>
-    <td align="center" valign="top">No, default is <i>false</i></td>
+    <td>force</td>
+    <td>Whether to bypass timestamp comparisons for target files.  <em>Since Ant 1.6.3</em>.</td>
+    <td>No; default is <q>false</q></td>
   </tr>
 </table>
 <h3>Parameters specified as nested elements</h3>
 <h4>fileset</h4>
-<p>You can use any number of nested <code>&lt;fileset&gt;</code>
-elements to define the files for this task and refer to
-<code>&lt;fileset&gt;</code>s defined elsewhere.</p>
-<h4>filelist</h4>
-<p><em>Since&nbsp;Ant&nbsp;1.6</em></p>
-<p>You can use any number of nested <code>&lt;filelist&gt;</code>
-elements to define the files for this task and refer to
-<code>&lt;filelist&gt;</code>s defined elsewhere.</p>
-<h4>dirset</h4>
-<p><em>Since&nbsp;Ant&nbsp;1.6</em></p>
-<p>You can use any number of nested <code>&lt;dirset&gt;</code>
-elements to define the directories for this task and refer to
-<code>&lt;dirset&gt;</code>s defined elsewhere.</p>
+<p>You can use any number of nested <code>&lt;fileset&gt;</code> elements to define the files for
+this task and refer to <code>&lt;fileset&gt;</code>s defined elsewhere.</p>
 
-<h4>Any other <a href="../Types/resources.html#collection">Resource
-Collection</a></h4>
-<p><em>since Ant 1.7</em></p>
+<h4>filelist</h4>
+<p><em>Since Ant 1.6</em></p>
+<p>You can use any number of nested <code>&lt;filelist&gt;</code> elements to define the files for
+this task and refer to <code>&lt;filelist&gt;</code>s defined elsewhere.</p>
+
+<h4>dirset</h4>
+<p><em>Since Ant 1.6</em></p>
+<p>You can use any number of nested <code>&lt;dirset&gt;</code> elements to define the directories
+for this task and refer to <code>&lt;dirset&gt;</code>s defined elsewhere.</p>
+
+<h4>Any other <a href="../Types/resources.html#collection">resource collection</a></h4>
+<p><em>Since Ant 1.7</em></p>
 <p>You can use any number of nested resource collections.</p>
 
 <h4>mapper</h4>
-<p>A single <code>&lt;mapper&gt;</code> specifies the target files relative
-to the <code>dest</code> attribute for dependency checking. If the
-<code>dest</code> attribute is specified it will be used as a base directory
-for resolving relative pathnames returned by the mapper. At least one
+<p>A single <code>&lt;mapper&gt;</code> specifies the target files relative to the <var>dest</var>
+attribute for dependency checking. If the <var>dest</var> attribute is specified it will be used as
+a base directory for resolving relative pathnames returned by the mapper. At least one
 <code>&lt;fileset&gt;</code> or <code>&lt;filelist&gt;</code> is required.</p>
+
 <h4>arg</h4>
-<p>Command line arguments should be specified as nested
-<code>&lt;arg&gt;</code> elements. See <a
-href="../using.html#arg">Command line arguments</a>.</p>
+<p>Command line arguments should be specified as nested <code>&lt;arg&gt;</code>
+elements. See <a href="../using.html#arg">Command line arguments</a>.</p>
+
 <h4>srcfile</h4>
-<p>By default the file names of the source files will be added to the
-end of the command line (unless you set addsourcefile to
-<code>false</code>). If you need to place it somewhere different,
-use a nested <code>&lt;srcfile&gt;</code> element between your
-<code>&lt;arg&gt;</code> elements to mark the insertion point.</p>
-<table border="1" cellpadding="2" cellspacing="0">
+<p>By default the file names of the source files will be added to the end of the command line
+(unless you set <var>addsourcefile</var> to <q>false</q>). If you need to place it somewhere
+different, use a nested <code>&lt;srcfile&gt;</code> element between your <code>&lt;arg&gt;</code>
+elements to mark the insertion point.</p>
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">prefix</td>
-    <td valign="top">a prefix to place in front of the file name when
-    building the command line argument.  <em>Since Ant 1.8.0</em></td>
-    <td align="center" valign="top">No.</td>
+    <td>prefix</td>
+    <td>a prefix to place in front of the file name when building the command line
+    argument.  <em>Since Ant 1.8.0</em></td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">suffix</td>
-    <td valign="top">a suffix to append to the file name when
-    building the command line argument.  <em>Since Ant 1.8.0</em></td>
-    <td align="center" valign="top">No.</td>
+    <td>suffix</td>
+    <td>a suffix to append to the file name when building the command line argument.  <em>Since Ant
+    1.8.0</em></td>
+    <td>No</td>
   </tr>
 </table>
 <h4>targetfile</h4>
-<p><code>&lt;targetfile&gt;</code> is similar to
-<code>&lt;srcfile&gt;</code> and marks the position of the target
-filename on the command line. If omitted, the target filenames will
-not be added to the command line at all. This element can only be
-specified if you also define a nested mapper.</p>
-<table border="1" cellpadding="2" cellspacing="0">
+<p><code>&lt;targetfile&gt;</code> is similar to <code>&lt;srcfile&gt;</code> and marks the position
+of the target filename on the command line. If omitted, the target filenames will not be added to
+the command line at all. This element can only be specified if you also define a nested mapper.</p>
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">prefix</td>
-    <td valign="top">a prefix to place in front of the file name when
-    building the command line argument.  <em>Since Ant 1.8.0</em></td>
-    <td align="center" valign="top">No.</td>
+    <td>prefix</td>
+    <td>a prefix to place in front of the file name when building the command line
+    argument.  <em>Since Ant 1.8.0</em></td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">suffix</td>
-    <td valign="top">a suffix to append to the file name when
-    building the command line argument.  <em>Since Ant 1.8.0</em></td>
-    <td align="center" valign="top">No.</td>
+    <td>suffix</td>
+    <td>a suffix to append to the file name when building the command line argument.  <em>Since Ant
+    1.8.0</em></td>
+    <td>No</td>
   </tr>
 </table>
 <h4>env</h4>
-<p>It is possible to specify environment variables to pass to the
-system command via nested <code>&lt;env&gt;</code> elements. See the
-description in the section about <a href="exec.html#env">exec</a></p>
+<p>It is possible to specify environment variables to pass to the system command via
+nested <code>&lt;env&gt;</code> elements. See the description in the section
+about <a href="exec.html#env">exec</a></p>
 <h4>redirector</h4>
-<i><b>Since&nbsp;Ant&nbsp;1.6.2</b></i>
-<p>A nested <a href="../Types/redirector.html">I/O Redirector</a>
-can be specified.  &lt;apply&gt;'s behavior is like that of
-<a href="exec.html#redirector">exec</a> with regard to
-redirectors, with the exception that, in non-<i>parallel</i> mode,
-file mapping will take place with each iteration.  This grants the
-user the capacity to receive input from, and send output to, different
-files for each sourcefile.
-</p>
-<p>In <i>parallel</i>-mode the redirector will be reset for each batch
-  of executions (with <i>maxparallel</i> &gt; 0) and null will be used
-  a source file just like it is in the case of <code>exec</code>.</p>
+<em>Since Ant 1.6.2</em>
+<p>A nested <a href="../Types/redirector.html">I/O Redirector</a> can be specified.  &lt;apply&gt;'s
+behavior is like that of <a href="exec.html#redirector">exec</a> with regard to redirectors, with
+the exception that, in non-<var>parallel</var> mode, file mapping will take place with each
+iteration.  This grants the user the capacity to receive input from, and send output to, different
+files for each sourcefile.</p>
+<p>In <var>parallel</var> mode the redirector will be reset for each batch of executions
+(with <var>maxparallel</var> &gt; 0) and null will be used a source file just like it is in the case
+of <code>exec</code>.</p>
 <h3>Examples</h3>
-<blockquote><pre>
+<p>Invoke <kbd>ls -l</kbd>, adding the absolute filenames of all files below <samp>/tmp</samp> not
+ending in <samp>.txt</samp> and all files of the FileSet with <var>id</var> <samp>other.files</samp>
+to the command line.</p>
+<pre>
 &lt;apply executable=&quot;ls&quot;&gt;
   &lt;arg value=&quot;-l&quot;/&gt;
   &lt;fileset dir=&quot;/tmp&quot;&gt;
@@ -409,26 +362,26 @@
     &lt;/patternset&gt;
   &lt;/fileset&gt;
   &lt;fileset refid=&quot;other.files&quot;/&gt;
-&lt;/apply&gt;
-</pre></blockquote>
-<p>invokes <code>ls -l</code>, adding the absolute filenames of all
-files below <code>/tmp</code> not ending in <code>.txt</code> and all
-files of the FileSet with <code>id</code> <code>other.files</code> to
-the command line.</p>
-<blockquote><pre>
+&lt;/apply&gt;</pre>
+
+<p>Invoke <kbd>somecommand arg1 SOURCEFILENAME arg2</kbd> for each file in <samp>/tmp</samp>
+replacing <code>SOURCEFILENAME</code> with the absolute filename of each file in
+turn. If <var>parallel</var> had been set to <q>true</q>, <code>SOURCEFILENAME</code> would be
+replaced with the absolute filenames of all files separated by spaces.</p>
+<pre>
 &lt;apply executable=&quot;somecommand&quot; parallel=&quot;false&quot;&gt;
   &lt;arg value=&quot;arg1&quot;/&gt;
   &lt;srcfile/&gt;
   &lt;arg value=&quot;arg2&quot;/&gt;
   &lt;fileset dir=&quot;/tmp&quot;/&gt;
 &lt;/apply&gt;
-</pre></blockquote>
-<p>invokes <code>somecommand arg1 SOURCEFILENAME arg2</code> for each
-file in <code>/tmp</code> replacing SOURCEFILENAME with the absolute
-filename of each file in turn. If <code>parallel</code> had been set
-to true, SOURCEFILENAME would be replaced with the absolute filenames
-of all files separated by spaces.</p>
-<blockquote><pre>
+</pre>
+
+<p>Invoke <kbd>cc -c -o TARGETFILE SOURCEFILE</kbd> for each <samp>.c</samp> file that is newer than
+the corresponding <samp>.o</samp>, replacing <code>TARGETFILE</code> with the absolute filename of
+the <samp>.o</samp> and <code>SOURCEFILE</code> with the absolute name of the <samp>.c</samp>
+file.</p>
+<pre>
 &lt;apply executable=&quot;cc&quot; dest=&quot;src/C&quot; parallel=&quot;false&quot;&gt;
   &lt;arg value=&quot;-c&quot;/&gt;
   &lt;arg value=&quot;-o&quot;/&gt;
@@ -436,14 +389,17 @@
   &lt;srcfile/&gt;
   &lt;fileset dir=&quot;src/C&quot; includes=&quot;*.c&quot;/&gt;
   &lt;mapper type=&quot;glob&quot; from=&quot;*.c&quot; to=&quot;*.o&quot;/&gt;
-&lt;/apply&gt;
-</pre></blockquote>
-<p>invokes <code>cc -c -o TARGETFILE SOURCEFILE</code> for each
-<code>.c</code> file that is newer than the corresponding
-<code>.o</code>, replacing TARGETFILE with the absolute filename of
-the <code>.o</code> and SOURCEFILE with the absolute name of the
-<code>.c</code> file.</p>
-<blockquote><pre>
+&lt;/apply&gt;</pre>
+
+<p>Apply the fictitious <kbd>processfile</kbd> executable to all files matching <samp>*.file</samp>
+in the <samp>src</samp> directory.  The <samp>out</samp> <code>&lt;mapper&gt;</code> has been set up
+to map <samp>*.file</samp> to <samp>*.out</samp>, then this <code>&lt;mapper&gt;</code> is used to
+specify <code>targetfile</code>s for this <code>&lt;apply&gt;</code> task.  A reference
+to <samp>out</samp> is then used as an <code>&lt;outputmapper&gt;</code> nested in
+a <code>&lt;redirector&gt;</code>, which in turn is nested beneath this <code>&lt;apply&gt;</code>
+instance.  This allows us to perform dependency checking against output files&mdash;the target files
+in this case.</p>
+<pre>
 &lt;mapper id=&quot;out&quot; type=&quot;glob&quot;
            from=&quot;src${file.separator}*.file&quot;
            to=&quot;dest${file.separator}*.out&quot;/&gt;
@@ -454,30 +410,23 @@
   &lt;redirector&gt;
     &lt;outputmapper refid=&quot;out&quot;/&gt;
   &lt;/redirector&gt;
-&lt;/apply&gt;
-</pre></blockquote>
-Applies the fictitious &quot;processfile&quot; executable to all
-files matching <code>*.file</code> in the <code>src</code> directory.
-The <code>out</code> <code>&lt;mapper&gt;</code> has been set up to map
-<code>*.file</code> to <code>*.out</code>, then this <code>&lt;mapper&gt;</code>
-is used to specify <code>targetfile</code>s for this &lt;apply&gt;
-task.  A reference to <code>out</code> is then used as an
-<code>&lt;outputmapper&gt;</code> nested in a <code>&lt;redirector&gt;</code>, which in turn is
-nested beneath this <code>&lt;apply&gt;</code> instance.  This allows us to perform
-dependency checking against output files--the target files in this case.
-<blockquote><pre>
+&lt;/apply&gt;</pre>
+
+<p>Apply the <kbd>ls</kbd> executable to all directories in the <code>PATH</code>, effectively
+listing all executables that are available on the <code>PATH</code>.</p>
+<pre>
 &lt;apply executable="ls" parallel="true"
        force="true" dest="${basedir}" append="true" type="both"&gt;
   &lt;path&gt;
     &lt;pathelement path="${env.PATH}"/&gt;
   &lt;/path&gt;
   &lt;identitymapper/&gt;
-&lt;/apply&gt;
-</pre></blockquote>
-Applies the "ls" executable to all directories in the PATH, effectively
-listing all executables that are available on the PATH.
+&lt;/apply&gt;</pre>
 
-<blockquote><pre>
+<p>Convert all JavaScript files in the <samp>src</samp> directory using the command <kbd>jsmin &lt;
+src/a.js &gt; dest/a.js</kbd>. Because the filename itself should not be passed to
+the <code>jsmin</code> program, the <var>addsourcefile</var> is set to <q>false</q>.</p>
+<pre>
 &lt;apply executable="jsmin" addsourcefile="false"&gt;
     &lt;!-- Collect the JS-files --&gt;
     &lt;fileset dir="src" includes="*.js"/&gt;
@@ -488,17 +437,7 @@
         &lt;!-- redirect STDOUT to file in dest-dir --&gt;
         &lt;outputmapper id="out" type="glob" from="*.js" to="dest/*.js"/&gt;
     &lt;/redirector&gt;
-&lt;/apply&gt;
-</pre></blockquote>
-Conversion of the command <code>jsmin &lt; src/a.js &gt; dest/a.js</code> but for
-all files in the src-directory. Because the filename itself should not be passed
-to the <code>jsmin</code> program, the <code>addsourcefile</code> is set to
-<code>false</code>.
-
-
-
-
-
+&lt;/apply&gt;</pre>
 
 </body>
 </html>
diff --git a/manual/Tasks/apt.html b/manual/Tasks/apt.html
deleted file mode 100644
index 4bdd9a9..0000000
--- a/manual/Tasks/apt.html
+++ /dev/null
@@ -1,179 +0,0 @@
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<html lang="en-us"><head>
-<meta http-equiv="Content-Language" content="en-us"><link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
-<title>Apt Task</title></head>
-
-<body>
-
-<h2><a name="Apt">Apt</a></h2>
-<h3>Description</h3>
-<p>Runs the annotation processor tool (apt), and then optionally compiles
-   the original code, and any generated source code.
-   <p>This task runs on Java 1.5 to Java 1.7.</p>
-   <p>Apt is deprecated in Java 1.6, which can run annotation
-   processors as part of javac, and removed from the distribution in Java 1.8.
-   The task will fire an exception when attempting to run under Java 1.8.</p>
-
-
-<p>This task inherits from the <a href="javac.html">Javac Task</a>, and thus
-   supports nearly all of the same attributes, and subelements.  
-   There is one special case, the <tt>fork</tt> attribute, which is present
-   but which can only be set to <tt>true</tt>. That is, apt only works as
-   a forked process.
- </p>
- <p>
-   In addition, it supports
-   the following addition items:</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tbody><tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">compile</td>
-    <td valign="top">After running the Apt, should the code be compiled.  (see the
-                     <code>-nocompile</code> flag on the Apt executable)</td>
-    <td align="center" valign="top">No, defaults to false.</td>
-  </tr>
-  <tr>
-    <td valign="top">factory</td>
-    <td valign="top">The fully qualified classname of the AnnotationProcessFactory to be used
-                     to construct annotation processors.  This represents the <code>-factory</code>
-                     command line flag of the Apt executable.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">factorypathref</td>
-    <td valign="top">The reference id of the path used to find the classes needed by the
-                     AnnotationProcessorFactory (and the location of the factory itself).
-                     This represents the <code>-factorypath</code> flag on the Apt executable.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">preprocessdir</td>
-    <td valign="top">The directory used for preprocessing.  This is the directory where the
-                     generated source code will be place.  This represents the <code>-s</code> flag on
-                     the Apt executable.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</tbody></table>
-
-<h3>Parameters specified as nested elements</h3>
-
-
-<h4>factorypath</h4>
-
-<p>You can specify the path used to find the classes needed by the AnnotationProcessorFactory
-   at runtime, using this element.  It is represents as a generic path like structure.  This
-   represents the <code>-factorypath</code> flag on the Apt executable.</p>
-
-
-<h4>option</h4>
-
-<p>Used to represent a generic option to pass to Apt.  This represents the <code>-A</code> flag on the
-   Apt executable.  You can specify zero or more <code>&lt;option&gt;</code> elements.</p>
-
-<table border="1" cellpadding="2" cellspacing="0">
-<tbody><tr>
-  <td valign="top" width="12%"><b>Attribute</b></td>
-  <td valign="top" width="78%"><b>Description</b></td>
-  <td valign="top" width="10%"><b>Required</b></td>
-</tr>
-  <tr>
-    <td valign="top">name</td>
-    <td align="center">The name of the option</td>
-    <td align="center">Yes.</td>
-  </tr>
-  <tr>
-    <td valign="top">value</td>
-    <td align="center">The value to set the option to</td>
-    <td align="center">Yes.</td>
-  </tr>
-</tbody></table>
-
-<h3>Examples</h3>
-<blockquote><pre>
-&lt;apt srcdir="${src}"
-     destdir="${build}"
-     classpath="xyz.jar"
-     debug="on"
-     compile="true"
-     factory="com.mycom.MyAnnotationProcessorFactory"
-     factorypathref="my.factorypath.id"
-     preprocessdir="${preprocess.dir}"&gt;
-&lt;/apt&gt;
-</pre></blockquote>
-<p>compiles all <code>.java</code> files under the <code>${src}</code>
-directory, and stores
-the <code>.class</code> files in the <code>${build}</code> directory.
-The classpath used includes <code>xyz.jar</code>, and compiling with
-debug information is on.  It also forces the generated source code to
-be compiled.  The generated source code will be placed in
-<code>${preprocess.dir}</code> directory, using the class
-<code>com.mycom.MyAnnotationProcessorFactory</code> to supply
-AnnotationProcessor instances.</p>
-
-
-<h3>Notes</h3>
-
-<p>
-The inherited "fork" attribute is set to true by default; please do not change it.
-</p>
-
-<p>
-The inherited "compiler" attribute is ignored, as it is forced to use the Apt compiler
-</p>
-
-<p>Using the Apt compiler with the "compile" option set to "true"
-   forces you to use Sun's Apt compiler, which will use the JDK's Javac compiler.
-   If you wish to use another compiler, you will first need run the Apt processor
-   with the "compile" flag set to "false", and then use a
-   <code>&lt;javac&gt;</code> task to compile first your original source code, and then the
-   generated source code:</p>
-
-<blockquote><pre>
-&lt;apt srcdir="${src}"
-     destdir="${build}"
-     classpath="xyz.jar"
-     debug="true"
-     compile="false"
-     factory="com.mycom.MyAnnotationProcessorFactory"
-     factorypathref="my.factorypath.id"
-     preprocessdir="${preprocess.dir}"&gt;
-&lt;/apt&gt;
-
-&lt;javac srcdir="${src}"
-       destdir="${build}"
-       classpath="xyz.jar"
-       debug="on"/&gt;
-
-&lt;javac srcdir="${preprocess.dir}"
-       destdir="${build}"
-       classpath="xyz.jar"
-       debug="true"/&gt;
-</pre></blockquote>
-
-This may involve more build file coding, but the speedup gained from switching
-to jikes may justify the effort.
-<p>
-</p>
-
-</body></html>
diff --git a/manual/Tasks/attrib.html b/manual/Tasks/attrib.html
index a26f0c5..abf0aac 100644
--- a/manual/Tasks/attrib.html
+++ b/manual/Tasks/attrib.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,34 +15,31 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-<meta http-equiv="Content-Language" content="en-us">
 <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>Apache Ant User Manual</title>
 </head>
 
 <body>
 
-<h2><a name="attrib">Attrib</a></h2>
-<p><em>Since Apache Ant 1.6.</em></p>
+<h2 id="attrib">Attrib</h2>
+<p><em>Since Apache Ant 1.6</em>.</p>
 <h3>Description</h3>
 
-<p>Changes the attributes of a file or all files inside specified
-directories.  Right now it has effect only under Windows. Each of the
-4 possible permissions has its own attribute, matching the arguments
-for the attrib command.</p>
+<p>Changes the attributes of a file or all files inside specified directories.  Right now it has
+effect only under Windows. Each of the 4 possible permissions has its own attribute, matching the
+arguments for the attrib command.</p>
 
-<p><a href="../Types/fileset.html">FileSet</a>s, 
-<a href="../Types/dirset.html">DirSet</a>s or <a
-href="../Types/filelist.html">FileList</a>s can be specified using
-nested <code>&lt;fileset&gt;</code>, <code>&lt;dirset&gt;</code> and 
-<code>&lt;filelist&gt;</code> elements.</p>
+<p><a href="../Types/fileset.html">FileSet</a>s, <a href="../Types/dirset.html">DirSet</a>s
+or <a href="../Types/filelist.html">FileList</a>s can be specified using
+nested <code>&lt;fileset&gt;</code>, <code>&lt;dirset&gt;</code> and <code>&lt;filelist&gt;</code>
+elements.</p>
 
-<p>Starting with Ant 1.7, this task supports arbitrary <a
-href="../Types/resources.html#collection">Resource Collection</a>s
-as nested elements.</p>
+<p><em>Since Ant 1.7</em>, this task supports
+arbitrary <a href="../Types/resources.html#collection">resource collections</a> as nested
+elements.</p>
 
 <!--p>By default this task will use a single invocation of the underlying
 attrib command.  If you are working on a large number of files this
@@ -51,117 +49,104 @@
 use highly depends on the length of your file names (the depth of your
 directory tree), so you'll have to experiment a little.</p-->
 
-<p>By default this task won't do anything unless it detects it is
-  running on a Windows system.  If you know for sure that you have a
-  "attrib" executable on your PATH that is command line compatible with
-  the Windows command, you can use the task's os attribute and set its
-  value to your current os.</p>
+<p>By default this task won't do anything unless it detects it is running on a Windows system.  If
+you know for sure that you have a <code>attrib</code> executable on your <code>PATH</code> that is
+command line compatible with the Windows command, you can use the task's <var>os</var> attribute and
+set its value to your current OS.</p>
+
+<p>See the <a href="setpermissions.html">setpermissions</a> task for a platform independent
+alternative.</p>
 
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">file</td>
-    <td valign="top">the file or directory of which the permissions must be
-    changed.</td>
-    <td valign="top" valign="middle">Yes or nested
-    <code>&lt;fileset/list&gt;</code> elements.</td>
+    <td>file</td>
+    <td>the file or directory of which the permissions must be changed.</td>
+    <td>Yes, or nested <code>&lt;fileset/list&gt;</code> elements</td>
   </tr>
   <tr>
-    <td valign="top">readonly</td>
-    <td valign="top">the readonly permission.</td>
-    <td valign="top" rowspan="4">at least one of the four. </td>
+    <td>readonly</td>
+    <td>the readonly permission.</td>
+    <td rowspan="4">At least one of the four</td>
   </tr>
   <tr>
-    <td valign="top">archive</td>
-    <td valign="top">the archive permission.</td>
+    <td>archive</td>
+    <td class="left">the archive permission.</td>
   </tr>
   <tr>
-    <td valign="top">system</td>
-    <td valign="top">the system permission.</td>
+    <td>system</td>
+    <td class="left">the system permission.</td>
   </tr>
   <tr>
-    <td valign="top">hidden</td>
-    <td valign="top">the hidden permission.</td>
+    <td>hidden</td>
+    <td class="left">the hidden permission.</td>
   </tr>
   <tr>
-    <td valign="top">type</td>
-    <td valign="top">One of <i>file</i>, <i>dir</i> or <i>both</i>. If set to
-      <i>file</i>, only the permissions of plain files are going to be changed.
-      If set to <i>dir</i>, only the directories are considered.<br>
-      <strong>Note:</strong> The type attribute does not apply to
-      nested <i>dirset</i>s - <i>dirset</i>s always implicitly
-      assume type to be <i>dir</i>.</td>
-    <td align="center" valign="top">No, default is <i>file</i></td>
+    <td>type</td>
+    <td>One of <q>file</q>, <q>dir</q> or <q>both</q>. If set to <q>file</q>, only the permissions
+      of plain files are going to be changed.  If set to <q>dir</q>, only the directories are
+      considered.<br/>
+      <strong>Note</strong>: The type attribute does not apply to
+      nested <code>dirset</code>s&mdash;<code>dirset</code>s always implicitly assume type to
+      be <q>dir</q>.</td>
+    <td>No; default is <q>file</q></td>
   </tr>
   <tr>
-    <td valign="top">verbose</td>
-    <td valign="top">Whether to print a summary after execution or not.
-      Defaults to <code>false</code>.</td>
-    <td align="center" valign="top">No</td>
+    <td>verbose</td>
+    <td>Whether to print a summary after execution or not.</td>
+    <td>No; defaults to <q>false</q></td>
   </tr>
   <!--tr>
-    <td valign="top">parallel</td>
-    <td valign="top">process all specified files using a single
-      <code>chmod</code> command. Defaults to true.</td>
-    <td valign="top" align="center">No</td>
+    <td>parallel</td>
+    <td>process all specified files using a single
+      <kbd>chmod</kbd> command.</td>
+    <td>No; defaults to <q>true</q></td>
   </tr>
   <tr>
-    <td valign="top">maxparallel</td>
-    <td valign="top">Limit the amount of parallelism by passing at
-      most this many sourcefiles at once.  Set it to &lt;= 0 for
-      unlimited.  Defaults to unlimited.  <em>Since Ant 1.6.</em></td>
-    <td align="center" valign="top">No</td>
+    <td>maxparallel</td>
+    <td>Limit the amount of parallelism by passing at
+      most this many sourcefiles at once.  Set it to negative integer for
+      unlimited.  <em>Since Ant 1.6</em>.</td>
+    <td>No, defaults to unlimited</td>
   </tr-->
   <tr>
-    <td valign="top">os</td>
-    <td valign="top">list of Operating Systems on which the command may be
-      executed.</td>
-    <td align="center" valign="top">No</td>
+    <td>os</td>
+    <td>list of Operating Systems on which the command may be executed.</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">osfamily</td>
-    <td valign="top">OS family as used in
-      the <a href="../Tasks/conditions.html#os">&lt;os&gt;</a>
+    <td>osfamily</td>
+    <td>OS family as used in the <a href="../Tasks/conditions.html#os">&lt;os&gt;</a>
       condition.</td>
-    <td align="center" valign="top">No - defaults to "windows"</td>
+    <td>No; defaults to <q>windows</q></td>
   </tr>
 </table>
 
 <h3>Examples</h3>
-  <blockquote>
+
+<p>Make the <code>run.bat</code> file read-only and hidden.</p>
 <pre>&lt;attrib file=&quot;${dist}/run.bat&quot; readonly=&quot;true&quot; hidden=&quot;true&quot;/&gt;</pre>
-</blockquote>
-<p>makes the &quot;run.bat&quot; file read-only and hidden.</p>
 
-<blockquote>
-  <pre>&lt;attrib readonly=&quot;false&quot;&gt;
+<p>Make all <samp>.xml</samp> files below <samp>${meta.inf}</samp> readable.</p>
+<pre>&lt;attrib readonly=&quot;false&quot;&gt;
   &lt;fileset dir=&quot;${meta.inf}&quot; includes=&quot;**/*.xml&quot;/&gt;
-&lt;/attrib&gt;
-</pre>
-</blockquote>
-<p>makes all &quot;.xml&quot; files below <code>${meta.inf}</code> readable.</p>
+&lt;/attrib&gt;</pre>
 
-<blockquote>
-  <pre>
+<p>Make all files below <samp>shared/sources1</samp> (except those below any directory
+named <samp>trial</samp>) read-only and archived. In addition all files belonging to a FileSet
+with <var>id</var> <samp>other.shared.sources</samp> get the same attributes.</p>
+<pre>
 &lt;attrib readonly=&quot;true&quot; archive=&quot;true&quot;&gt;
   &lt;fileset dir=&quot;shared/sources1&quot;&gt;
     &lt;exclude name=&quot;**/trial/**&quot;/&gt;
   &lt;/fileset&gt;
   &lt;fileset refid=&quot;other.shared.sources&quot;/&gt;
-&lt;/attrib&gt;
-</pre>
-</blockquote>
-<p>makes all files below <code>shared/sources1</code> (except those below any
-  directory named trial) read-only and archived. In addition all files belonging
-  to a FileSet with <code>id</code> <code>other.shared.sources</code> get the
-  same attributes.</p>
-
+&lt;/attrib&gt;</pre>
 
 </body>
 </html>
-
diff --git a/manual/Tasks/augment.html b/manual/Tasks/augment.html
index 305e39a..b934c75 100644
--- a/manual/Tasks/augment.html
+++ b/manual/Tasks/augment.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,10 +15,9 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-<meta http-equiv="Content-Language" content="en-us">
 <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>Augment Task</title>
 </head>
@@ -25,59 +25,51 @@
 <body>
 
 <h2>Augment</h2>
-
+<p><em>Since Apache Ant 1.8.1</em></p>
 <h3>Description</h3>
-<p>Modify an existing reference by adding nested elements or (re-)assigning properties
-mapped as XML attributes. This is an unusual task that makes use of Ant's internal
-processing mechanisms to reload a previously declared reference by means of the 'id'
-attribute, then treats the declared <code>augment</code> element as though it were the
-original element.
-<b>Since Apache Ant 1.8.1</b></p>
+<p>Modify an existing reference by adding nested elements or (re-)assigning properties mapped as XML
+attributes. This is an unusual task that makes use of Ant's internal processing mechanisms to reload
+a previously declared reference by means of the <var>id</var> attribute, then treats the
+declared <code>augment</code> element as though it were the original element.</p>
 
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">id</td>
-    <td valign="top">The id of the reference to augment. If no such reference has
-      been declared a <code>BuildException</code> is generated.</td>
-    <td valign="top" align="center">Yes</td>
+    <td>id</td>
+    <td>The <var>id</var> of the reference to augment. If no such reference has been declared
+      a <code>BuildException</code> is thrown.</td>
+    <td>Yes</td>
   </tr>
 </table>
-<p>
-Additional permissible attributes are dependent on the reference to be modified.
-</p>
+<p>Additional permissible attributes are dependent on the reference to be modified.</p>
 
 <h3>Parameters specified as nested elements</h3>
 
-<p>
-Permissible nested elements are dependent on the reference to be modified.
-</p>
+<p>Permissible nested elements are dependent on the reference to be modified.</p>
 
 <h3>Examples</h3>
 
-Given
-<pre>
-  &lt;fileset id="input-fs" dir="${basedir}" /&gt;
-</pre>
+<p>Given</p>
+
+<pre>&lt;fileset id="input-fs" dir="${basedir}"/&gt;</pre>
+
+<p>invocation</p>
+
+<pre>&lt;augment id="input-fs" excludes="foo"/&gt;</pre>
+
+<p>modifies the <var>excludes</var> attribute of <samp>input-fs</samp>, whereas</p>
 
 <pre>
-  &lt;augment id="input-fs" excludes="foo" /&gt;
-</pre>
+&lt;augment id="input-fs"&gt;
+  &lt;filename name="bar"/&gt;
+&lt;/augment&gt;</pre>
 
-<p>Modifies the <code>excludes</code> attribute of <code>input-fs</code>.</p>
-
-<pre>
-  &lt;augment id="input-fs"&gt;
-    &lt;filename name="bar" /&gt;
-  &lt;/augment&gt;
-</pre>
-
-<p>Adds a <code>filename</code> selector to <code>input-fs</code>.</p>
+<p>adds a <code>filename</code> selector to <samp>input-fs</samp>.</p>
 
 </body>
 </html>
diff --git a/manual/Tasks/available.html b/manual/Tasks/available.html
index 6e4a171..7b246e0 100644
--- a/manual/Tasks/available.html
+++ b/manual/Tasks/available.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,147 +15,140 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-<meta http-equiv="Content-Language" content="en-us">
 <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>Available Task</title>
 </head>
 
 <body>
 
-<h2><a name="available">Available</a></h2>
+<h2 id="available">Available</h2>
 <h3>Description</h3>
-<p>Sets a property if a resource is available at runtime. This resource can be a
-file, a directory, a class in the classpath, or a JVM system resource.</p>
-<p>If the resource is present, the property value is set to true by
-default; otherwise, the property is not set. You can set the value to
-something other than the default by specifying the <code>value</code> attribute.</p>
-<p>Normally, this task is used to set properties that are useful to avoid target
-execution depending on system parameters.</p>
+<p>Sets a property if a resource is available at run time. This resource can be a file, a directory,
+a class in the classpath, or a JVM system resource.</p>
+<p><strong>Note</strong>: a class is available in the classpath when it can be loaded; i.e., all
+classes it depends on must be in the classpath, too.</p>
+<p>If the resource is present, the property value is set to <q>true</q> by default; otherwise, the
+property is not set. You can set the value to something other than the default by specifying
+the <var>value</var> attribute.</p>
+<p>Normally, this task is used to set properties that are useful to avoid target execution depending
+on system parameters.</p>
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">property</td>
-    <td valign="top">The name of the property to set.</td>
-    <td valign="top" align="center">Yes</td>
+    <td>property</td>
+    <td>The name of the property to set.</td>
+    <td>Yes</td>
   </tr>
   <tr>
-    <td valign="top">value</td>
-    <td valign="top">The value to set the property to. Defaults to &quot;true&quot;.</td>
-    <td valign="top" align="center">No</td>
+    <td>value</td>
+    <td>The value to set the property to.</td>
+    <td>No; defaults to <q>true</q></td>
   </tr>
   <tr>
-    <td valign="top">classname</td>
-    <td valign="top">The class to look for in the classpath.</td>
-    <td valign="middle" align="center" rowspan="3">Yes</td>
+    <td>classname</td>
+    <td>The class to look for in the classpath.</td>
+    <td rowspan="3">Exactly one of the three</td>
   </tr>
   <tr>
-    <td valign="top">file</td>
-    <td valign="top">The file to look for.</td>
+    <td>file</td>
+    <td class="left">The file to look for.</td>
   </tr>
   <tr>
-    <td valign="top">resource</td>
-    <td valign="top">The resource to look for in the JVM.</td>
+    <td>resource</td>
+    <td class="left">The resource to look for in the JVM.</td>
   </tr>
   <tr>
-    <td valign="top">classpath</td>
-    <td valign="top">The classpath to use when looking up <code>classname</code> or <code>resource</code>.</td>
-    <td align="center" valign="top">No</td>
+    <td>classpath</td>
+    <td>The classpath to use when looking up <var>classname</var> or <var>resource</var>.</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">filepath</td>
-    <td valign="top">The path to use when looking up <code>file</code>.</td>
-    <td align="center" valign="top">No</td>
+    <td>filepath</td>
+    <td>The path to use when looking up <var>file</var>.</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">classpathref</td>
-    <td valign="top">The classpath to use, given as a <a href="../using.html#references">reference</a> to a path defined elsewhere.</td>
-    <td align="center" valign="top">No</td>
+    <td>classpathref</td>
+    <td>The classpath to use, given as a <a href="../using.html#references">reference</a> to a path
+    defined elsewhere.</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">type</td>
-    <td valign="top">The type of <code>file</code> to look for, either a directory (<code>type=&quot;dir&quot;</code>) or a file
-      (<code>type=&quot;file&quot;</code>). If not set, the property will be set if the name specified in the <code>file</code>
-      attribute exists as either a file or a directory.</td>
-    <td align="center" valign="top">No</td>
+    <td>type</td>
+    <td>The type of <var>file</var> to look for, either a directory (<var>type</var>=<q>dir</q>) or
+    a file (<var>type</var>=<q>file</q>). If not set, the property will be set if the name specified
+    in the <var>file</var> attribute exists as either a file or a directory.</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">ignoresystemclasses</td>
-    <td valign="top">Ignore Ant's runtime classes, using only the specified
-      classpath.  Only affects the "classname" attribute.  Defaults to &quot;false&quot;</td>
-    <td align="center" valign="top">No</td>
+    <td>ignoresystemclasses</td>
+    <td>Ignore Ant's runtime classes, using only the specified classpath.  Only affects
+    the <var>classname</var> attribute.</td>
+    <td>No; defaults to <q>false</q></td>
   </tr>
   <tr>
-    <td valign="top">searchparents</td>
-    <td valign="top">This contains the behaviour of the "file" type.
-      If true, the available task will, when
-      searching for a file, search not only the directories specified but
-      will also search the parent directories of those
-      specified.
-      If false, only the directories specified will be searched.
-      Defaults to "false".
-      <em>Since Ant 1.7</em>
-    </td>
-    <td align="center" valign="top">No</td>
+    <td>searchparents</td>
+    <td>This contains the behaviour of the <q>file</q> <var>type</var>.  If <q>true</q>, the task
+    will, when searching for a file, search not only the directories specified but will also search
+    the parent directories of those specified.  If <q>false</q>, only the directories specified will
+    be searched.  <em>Since Ant 1.7</em></td>
+    <td>No; defaults to <q>false</q></td>
   </tr>
 </table>
 <h3>Parameters specified as nested elements</h3>
 <h4>classpath</h4>
-<p><code>Available</code>'s <code>classpath</code> attribute is a <a
-href="../using.html#path">path-like structure</a> and can also be set via a nested
+<p><code>Available</code>'s <var>classpath</var> attribute is
+a <a href="../using.html#path">path-like structure</a> and can also be set via a nested
 <code>&lt;classpath&gt;</code> element.</p>
 <h4>filepath</h4>
-<p><code>Available</code>'s <code>filepath</code> attribute is a <a
-href="../using.html#path">path-like structure</a> and can also be set via a nested
-<code>&lt;filepath&gt;</code> element.</p>
+<p><code>Available</code>'s <var>filepath</var> attribute is
+a <a href="../using.html#path">path-like structure</a> and can also be set via a
+nested <code>&lt;filepath&gt;</code> element.</p>
+
 <h3>Examples</h3>
-<blockquote><pre>
-&lt;available classname=&quot;org.whatever.Myclass&quot; property=&quot;Myclass.present&quot;/&gt;
-</pre></blockquote>
-<p>sets the <code>Myclass.present</code> property to the value &quot;true&quot;
-if the class <code>org.whatever.Myclass</code> is found in Ant's classpath.</p>
-<blockquote><pre>
+<p>Set the <code>Myclass.present</code> property to the value <q>true</q> if the
+class <code>org.whatever.Myclass</code> is found in Ant's classpath.</p>
+<pre>&lt;available classname=&quot;org.whatever.Myclass&quot; property=&quot;Myclass.present&quot;/&gt;</pre>
+
+<p>Set the <code>jaxp.jar.present</code> property to the value <q>true</q> if the
+file <samp>./lib/jaxp11/jaxp.jar</samp> is found.</p>
+<pre>
 &lt;property name=&quot;jaxp.jar&quot; value=&quot;./lib/jaxp11/jaxp.jar&quot;/&gt;
-&lt;available file=&quot;${jaxp.jar}&quot; property=&quot;jaxp.jar.present&quot;/&gt;
-</pre></blockquote>
-<p>sets the <code>jaxp.jar.present</code> property to the value &quot;true&quot;
-if the file <code>./lib/jaxp11/jaxp.jar</code> is found.</p>
-<blockquote><pre>
+&lt;available file=&quot;${jaxp.jar}&quot; property=&quot;jaxp.jar.present&quot;/&gt;</pre>
+
+<p>Set the <code>local.lib.present</code> property to the value <q>true</q> if the
+directory <samp>/usr/local/lib</samp> is found.</p>
+<pre>
 &lt;available file=&quot;/usr/local/lib&quot; type=&quot;dir&quot;
-           property=&quot;local.lib.present&quot;/&gt;
-</pre></blockquote>
-<p>sets the <code>local.lib.present</code> property to the value &quot;true&quot;
-if the directory <code>/usr/local/lib</code> is found.</p>
-<blockquote><pre>
+           property=&quot;local.lib.present&quot;/&gt;</pre>
+
+<p>Set the <code>jaxp11.present</code> property to the value <q>true</q> if the
+class <code>javax.xml.transform.Transformer</code> is found in the classpath referenced
+by <samp>jaxp</samp> (in this case, <samp>./lib/jaxp11/jaxp.jar</samp>).</p>
+<pre>
 ...in project ...
 &lt;property name=&quot;jaxp.jar&quot; value=&quot;./lib/jaxp11/jaxp.jar&quot;/&gt;
 &lt;path id=&quot;jaxp&quot; location=&quot;${jaxp.jar}&quot;/&gt;
 ...in target ...
 &lt;available classname=&quot;javax.xml.transform.Transformer&quot;
-           classpathref=&quot;jaxp&quot; property=&quot;jaxp11.present&quot;/&gt;
-</pre></blockquote>
-<p>sets the <code>jaxp11.present</code> property to the value &quot;true&quot;
-if the class <code>javax.xml.transform.Transformer</code> is found in the classpath referenced by <code>jaxp</code> (in this case, <code>./lib/jaxp11/jaxp.jar</code>).
-</p>
-<blockquote><pre>
+           classpathref=&quot;jaxp&quot; property=&quot;jaxp11.present&quot;/&gt;</pre>
+
+<p>Set the <code>have.extras</code> property to the value <q>true</q> if the resource
+file <samp>extratasks.properties</samp> is found.</p>
+<pre>
 &lt;available property=&quot;have.extras&quot; resource=&quot;extratasks.properties&quot;&gt;
   &lt;classpath&gt;
-    &lt;pathelement location=&quot;/usr/local/ant/extra.jar&quot; /&gt;
-&nbsp;&nbsp;&lt;/classpath&gt;
-&lt;/available&gt;
-</pre></blockquote>
-<p>sets the <code>have.extras</code> property to the value &quot;true&quot;
-if the resource-file <code>extratasks.properties</code> is found.
-</p>
-
+    &lt;pathelement location=&quot;/usr/local/ant/extra.jar&quot;/&gt;
+  &lt;/classpath&gt;
+&lt;/available&gt;</pre>
 
 </body>
 </html>
-
diff --git a/manual/Tasks/basename.html b/manual/Tasks/basename.html
index 0822d8f..ac5a2d3 100644
--- a/manual/Tasks/basename.html
+++ b/manual/Tasks/basename.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,79 +15,66 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-<meta http-equiv="Content-Language" content="en-us">
 <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>Basename Task</title>
 </head>
 
 <body>
 
-<h2><a name="echo">Basename</a></h2>
+<h2 id="echo">Basename</h2>
+
 <h3>Description</h3>
-<p>
-Task to determine the basename of a specified file, optionally minus a
-specified suffix.
-</p>
-<p>
-When this task executes, it will set the specified property to the
-value of the last path element of the specified file. If <code>file</code> is a
-directory, the basename will be the last directory element. If
-<code>file</code> is a full-path, relative-path, or simple filename,
-the basename will be the simple file name, without any directory elements.
-</p>
-<p> 
+<p>Task to determine the basename of a specified file, optionally minus a specified suffix.</p>
+<p>When this task executes, it will set the specified property to the value of the last path element
+of the specified file. If <var>file</var> is a directory, the basename will be the last directory
+element. If <var>file</var> is a full-path, relative-path, or simple filename, the basename will be
+the simple file name, without any directory elements.</p>
+
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">file</td>
-    <td valign="top">The path to take the basename of.</td>
-    <td valign="top" align="center">Yes</td>
+    <td>file</td>
+    <td>The path to take the basename of.</td>
+    <td>Yes</td>
   </tr>
   <tr>
-    <td valign="top">property</td>
-    <td valign="top">The name of the property to set.</td>
-    <td valign="top" align="center">Yes</td>
+    <td>property</td>
+    <td>The name of the property to set.</td>
+    <td>Yes</td>
   </tr>
   <tr>
-    <td valign="top">suffix</td>
-    <td valign="top">The suffix to remove from the resulting basename
-      (specified either with or without the &quot;<code>.</code>&quot;).</td>
-    <td valign="top" align="center">No</td>
+    <td>suffix</td>
+    <td>The suffix to remove from the resulting basename (specified either with or without
+    the <q>.</q>).</td>
+    <td>No</td>
   </tr>
 </table>
 
 <h3>Examples</h3>
-<blockquote><pre>
-&lt;basename property=&quot;jar.filename&quot; file=&quot;${lib.jarfile}&quot;/&gt;
-</pre></blockquote>
-will set <code>jar.filename</code> to
-<code>myjar.jar</code>, if <code>lib.jarfile</code> is defined as either a
-full-path filename (eg., <code>/usr/local/lib/myjar.jar</code>),
-a relative-path filename (eg., <code>lib/myjar.jar</code>),
-or a simple filename (eg., <code>myjar.jar</code>).
-<blockquote><pre>
+<p>Set <code>jar.filename</code> to <samp>myjar.jar</samp>, if <code>lib.jarfile</code> is defined
+as either a full-path filename (eg., <samp>/usr/local/lib/myjar.jar</samp>), a relative-path
+filename (eg., <samp>lib/myjar.jar</samp>), or a simple filename (eg., <samp>myjar.jar</samp>).</p>
+<pre>&lt;basename property=&quot;jar.filename&quot; file=&quot;${lib.jarfile}&quot;/&gt;</pre>
+
+<p>Set <code>cmdname</code> to <samp>foo</samp>.</p>
+<pre>
 &lt;basename property=&quot;cmdname&quot; file=&quot;D:/usr/local/foo.exe&quot;
-          suffix=&quot;.exe&quot;/&gt;
-</pre></blockquote>
-will set <code>cmdname</code> to <code>foo</code>.
-<blockquote><pre>
+          suffix=&quot;.exe&quot;/&gt;</pre>
+
+<p>Set <code>temp.dirname</code> to the last directory element of the path defined for
+the <code>TEMP</code> environment variable.</p>
+<pre>
 &lt;property environment=&quot;env&quot;/&gt;
 &lt;basename property=&quot;temp.dirname&quot; file=&quot;${env.TEMP}&quot;/&gt;
-</pre></blockquote>
-
-will set <code>temp.dirname</code> to the last directory element of
-the path defined for the <code>TEMP</code> environment variable.</p>
-
-
+</pre>
 
 </body>
 </html>
-
diff --git a/manual/Tasks/bindtargets.html b/manual/Tasks/bindtargets.html
index d8374a4..f138f75 100644
--- a/manual/Tasks/bindtargets.html
+++ b/manual/Tasks/bindtargets.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,79 +15,68 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-<meta http-equiv="Content-Language" content="en-us">
 <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>Bindtargets Task</title>
 </head>
 
 <body>
 
-<h2><a name="ant">Bindtargets</a></h2>
+<h2 id="ant">Bindtargets</h2>
+<p><em>Since Apache Ant 1.8.2</em></p>
 <h3>Description</h3>
 
-<p>Make some target the extension of some defined
-<a href="../targets.html#extension-points">extension point</a>. It will make the
-list of targets dependencies of the extension point.</p>
+<p>Make some target the extension of some
+defined <a href="../targets.html#extension-points">extension point</a>. It will make the list of
+targets dependencies of the extension point.</p>
 
-<p>This target is useful when you want to have a target participate to another
-build workflow, build workflow which explicitly expose an extension point for
-that kind of insertion. But the target to bind and the extension point to
-bind to are both declared in some imported build files. Modifying directly the
-target dependency graph of these external build files may have a side effect
-on some other project which import them. This task helps then to modify the
-target dependencies but only in your context.
-</p>
+<p>This target is useful when you want to have a target to participate in another build workflow
+which explicitly exposes an extension point for that kind of insertion. Thus the target to bind and
+the extension point to bind to are both declared in some imported build files. But directly
+modifying the target dependency graph of these external build files may have a side effect on some
+other project which imports them. This task helps to modify the target dependencies but only in your
+context.</p>
 
-<p>Note: this task is quite equivalent to the definition of an intermediate
-target which will be the bridge between the target to bind and the extension
-point. For instance:
-</p>
-<blockquote><pre>&lt;bindtargets targets="jar,javadoc" extensionPoint="dist" /&gt;</pre></blockquote>
-is quite equivalent to:
-<blockquote><pre>&lt;target name="bind-to-dist" depends="jar,javadoc" extensionOf="dist" /&gt;</pre></blockquote>
-<p>
-This task basically avoid the creation of a target.
-</p>
+<p><strong>Note</strong>: this task is quite equivalent to the definition of an intermediate target
+which will be the bridge between the target to bind and the extension point. For instance:</p>
+<pre>&lt;bindtargets targets="jar,javadoc" extensionPoint="dist"/&gt;</pre>
+<p>is quite equivalent to:</p>
+<pre>&lt;target name="bind-to-dist" depends="jar,javadoc" extensionOf="dist"/&gt;</pre>
+<p>This task basically avoids the creation of a target.</p>
 
-<p>The bindtargets task may only be used as a top-level task. This means that
-it may not be used in a target. This is making the target dependency graph static
-and predictable as soon as every build file is loaded.</p>
-
-<p><b>Since Apache Ant 1.8.2</b></p>
+<p>The <code>bindtargets</code> task may only be used as a top-level task. This means that it may
+not be used in a target. This is making the target dependency graph static and predictable as soon
+as every build file is loaded.</p>
 
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">targets</td>
-    <td valign="top">a comma separated list of target names to bind.</td>
-    <td valign="top" align="center">Yes</td>
+    <td>targets</td>
+    <td>a comma separated list of target names to bind.</td>
+    <td>Yes</td>
   </tr>
   <tr>
-    <td valign="top">extensionPoint</td>
-    <td valign="top">the name of the extension point to bind the targets to.</td>
-    <td valign="top" align="center">Yes</td>
+    <td>extensionPoint</td>
+    <td>the name of the extension point to bind the targets to.</td>
+    <td>Yes</td>
   </tr>
   <tr>
-    <td valign="top">onMissingExtensionPoint</td>
-    <td valign="top">What to do if this target tries to extend a missing
-        <a href="../targets.html#extension-points">extension-point</a>. ("fail",
-        "warn", "ignore").</td>
-    <td valign="top" align="center">No. Defaults to <code>fail</code></td>
+    <td>onMissingExtensionPoint</td>
+    <td>What to do if this target tries to extend a
+    missing <a href="../targets.html#extension-points">extension-point</a>: <q>fail</q>, <q>warn</q>, <q>ignore</q>.</td>
+    <td>No; defaults to <q>fail</q></td>
   </tr>
 </table>
 
 <h3>Examples</h3>
-<blockquote><pre>
-&lt;bindtargets targets=&quot;build-jar,build-src-jar&quot; extensionPoint=&quot;dist&quot; /&gt;
-</pre></blockquote>
+<pre>&lt;bindtargets targets=&quot;build-jar,build-src-jar&quot; extensionPoint=&quot;dist&quot;/&gt;</pre>
 
 </body>
 </html>
diff --git a/manual/Tasks/buildnumber.html b/manual/Tasks/buildnumber.html
index aaaa14c..c13b48d 100644
--- a/manual/Tasks/buildnumber.html
+++ b/manual/Tasks/buildnumber.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,61 +15,44 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-<meta http-equiv="Content-Language" content="en-us">
 <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>BuildNumber Task</title>
 </head>
 
 <body>
 
-<h2><a name="buildnumber">BuildNumber</a></h2>
+<h2 id="buildnumber">BuildNumber</h2>
 <h3>Description</h3>
 <p>This is a basic task that can be used to track build numbers.</p>
-<p>It will first attempt to read a build number from a file (by default,
-<code>build.number</code> in the current directory), then
-set the property <code>build.number</code> to the value that was read in
-(or to <code>0</code>, if no such value). It will then increment the
-number by one and write it back out to the file.
-(See the
-<a href="../Tasks/propertyfile.html">PropertyFile</a> task
-if you need finer control over things such as the property name or
-the number format.)
-</p>
+<p>It will first attempt to read a build number from a file (by default, <samp>build.number</samp>
+in the current directory), then set the property <code>build.number</code> to the value that was
+read in (or to <q>0</q>, if no such value). It will then increment the number by one and write it
+back out to the file.  (See the <a href="../Tasks/propertyfile.html">PropertyFile</a> task if you
+need finer control over things such as the property name or the number format.)</p>
 
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">file</td>
-    <td valign="top">The file to read and write the build number from/to.</td>
-    <td align="center" valign="top">No; defaults to &quot;build.number&quot;</td>
+    <td>file</td>
+    <td>The file to read and write the build number from/to.</td>
+    <td>No; defaults to <q>build.number</q></td>
   </tr>
 </table>
 
 <h3>Examples</h3>
-<blockquote><pre>
-&lt;buildnumber/&gt;
-</pre></blockquote>
+<p>Read, increment, and write a build number to the default file, <samp>build.number</samp>.</p>
+<pre>&lt;buildnumber/&gt;</pre>
 
-<p>Read, increment, and write a build number to the default file,
-<code>build.number</code>.</p>
-
-<blockquote><pre>
-&lt;buildnumber file=&quot;mybuild.number&quot;/&gt;
-</pre></blockquote>
-
-<p>Read, increment, and write a build number to the file
-<code>mybuild.number</code>.</p>
-
-
+<p>Read, increment, and write a build number to the file <samp>mybuild.number</samp>.</p>
+<pre>&lt;buildnumber file=&quot;mybuild.number&quot;/&gt;</pre>
 
 </body>
 </html>
-
diff --git a/manual/Tasks/cab.html b/manual/Tasks/cab.html
index 42312f5..a773b04 100644
--- a/manual/Tasks/cab.html
+++ b/manual/Tasks/cab.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,158 +15,135 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-<meta http-equiv="Content-Language" content="en-us">
 <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>Cab Task</title>
 </head>
 
 <body>
 
-<h2><a name="cab">Cab</a></h2>
+<h2 id="cab">Cab</h2>
 <h3>Description</h3>
-<p>The cab task creates Microsoft cab archive files.  It is invoked
-similar to the <a href="../Tasks/jar.html">jar</a> or <a href="../Tasks/zip.html">zip</a> tasks.
-This task will work on Windows using the external cabarc tool (provided by Microsoft)
-which must be located in your executable path.</p>
-<p>To use this task on other platforms you need to download and compile libcabinet from
-<a href="http://trill.cis.fordham.edu/~barbacha/cabinet_library/">
-http://trill.cis.fordham.edu/~barbacha/cabinet_library/</a>.</p>
-<p>See the section on <a href="../dirtasks.html#directorybasedtasks">directory based
-tasks</a>, on how the inclusion/exclusion of files works, and how to
-write patterns.</p>
-<p>This task forms an implicit <a href="../Types/fileset.html">FileSet</a> and
-supports most attributes of <code>&lt;fileset&gt;</code>
-(<code>dir</code> becomes <code>basedir</code>) as well as the nested
-<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
-<code>&lt;patternset&gt;</code> elements.</p>
+<p>The cab task creates Microsoft cabinet archive files.  It is invoked similar to
+the <a href="../Tasks/jar.html">jar</a> or <a href="../Tasks/zip.html">zip</a> tasks.  This task
+will work on Windows using the external <kbd>cabarc</kbd> tool (provided by Microsoft) which must
+be located in your executable path.</p>
+<p>To use this task on other platforms you need to download and compile <code>libcabinet</code>
+from <a href="https://www.freshports.org/archivers/libcabinet/"
+target="_top">https://www.freshports.org/archivers/libcabinet/</a>.</p>
+<p>See the section on <a href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on
+how the inclusion/exclusion of files works, and how to write patterns.</p>
+<p>This task forms an implicit <a href="../Types/fileset.html">FileSet</a> and supports most
+attributes of <code>&lt;fileset&gt;</code> (<var>dir</var> becomes <var>basedir</var>) as well as
+the nested <code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code>
+and <code>&lt;patternset&gt;</code> elements.</p>
 
 <p>On non-Unix platforms this task writes the list of files to archive
   to the <a href="../running.html#tmpdir">temporary directory</a>.</p>
 
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">cabfile</td>
-    <td valign="top">the name of the cab file to create.</td>
-    <td valign="top" align="center">Yes</td>
+    <td>cabfile</td>
+    <td>the name of the cab file to create.</td>
+    <td>Yes</td>
   </tr>
   <tr>
-    <td valign="top">basedir</td>
-    <td valign="top">the directory to start archiving files from.</td>
-    <td valign="top" align="center">No</td>
+    <td>basedir</td>
+    <td>the directory to start archiving files from.</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">verbose</td>
-    <td valign="top">set to &quot;yes&quot; if you want to see the output from
-      the cabarc tool.  defaults to &quot;no&quot;.</td>
-    <td valign="top" align="center">No</td>
+    <td>verbose</td>
+    <td>set to <q>yes</q> if you want to see the output from the <code>cabarc</code> tool.</td>
+    <td>No; defaults to <q>no</q></td>
   </tr>
   <tr>
-    <td valign="top">compress</td>
-    <td valign="top">set to &quot;no&quot; to store files without compressing.
-      defaults to &quot;yes&quot;.</td>
-    <td valign="top" align="center">No</td>
+    <td>compress</td>
+    <td>set to <q>no</q> to store files without compressing.</td>
+    <td>No; defaults to <q>yes</q></td>
   </tr>
   <tr>
-    <td valign="top">options</td>
-    <td valign="top">use to set additional command-line options for
-      the cabarc tool.  should not normally be necessary.</td>
-    <td valign="top" align="center">No</td>
+    <td>options</td>
+    <td>set additional command-line options for the <code>cabarc</code> tool.  Should not
+      normally be necessary.</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma- or space-separated list of patterns of files that
-      must be included. All files are included when omitted.</td>
-    <td valign="top" align="center">No</td>
+    <td>includes</td>
+    <td>comma- or space-separated list of patterns of files that must be included.</td>
+    <td>No; defaults to all (<q>**</q>)</td>
   </tr>
   <tr>
-    <td valign="top">includesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an include pattern</td>
-    <td valign="top" align="center">No</td>
+    <td>includesfile</td>
+    <td>name of a file. Each line of this file is taken to be an include pattern</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">excludes</td>
-    <td valign="top">comma- or space-separated list of patterns of files that
-      must be excluded. No files (except default excludes) are excluded
-      when omitted.</td>
-    <td valign="top" align="center">No</td>
+    <td>excludes</td>
+    <td>comma- or space-separated list of patterns of files that must be excluded.</td>
+    <td>No; defaults to default excludes or none if <var>defaultexcludes</var> is <q>no</q></td>
   </tr>
   <tr>
-    <td valign="top">excludesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an exclude pattern</td>
-    <td valign="top" align="center">No</td>
+    <td>excludesfile</td>
+    <td>name of a file. Each line of this file is taken to be an exclude pattern</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">defaultexcludes</td>
-    <td valign="top">indicates whether default excludes should be used
-      or not (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
-    <td valign="top" align="center">No</td>
+    <td>defaultexcludes</td>
+    <td>indicates whether default excludes should be used or not (<q>yes|no</q>).</td>
+    <td>No; defaults to <q>yes</q></td>
   </tr>
 </table>
 <h3>Parameters specified as nested elements</h3>
 <h4>fileset</h4>
 
-<p>The cab task supports one nested <a
-href="../Types/fileset.html"><code>&lt;fileset&gt;</code></a>
-element to specify the files to be included in the archive.
-  If this is specified, the "basedir" attribute cannot be used.
-</p>
+<p>The cab task supports one nested <a href="../Types/fileset.html"><code>&lt;fileset&gt;</code></a>
+element to specify the files to be included in the archive.  If this is specified,
+the <var>basedir</var> attribute cannot be used.</p>
 
 <h3>Examples</h3>
-<blockquote><pre>
+<p>Cab all files in the <samp>htdocs/manual</samp> directory into a file
+called <samp>manual.cab</samp> in the <samp>${dist}</samp> directory.</p>
+<pre>
+&lt;cab cabfile=&quot;${dist}/manual.cab&quot;
+     basedir=&quot;htdocs/manual&quot;/&gt;</pre>
+
+<p>Cab all files in the <samp>htdocs/manual</samp> directory into a file
+called <samp>manual.cab</samp> in the <samp>${dist}</samp> directory. Files in the
+directory <samp>mydocs</samp>, or files with the name <samp>todo.html</samp> are excluded.</p>
+<pre>
 &lt;cab cabfile=&quot;${dist}/manual.cab&quot;
      basedir=&quot;htdocs/manual&quot;
-  /&gt;
-</pre></blockquote>
-<p>cabs all files in the htdocs/manual directory into a file called
-manual.cab in the ${dist} directory.</p>
-<blockquote><pre>
-&lt;cab cabfile=&quot;${dist}/manual.cab&quot;
-     basedir=&quot;htdocs/manual&quot;
-     excludes=&quot;mydocs/**, **/todo.html&quot;
-  /&gt;
-</pre></blockquote>
-<p>cabs all files in the htdocs/manual directory into a file called
-manual.cab in the ${dist} directory. Files in the directory mydocs,
-or files with the name todo.html are excluded.</p>
-<blockquote><pre>
+     excludes=&quot;mydocs/**, **/todo.html&quot;/&gt;</pre>
+
+<p>Cab all files in the <samp>htdocs/manual</samp> directory into a file
+called <samp>manual.cab</samp> in the <samp>${dist}</samp> directory. Only <samp>.html</samp> files
+under the directory <samp>api</samp> are archived, and files with the name <samp>todo.html</samp>
+are excluded. Output from the <kbd>cabarc</kbd> tool is displayed in the build output.</p>
+<pre>
 &lt;cab cabfile=&quot;${dist}/manual.cab&quot;
      basedir=&quot;htdocs/manual&quot;
      includes=&quot;api/**/*.html&quot;
      excludes=&quot;**/todo.html&quot;
-     verbose=&quot;yes&quot;
-  /&gt;
-</pre></blockquote>
-<p>Cab all files in the htdocs/manual directory into a file called
-manual.cab in the ${dist} directory. Only html files under the
-directory api are archived, and files with the name todo.html are
-excluded. Output from the cabarc tool is displayed in the build
-output.</p>
+     verbose=&quot;yes&quot;/&gt;</pre>
 
-<blockquote><pre>
+<p>The following is equivalent to the example above.</p>
+<pre>
 &lt;cab cabfile=&quot;${dist}/manual.cab&quot;
      verbose=&quot;yes&quot;&gt;
   &lt;fileset
        dir=&quot;htdocs/manual&quot;
        includes=&quot;api/**/*.html&quot;
-       excludes=&quot;**/todo.html&quot;
-  /&gt;
-&lt;/cab&gt;
-</pre></blockquote>
-<p>is equivalent to the example above.</p>
-
-
+       excludes=&quot;**/todo.html&quot;/&gt;
+&lt;/cab&gt;</pre>
 
 </body>
 </html>
-
diff --git a/manual/Tasks/ccm.html b/manual/Tasks/ccm.html
index 9f4725f..c1fcaf8 100644
--- a/manual/Tasks/ccm.html
+++ b/manual/Tasks/ccm.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,10 +15,9 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-<meta http-equiv="Content-Language" content="en-us">
 <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>Continuus Tasks</title>
 </head>
@@ -33,18 +33,22 @@
   <li><a href="#ccmcreatetask">CCMCreateTask</a></li>
 </ul>
 
-<p>These Apache Ant tasks are wrappers around Continuus Source Manager. They have been tested
-  against versions 5.1/6.2 on Windows 2000, but should work on other platforms with ccm installed.</p>
-<hr>
-<h2><a name="ccmcheckin">CCMCheckin</a></h2>
+<p>These Apache Ant tasks are wrappers
+around <a href="https://en.wikipedia.org/wiki/Rational_Synergy" target="_top">Continuus Source
+Manager</a>. They have been tested against versions 5.1/6.2 on Windows 2000, but should work on
+other platforms with <kbd>ccm</kbd> installed.</p>
+
+<hr/>
+
+<h2 id="ccmcheckin">CCMCheckin</h2>
 <h3>Description</h3>
-Task to checkin a file
+<p>Check in a file to Continuus</p>
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0" width="598">
+<table class="attr">
   <tr>
-    <th>Attribute</th>
-    <th>Values</th>
-    <th>Required</th>
+    <th scope="col">Attribute</th>
+    <th scope="col">Values</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
     <td>file</td>
@@ -53,100 +57,97 @@
   </tr>
   <tr>
     <td>comment</td>
-    <td>Specify a comment. Default is &quot;Checkin&quot; plus the date</td>
-    <td>No</td>
+    <td>Specify a comment.</td>
+    <td>No; default is <q>Checkin</q> plus the date</td>
   </tr>
   <tr>
     <td>task</td>
-    <td>Specify the task number used to check in the file (may use 'default')</td>
+    <td>Specify the task number used to check in the file (may use <q>default</q>)</td>
     <td>No</td>
   </tr>
   <tr>
     <td>ccmdir</td>
-    <td>path to the ccm executable file, required if it is not on the PATH</td>
+    <td>path to the <kbd>ccm</kbd> executable file, required if it is not on
+    the <code>PATH</code></td>
     <td>No</td>
   </tr>
 </table>
 <h3>Examples</h3>
-<blockquote>
-  <pre>&lt;ccmcheckin file=&quot;c:/wa/com/foo/MyFile.java&quot;
-        comment=&quot;mycomment&quot;/&gt;
-</pre>
-</blockquote>
-<p>Checks in the file <i>c:/wa/com/foo/MyFile.java</i>.
-  Comment attribute <i>mycomment</i> is added as a task comment. The task
-  used is the one set as the default.</p>
-<hr>
-<h2><a name="ccmcheckout">CCMCheckout</a></h2>
+
+<p>Check in the file <samp>c:/wa/com/foo/MyFile.java</samp>.  Text <samp>mycomment</samp> is added
+as a comment. The task used is the one set as the default.</p>
+<pre>
+&lt;ccmcheckin file=&quot;c:/wa/com/foo/MyFile.java&quot;
+            comment=&quot;mycomment&quot;/&gt;</pre>
+
+<hr/>
+
+<h2 id="ccmcheckout">CCMCheckout</h2>
 <h3>Description</h3>
-Task to perform a Checkout command to Continuus
+<p>Run a Continuus checkout command</p>
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0" width="614">
+<table class="attr">
   <tr>
-    <th>Attribute</th>
-    <th>Values</th>
-    <th>Required</th>
+    <th scope="col">Attribute</th>
+    <th scope="col">Values</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
     <td>file</td>
     <td>Path to the file that the command will operate on</td>
-    <td rowspan=2">Yes (file|fileset)</td>
+    <td rowspan="2">Exactly one of the two</td>
   </tr>
   <tr>
     <td>fileset</td>
-    <td>fileset containing the file to be checked out</td>
+    <td class="left">fileset containing the file to be checked out</td>
   </tr>
   <tr>
     <td>comment</td>
-    <td>Specify a comment.</td>
+    <td>Specify a comment</td>
     <td>No</td>
   </tr>
   <tr>
     <td>task</td>
-    <td>Specify the task number used to checkin the file (may use
-      'default')</td>
+    <td>Specify the task number used to checkin the file (may use <q>default</q>)</td>
     <td>No</td>
   </tr>
   <tr>
     <td>ccmdir</td>
-    <td>path to the ccm executable file, required if it is not on the PATH</td>
+    <td>path to the <kbd>ccm</kbd> executable file, required if it is not on
+    the <code>PATH</code></td>
     <td>No</td>
   </tr>
 </table>
 <h3>Examples</h3>
-<blockquote>
-  <pre>&lt;ccmcheckout file=&quot;c:/wa/com/foo/MyFile.java&quot;
-        comment=&quot;mycomment&quot;/&gt;
-</pre>
-</blockquote>
-<p>Check out the file <i>c:/wa/com/foo/MyFile.java</i>.
-  Comment attribute <i>mycomment</i> is added as a task comment
-   The used task is the one set as the default.</p>
-<blockquote>
-  <pre>&lt;ccmcheckout  comment=&quot;mycomment&quot;&gt;
+
+<p>Check out the file <samp>c:/wa/com/foo/MyFile.java</samp>.  Comment
+attribute <samp>mycomment</samp> is added as a task comment. The task used is the one set as the
+default.</p>
+<pre>
+&lt;ccmcheckout file=&quot;c:/wa/com/foo/MyFile.java&quot;
+             comment=&quot;mycomment&quot;/&gt;</pre>
+
+<p>Check out all the files in the <samp>lib</samp> directory having the <samp>.jar</samp>
+extension. Comment attribute <samp>mycomment</samp> is added as a task comment The used task is the
+one set as the default.</p>
+<pre>
+&lt;ccmcheckout comment=&quot;mycomment&quot;&gt;
   &lt;fileset dir=&quot;lib&quot; &gt;
     &lt;include name=&quot;**/*.jar&quot;/&gt;
   &lt;/fileset&gt;
-&lt;/ccmcheckout &gt;
-  </pre>
-</blockquote>
+&lt;/ccmcheckout &gt;</pre>
 
-<p>Check out all the files in the <i>lib</i> directory having the <i>.jar</i> extension.
-  Comment attribute <i>mycomment</i> is added as a task comment
-   The used task is the one set as the default.</p>
+<hr/>
 
-
-
-<hr>
-<h2><a name="ccmcheckintask">CCMCheckinTask</a></h2>
+<h2 id="ccmcheckintask">CCMCheckinTask</h2>
 <h3>Description</h3>
-Task to perform a check in default task command to Continuus
+<p>Run a Continuus command to checkin default task</p>
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <th>Attribute</th>
-    <th>Values</th>
-    <th>Required</th>
+    <th scope="col">Attribute</th>
+    <th scope="col">Values</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
     <td>comment</td>
@@ -155,41 +156,42 @@
   </tr>
   <tr>
     <td>task</td>
-    <td>Specify the task number used to check in the file (may use 'default')</td>
+    <td>Specify the task number used to check in the file (may use <q>default</q>)</td>
     <td>No</td>
   </tr>
   <tr>
     <td>ccmdir</td>
-    <td >path to the ccm executable file, required if it is not on the PATH</td>
+    <td>path to the <kbd>ccm</kbd> executable file, required if it is not on
+    the <code>PATH</code></td>
     <td>No</td>
   </tr>
 </table>
-<h3>Examples </h3>
-<blockquote>
-  <pre>&lt;ccmcheckintask comment=&quot;blahblah/&gt;
-</pre>
-</blockquote>
-<p>Does a Checkin default task on all the checked out files in the current task.</p>
-<hr>
-<h2><a name="ccmreconfigure">CCMReconfigure</a></h2>
+<h3>Examples</h3>
+
+<p>Perform a Checkin default task on all the checked out files in the current task.</p>
+<pre>&lt;ccmcheckintask comment=&quot;blahblah/&gt;</pre>
+
+<hr/>
+
+<h2 id="ccmreconfigure">CCMReconfigure</h2>
 <h3>Description</h3>
-Task to perform an reconfigure command to Continuus.
+<p>Run a Continuus reconfigure/update command</p>
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <th>Attribute</th>
-    <th>Values</th>
-    <th>Required</th>
+    <th scope="col">Attribute</th>
+    <th scope="col">Values</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
     <td>recurse</td>
-    <td>recurse on subproject (default false)</td>
-    <td>No</td>
+    <td>recurse on subproject</td>
+    <td>No; default is <q>false</q></td>
   </tr>
   <tr>
     <td>verbose</td>
-    <td>do a verbose reconfigure operation (default false)</td>
-    <td>No</td>
+    <td>do a verbose reconfigure operation</td>
+    <td>No; default is <q>false</q></td>
   </tr>
   <tr>
     <td>ccmproject</td>
@@ -198,32 +200,33 @@
   </tr>
   <tr>
     <td>ccmdir</td>
-    <td >path to the ccm executable file, required if it is not on the PATH</td>
+    <td>path to the <kbd>ccm</kbd> executable file, required if it is not on
+    the <code>PATH</code></td>
     <td>No</td>
   </tr>
 </table>
 <h3>Examples</h3>
-<blockquote>
- <pre>&lt;ccmreconfigure ccmproject=&quot;ANTCCM_TEST#BMO_1&quot;
-         verbose=&quot;true&quot;/&gt;
-</pre>
-</blockquote>
-<p>Does a Continuus <i>reconfigure</i> on the project <i>ANTCCM_TEST#BMO_1</i>.
-</p>
-<hr>
-<h2><a name="ccmcreatetask">CCMCreateTask</a></h2>
+
+<p>Perform a Continuus <code>reconfigure</code> on the project <samp>ANTCCM_TEST#BMO_1</samp>.</p>
+<pre>
+&lt;ccmreconfigure ccmproject=&quot;ANTCCM_TEST#BMO_1&quot;
+                verbose=&quot;true&quot;/&gt;</pre>
+
+<hr/>
+
+<h2 id="ccmcreatetask">CCMCreateTask</h2>
 <h3>Description</h3>
-Create a Continuus task.
+<p>Create a Continuus task.</p>
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <th>Attribute</th>
-    <th>Values</th>
-    <th>Required</th>
+    <th scope="col">Attribute</th>
+    <th scope="col">Values</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
     <td>comment</td>
-    <td>Specify a comment.</td>
+    <td>Specify a comment</td>
     <td>No</td>
   </tr>
   <tr>
@@ -233,7 +236,8 @@
   </tr>
   <tr>
     <td>ccmdir</td>
-    <td >path to the ccm executable file, required if it is not on the PATH</td>
+    <td>path to the <kbd>ccm</kbd> executable file, required if it is not on
+    the <code>PATH</code></td>
     <td>No</td>
   </tr>
   <tr>
@@ -253,20 +257,17 @@
   </tr>
   <tr>
     <td>task</td>
-    <td>Specify the task number used to checkin the file (may use 'default')</td>
+    <td>Specify the task number used to checkin the file (may use <q>default</q>)</td>
     <td>No</td>
   </tr>
 </table>
 <h3>Examples</h3>
-<blockquote>
-  <pre>&lt;ccmcreatetask resolver=&quot;${user.name}&quot;
-            release=&quot;ANTCCM_TEST&quot; comment=&quot;blahblah&quot;/&gt;
-</pre>
-</blockquote>
-<p>Creates a task for the release <i>ANTCCM_TEST</i> with the
-  current user as the resolver for this task.</p>
 
+<p>Create a task for the release <samp>ANTCCM_TEST</samp> with the current user as the resolver for
+this task.</p>
+<pre>
+&lt;ccmcreatetask resolver=&quot;${user.name}&quot;
+               release=&quot;ANTCCM_TEST&quot; comment=&quot;blahblah&quot;/&gt;</pre>
 
 </body>
-
 </html>
diff --git a/manual/Tasks/changelog.html b/manual/Tasks/changelog.html
index 8d9a70b..2b5411b 100644
--- a/manual/Tasks/changelog.html
+++ b/manual/Tasks/changelog.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,259 +15,232 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-<meta http-equiv="Content-Language" content="en-us">
 <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>ChangeLog Task</title>
 </head>
 
 <body>
 
-<h2><a name="changelog">CvsChangeLog</a></h2>
+<h2 id="changelog">CvsChangeLog</h2>
 <h3>Description</h3>
-<p>Generates an XML-formatted report file of the change logs recorded in a
-<a href="http://www.nongnu.org/cvs/" target="_top">CVS</a> repository. </p>
-<p><b>Important:</b> This task needs &quot;<code>cvs</code>&quot; on the path. If it isn't, you will get
-an error (such as error <code>2</code> on windows). If <code>&lt;cvs&gt;</code> doesn't work, try to execute <code>cvs.exe</code>
-from the command line in the target directory in which you are working.
-Also note that this task assumes that the cvs executable is compatible
-with the Unix version from cvshome.org, this is not completely true
-for certain other cvs clients - like CVSNT for example - and some
-operation may fail when using such an incompatible client.
-</p>
+<p>Generates an XML-formatted report file of the change logs recorded in
+a <a href="https://www.nongnu.org/cvs/" target="_top">CVS</a> repository.</p>
+<p><strong>Important</strong>: This task needs <kbd>cvs</kbd> on the path. If it isn't, you will get
+an error (such as <code>error=2</code> on Windows). If <code>&lt;cvs&gt;</code> doesn't work, try to
+execute <kbd>cvs.exe</kbd> from the command line in the target directory in which you are working.
+Also note that this task assumes that the <kbd>cvs</kbd> executable is compatible with the Unix
+version, this is not completely true for certain other CVS clients&mdash;like CVSNT for
+example&mdash;and some operation may fail when using such an incompatible client.</p>
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td colspan="3">Attributes from parent Cvs task which are meaningful here<br>
-    Since Apache Ant 1.6.1</td>
+    <td colspan="3" class="left">Attributes from parent <code>&lt;cvs&gt;</code> task which are
+    meaningful here<br/><em>Since Apache Ant 1.6.1</em></td>
   </tr>
   <tr>
-    <td valign="top">cvsRoot</td>
-    <td valign="top">the <code>CVSROOT</code> variable.</td>
-    <td align="center" valign="top">No</td>
+    <td>cvsRoot</td>
+    <td>the <code>CVSROOT</code> variable.</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">cvsRsh</td>
-    <td valign="top">the <code>CVS_RSH</code> variable.</td>
-    <td align="center" valign="top">No</td>
+    <td>cvsRsh</td>
+    <td>the <code>CVS_RSH</code> variable.</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">package</td>
-    <td valign="top">the package/module to check out.  <b>Note:</b>
-      multiple attributes can be split using spaces.  Use a nested
-      &lt;module&gt; element if you want to specify a module with
-      spaces in its name.</td>
-    <td align="center" valign="top">No</td>
+    <td>package</td>
+    <td>the package/module to check out.  <strong>Note</strong>: multiple attributes can be split
+      using spaces.  Use a nested <code>&lt;module&gt;</code> element if you want to specify a
+      module with spaces in its name.</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">port</td>
-    <td valign="top">Port used by CVS to communicate with the server.</td>
-    <td align="center" valign="top">No, default port 2401.</td>
+    <td>port</td>
+    <td>Port used by CVS to communicate with the server.</td>
+    <td>No; defaults to <q>2401</q></td>
   </tr>
   <tr>
-    <td valign="top">passfile</td>
-    <td valign="top">Password file to read passwords from.</td>
-    <td align="center" valign="top">No, default file <code>~/.cvspass</code>.</td>
+    <td>passfile</td>
+    <td>Password file to read passwords from.</td>
+    <td>No; defaults to <q>~/.cvspass</q></td>
   </tr>
   <tr>
-    <td valign="top">failonerror</td>
-    <td valign="top">Stop the build process if the command exits with a
-      return code other than <code>0</code>. Defaults to false</td>
-    <td align="center" valign="top">No</td>
+    <td>failonerror</td>
+    <td>Stop the build process if the command exits with a return code other than <q>0</q></td>
+    <td>No; defaults to <q>false</q></td>
   </tr>
   <tr>
-    <td valign="top">tag</td>
-    <td valign="top">query the changelog for a specific branch.</td>
-    <td align="center" valign="top">No</td>
+    <td>tag</td>
+    <td>query the changelog for a specific branch.</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td colspan="3">Specific attributes</td>
+    <td colspan="3" class="left">Specific attributes</td>
   </tr>
   <tr>
-    <td valign="top">dir</td>
-    <td valign="top">The directory from which to run the CVS <em>log</em>
-     command.</td>
-    <td align="center" valign="top">No; defaults to ${basedir}.</td>
+    <td>dir</td>
+    <td>The directory from which to run the <kbd>cvs log</kbd> command.</td>
+    <td>No; defaults to <q>${basedir}</q></td>
   </tr>
   <tr>
-    <td valign="top">destfile</td>
-    <td valign="top">The file in which to write the change log report.</td>
-    <td align="center" valign="top">Yes</td>
+    <td>destfile</td>
+    <td>The file in which to write the change log report.</td>
+    <td>Yes</td>
   </tr>
   <tr>
-    <td valign="top">usersfile</td>
-    <td valign="top">Property file that contains name-value pairs mapping
-     user IDs and names that should be used in the report in place of
-     the user ID.</td>
-    <td align="center" valign="top">No</td>
+    <td>usersfile</td>
+    <td>Property file that contains name-value pairs mapping user IDs and names that should be used
+      in the report in place of the user ID.</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">daysinpast</td>
-    <td valign="top">Sets the number of days into the past for which the
-     change log information should be retrieved.</td>
-    <td align="center" valign="top">No</td>
+    <td>daysinpast</td>
+    <td>Sets the number of days into the past for which the change log information should be
+      retrieved.</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">start</td>
-    <td valign="top">The earliest date from which change logs are to be
-     included in the report.</td>
-    <td align="center" valign="top">No</td>
+    <td>start</td>
+    <td>The earliest date from which change logs are to be included in the report.</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">end</td>
-    <td valign="top">The latest date to which change logs are to be
-     included in the report.</td>
-    <td align="center" valign="top">No</td>
+    <td>end</td>
+    <td>The latest date to which change logs are to be included in the report.</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">remote</td>
-    <td valign="top">If set to true, works against the repository
-      (using rlog) without a working copy.  Default is
-      false.  <em>Since Ant 1.8.0</em></td>
-    <td align="center" valign="top">No</td>
+    <td>remote</td>
+    <td>If set to true, works against the repository (using <kbd>cvs rlog</kbd>) without a working
+      copy.  <em>Since Ant 1.8.0</em></td>
+    <td>No; default is <q>false</q></td>
   </tr>
   <tr>
-    <td valign="top">startTag</td>
-    <td valign="top">The start of a tag range. If endTag is also
-      specified, they must both be on the same branch. If endTag is not
-      specified, the end of the range will be the latest on the same
-      branch on which startTag lives.  <em>Since Ant 1.8.0</em></td>
-    <td align="center" valign="top">No</td>
+    <td>startTag</td>
+    <td>The start of a tag range. If <var>endTag</var> is also specified, they must both be on the
+      same branch. If <var>endTag</var> is not specified, the end of the range will be the latest on
+      the same branch on which <var>startTag</var> lives. <em>Since Ant 1.8.0</em></td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">endTag</td>
-    <td valign="top">The end of a tag range. If startTag is also
-     specified, they must both be on the same branch. If startTag is
-     not specified, the start of the range will be the top of the
-     branch on which endTag lives.</td>  included in the report.
-    <em>Since Ant 1.8.0</em></td>
-    <td align="center" valign="top">No</td>
+    <td>endTag</td>
+    <td>The end of a tag range. If <var>startTag</var> is also specified, they must both be on the
+      same branch. If <var>startTag</var> is not specified, the start of the range will be the top
+      of the branch on which <var>endTag</var> lives. <em>Since Ant 1.8.0</em></td>
+    <td>No</td>
   </tr>
 </table>
 
 <h3>Parameters specified as nested elements</h3>
-<h4><a name="user">user</a></h4>
-<p>The nested <code>&lt;user&gt;</code> element allows you to specify a
-mapping between a user ID as it appears on the CVS server and a name to
-include in the formatted report.
-Anytime the specified user ID has made a change in the repository, the
-<code>&lt;author&gt;</code> tag in the report file will include
-the name specified in <code>displayname</code> rather than the user ID.
-</p>
+<h4 id="user">user</h4>
+<p>The nested <code>&lt;user&gt;</code> element allows you to specify a mapping between a user ID as
+it appears on the CVS server and a name to include in the formatted report.  Anytime the specified
+user ID has made a change in the repository, the <code>&lt;author&gt;</code> tag in the report file
+will include the name specified in <var>displayname</var> rather than the user ID.</p>
 
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">displayname</td>
-    <td valign="top">The name to be used in the CVS change log report.</td>
-    <td valign="top" align="center">Yes</td>
+    <td>displayname</td>
+    <td>The name to be used in the CVS change log report.</td>
+    <td>Yes</td>
   </tr>
   <tr>
-    <td valign="top">userid</td>
-    <td valign="top">The userid of the person as it exists on the CVS server.
+    <td>userid</td>
+    <td>The user ID of the person as it exists on the CVS server.
     </td>
-    <td valign="top" align="center">Yes</td>
+    <td>Yes</td>
   </tr>
 </table>
 
 <h4>module</h4>
 
-<p>Specifies a package/module to work on, unlike the package attribute
-  modules specified using this attribute can contain spaces in their
-  name.</p>
+<p>Specifies a package/module to work on, unlike the package attribute modules specified using this
+attribute can contain spaces in their name.</p>
 
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">name</td>
-    <td valign="top">The module's/package's name.</td>
-    <td align="center" valign="top">Yes.</td>
+    <td>name</td>
+    <td>The module's/package's name.</td>
+    <td>Yes</td>
   </tr>
 </table>
 
 <h3>Examples</h3>
-<pre>  &lt;cvschangelog dir=&quot;dve/network&quot;
-                destfile=&quot;changelog.xml&quot;
-  /&gt;</pre>
-
-<p>Generates a change log report for all the changes that have been made
-under the <code>dve/network</code> directory.
-It writes these changes into the file <code>changelog.xml</code>.</p>
-
-<pre>  &lt;cvschangelog dir=&quot;dve/network&quot;
-                destfile=&quot;changelog.xml&quot;
-                daysinpast=&quot;10&quot;
-  /&gt;</pre>
-
-<p>Generates a change log report for any changes that were made
-under the <code>dve/network</code> directory in the past 10 days.
-It writes these changes into the file <code>changelog.xml</code>.</p>
-
-<pre>  &lt;cvschangelog dir=&quot;dve/network&quot;
-                destfile=&quot;changelog.xml&quot;
-                start=&quot;20 Feb 2002&quot;
-                end=&quot;20 Mar 2002&quot;
-  /&gt;</pre>
-
-<p>Generates a change log report for any changes that were made
-between February 20, 2002 and March 20, 2002
-under the <code>dve/network</code> directory.
-It writes these changes into the file <code>changelog.xml</code>.</p>
-
-<pre>  &lt;cvschangelog dir=&quot;dve/network&quot;
-                destfile=&quot;changelog.xml&quot;
-                start=&quot;20 Feb 2002&quot;
-  /&gt;</pre>
-
-<p>Generates a change log report for any changes that were made
-after February 20, 2002 under the <code>dve/network</code> directory.
-It writes these changes into the file <code>changelog.xml</code>.</p>
-
-<pre>  &lt;cvschangelog dir=&quot;dve/network&quot;
-                destfile=&quot;changelog.xml&quot;&gt;
-       &lt;user displayname=&quot;Peter Donald&quot; userid=&quot;donaldp&quot;/&gt;
-  &lt;/cvschangelog&gt;</pre>
-
-<p>Generates a change log report for all the changes that were made
-under the <code>dve/network</code> directory, substituting the name
-&quot;Peter Donald&quot; in the <code>&lt;author&gt;</code> tags
-anytime it encounters a change made by the user ID &quot;donaldp&quot;.
-It writes these changes into the file <code>changelog.xml</code>.</p>
-
-<p>Generates a change log report on the <code>ANT_16_BRANCH</code>.</p>
+<p>Generate a change log report for all the changes that have been made under
+the <samp>dve/network</samp> directory. Write these changes into the
+file <samp>changelog.xml</samp>.</p>
 <pre>
- &lt;cvschangelog dir=&quot;c:/dev/asf/ant.head&quot; passfile=&quot;c:/home/myself/.cvspass&quot;
-                destfile=&quot;changelogant.xml&quot; tag=&quot;ANT_16_BRANCH&quot;/&gt;
-</pre>
+&lt;cvschangelog dir=&quot;dve/network&quot;
+              destfile=&quot;changelog.xml&quot;/&gt;</pre>
+
+<p>Generate a change log report for any changes that were made under the <samp>dve/network</samp>
+directory in the past 10 days. Write these changes into the file <samp>changelog.xml</samp>.</p>
+<pre>
+&lt;cvschangelog dir=&quot;dve/network&quot;
+              destfile=&quot;changelog.xml&quot;
+              daysinpast=&quot;10&quot;/&gt;</pre>
+
+<p>Generate a change log report for any changes that were made between February 20, 2002 and March
+20, 2002 under the <samp>dve/network</samp> directory. Write these changes into the
+file <samp>changelog.xml</samp>.</p>
+<pre>
+&lt;cvschangelog dir=&quot;dve/network&quot;
+              destfile=&quot;changelog.xml&quot;
+              start=&quot;20 Feb 2002&quot;
+              end=&quot;20 Mar 2002&quot;/&gt;</pre>
+
+<p>Generate a change log report for any changes that were made after February 20, 2002 under
+the <samp>dve/network</samp> directory. Write these changes into the
+file <samp>changelog.xml</samp>.</p>
+<pre>
+&lt;cvschangelog dir=&quot;dve/network&quot;
+              destfile=&quot;changelog.xml&quot;
+              start=&quot;20 Feb 2002&quot;/&gt;</pre>
+
+<p>Generate a change log report for all the changes that were made under
+the <code>dve/network</code> directory, substituting the name <samp>Peter Donald</samp> in
+the <code>&lt;author&gt;</code> tags anytime a change made by the user ID <samp>donaldp</samp> is
+encountered.  Write these changes into the file <samp>changelog.xml</samp>.</p>
+<pre>
+&lt;cvschangelog dir=&quot;dve/network&quot;
+              destfile=&quot;changelog.xml&quot;&gt;
+    &lt;user displayname=&quot;Peter Donald&quot; userid=&quot;donaldp&quot;/&gt;
+&lt;/cvschangelog&gt;</pre>
+
+<p>Generate a change log report on the <code>ANT_16_BRANCH</code>.</p>
+<pre>
+&lt;cvschangelog dir=&quot;c:/dev/asf/ant.head&quot; passfile=&quot;c:/home/myself/.cvspass&quot;
+              destfile=&quot;changelogant.xml&quot; tag=&quot;ANT_16_BRANCH&quot;/&gt;</pre>
 <h4>Generate Report</h4>
-<p>Ant includes a basic XSLT stylesheet that you can use to generate 
-a HTML report based on the xml output. The following example illustrates
-how to generate a HTML report from the XML report.</p>
+<p>Ant includes a basic XSLT stylesheet that you can use to generate a HTML report based on the XML
+output. The following example illustrates how to generate a HTML report from the XML report.</p>
 
 <pre>
-        &lt;style in="changelog.xml" 
-               out="changelog.html" 
-               style="${ant.home}/etc/changelog.xsl"&gt;
-          &lt;param name="title" expression="Ant ChangeLog"/&gt;
-          &lt;param name="module" expression="ant"/&gt;
-          &lt;param name="cvsweb" expression="http://cvs.apache.org/viewcvs/"/&gt;
-        &lt;/style&gt;
-</pre>
+&lt;style in="changelog.xml"
+      out="changelog.html"
+      style="${ant.home}/etc/changelog.xsl"&gt;
+  &lt;param name="title" expression="Ant ChangeLog"/&gt;
+  &lt;param name="module" expression="ant"/&gt;
+  &lt;param name="cvsweb" expression="https://cvs.apache.org/viewcvs/"/&gt;
+&lt;/style&gt;</pre>
 
 <h4>Sample Output</h4>
 <pre>
@@ -284,11 +258,7 @@
 
 This allows templates to be stored inside jar]]&gt;&lt;/msg&gt;
   &lt;/entry&gt;
-&lt;/changelog&gt;
-</pre>
-
-
+&lt;/changelog&gt;</pre>
 
 </body>
 </html>
-
diff --git a/manual/Tasks/checksum.html b/manual/Tasks/checksum.html
index 29f48dd..0640814 100644
--- a/manual/Tasks/checksum.html
+++ b/manual/Tasks/checksum.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,256 +15,224 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-<meta http-equiv="Content-Language" content="en-us">
 <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>Checksum Task</title>
 </head>
 
 <body>
 
-<h2><a name="checksum">Checksum</a></h2>
+<h2 id="checksum">Checksum</h2>
 <h3>Description</h3>
-<p>
-Generates checksum for files.  This task can also be used to
-perform checksum verifications.
-</p>
+<p>Generates checksum for files.  This task can also be used to perform checksum verifications.</p>
 
-<p>Note that many popular message digest functions - including MD5 and
-SHA-1 - have been broken recently.  If you are going to use the task
-to create checksums used in an environment where security is
-important, please take some time to investigate the algorithms offered
-by your JCE provider.  Note also that some JCE providers like the one
-by <a href="http://www.bouncycastle.org/">The Legion of the Bouncy
-Castle</a>, the <a href="http://www.gnu.org/software/gnu-crypto/">GNU
-project</a> or <a
-href="http://jce.iaik.tugraz.at/products/01_jce/index.php">the
-Technical University Graz</a> offer more digest algorithms than those
-built-in into your JDK.</p>
+<p>Note that many popular message digest functions&mdash;including MD5 and SHA-1&mdash;have been
+broken recently.  If you are going to use the task to create checksums used in an environment where
+security is important, please take some time to investigate the algorithms offered by your JCE
+provider.  Note also that some JCE providers like the one by <a href="https://www.bouncycastle.org/"
+target="_top">The Legion of the Bouncy Castle</a>,
+the <a href="https://www.gnu.org/software/gnu-crypto/" target="_top">GNU Crypto project</a>
+or <a href="https://jce.iaik.tugraz.at/sic/Products" target="_top">the Technical University Graz</a>
+offer more digest algorithms than those built-in into your JDK.</p>
 
-<p>
-Warning: the case of the extension is that of the algorithm used.
-If you ask for "SHA1", you get a .SHA1 extension; if you ask for "sha1", you
-get a file ending in .sha1. The Java Crypto Engines are case-insensitive
-in matching algorithms, so choose a name to match your desired output extension,
-or set the <tt>fileext</tt> attribute. The names of common hashing algorithms can be located on the
-<a target="_blank" href="http://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#MessageDigest">Cryptography Architecture Standard Algorithm Name Documentation</a>
-</p>
+<p>Warning: the case of the extension is that of the algorithm used.  If you ask
+for <samp>SHA1</samp>, you get a <samp>.SHA1</samp> extension; if you ask for <samp>sha1</samp>, you
+get a file ending in <samp>.sha1</samp>. The Java Crypto Engines are case-insensitive in matching
+algorithms, so choose a name to match your desired output extension, or set the <var>fileext</var>
+attribute. The names of common hashing algorithms can be located on
+the <a href="https://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#MessageDigest"
+target="_top">Cryptography Architecture Standard Algorithm Name Documentation</a></p>
 
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">file</td>
-    <td valign="top">The file to generate checksum for.</td>
-    <td valign="top" align="center">One of either <var>file</var> or
-    at least one nested (filesystem-only) resource collection.</td>
+    <td>file</td>
+    <td>The file to generate checksum for.</td>
+    <td>Yes, unless at least one nested (filesystem-only) resource collection is specified.</td>
   </tr>
   <tr>
-    <td valign="top">todir</td>
-    <td valign="top">The root directory where checksums should be written.</td>
-    <td valign="top" align="center">No. If not specified, checksum files
-      will be written to the same directory as the files themselves.
-      <em>since Apache Ant 1.6</em>
+    <td>todir</td>
+    <td>The root directory where checksums should be written.</td>
+    <td>No; by default, checksum files will be written to the same directory as the original
+      files.  <em>since Apache Ant 1.6</em>
     </td>
   </tr>
   <tr>
-    <td valign="top">algorithm</td>
-    <td valign="top">Specifies the algorithm to be used to
-      compute the checksum. Defaults to &quot;MD5&quot;.
-      Other <a target="_blank" href="http://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#MessageDigest">popular algorithms</a> like &quot;SHA&quot; or &quot;SHA-512&quot; may be used
-      as well.
+    <td>algorithm</td>
+    <td>Specifies the algorithm to be used to compute the checksum. Please check
+      the <a href="https://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#MessageDigest"
+      target="_top">documentation</a> for available algorithm names, like <q>SHA-1</q>
+      or <q>SHA-512</q>.
     </td>
-    <td valign="top" align="center">No</td>
+    <td>No; defaults to <q>MD5</q></td>
   </tr>
   <tr>
-    <td valign="top">provider</td>
-    <td valign="top">Specifies the provider of the algorithm.</td>
-    <td valign="top" align="center">No</td>
+    <td>provider</td>
+    <td>Specifies the provider of the algorithm.</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">fileext</td>
-    <td valign="top">The generated checksum file's name will be the
-    original filename with the fileext added to it.
-    Defaults to a "." and the algorithm name being used.
+    <td>fileext</td>
+    <td>The generated checksum file's name will be the original filename with the <var>fileext</var>
+      added to it.
     </td>
-    <td valign="top" align="center">No</td>
+    <td>No; defaults to a <q>.</q> and the algorithm name being used</td>
   </tr>
   <tr>
-    <td valign="top">property</td>
-    <td valign="top">This attribute can mean two different things, it
-    depends on the presence of the verifyproperty attribute.<br>
-    <b>If you don't set the verifyproperty attribute</b>, property
-    specifies the name of the property to be set with the generated
-    checksum value.<br>
-    <b>If you set the verifyproperty attribute</b>, property specifies
-    the checksum you expect to be generated (the checksum itself, not
-    a name of a property containing the checksum).<br>
-    This cannot be specified when fileext is being used or when the
-    number of files for which checksums is to be generated is greater
-    than 1.
+    <td>property</td>
+    <td>This attribute can mean two different things, it depends on the presence of
+      the <var>verifyproperty</var> attribute.<br/><strong>If you don't set</strong>
+      the <var>verifyproperty</var> attribute, property specifies the name of the property to be set
+      with the generated checksum value.<br/><strong>If you set</strong>
+      the <var>verifyproperty</var> attribute, property specifies the checksum you expect to be
+      generated (the checksum itself, not a name of a property containing the checksum).<br/>  This
+      cannot be specified when <var>fileext</var> is being used or when the number of files for
+      which checksums are to be generated is greater than 1.
     </td>
-    <td valign="top" align="center">No</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">pattern</td>
-    <td valign="top">Specifies the pattern to use as a pattern
-    suitable
-    for <a href="http://download.oracle.com/javase/6/docs/api/java/text/MessageFormat.html">MessageFormat</a>
-    where <code>{0}</code> is replaced with the checksum and
-      <code>{1}</code> with the file name. <em>Since Ant
-      1.7.0</em><br/>
-      <em>starting with Ant 1.8.2</em> <code>{2}</code> is replaced by
-      the path of the file relative to the checksum file being
-      written, <code>{3}</code> with tha path of the file relative to
-      the project's basedir and <code>{4}</code> with the absolute
-      path of the file.</td>
-    <td valign="top" align="center">No - default is &quot;{0}&quot;.</td>
+    <td>pattern</td>
+    <td>Specifies the pattern to use as a pattern suitable
+    for <a href="https://docs.oracle.com/javase/8/docs/api/java/text/MessageFormat.html"
+    target="_top">MessageFormat</a> where <code>{0}</code> is replaced with the checksum
+    and <code>{1}</code> with the file name. <em>Since Ant 1.7.0</em><br/><em>Since Ant
+    1.8.2</em> <code>{2}</code> is replaced by the path of the file relative to the checksum file
+    being written, <code>{3}</code> with the path of the file relative to the
+    project's <var>basedir</var> and <code>{4}</code> with the absolute path of the file.</td>
+    <td>No; default is <q>{0}</q></td>
   </tr>
   <tr>
-    <td valign="top">format</td>
-    <td valign="top">Specifies the pattern to use as one of a
-    well-known format.  Supported values are 
-      <table border="1">
+    <td>format</td>
+    <td>Specifies the pattern to use as one of a well-known format.  Supported values are
+      <table>
       <tr>
-        <th>name</th>
-        <th>pattern</th>
-        <th>description</th>
+        <th scope="col">name</th>
+        <th scope="col">pattern</th>
+        <th scope="col">description</th>
       </tr>
       <tr>
-        <td>CHECKSUM </td>
-        <td><tt>{0}</tt></td>
-        <td>only the checksum itself </td>
+        <td>CHECKSUM</td>
+        <td><code>{0}</code></td>
+        <td>only the checksum itself</td>
       </tr>
       <tr>
-        <td>MD5SUM </td>
-        <td><tt>{0} *{1}</tt></td>
-        <td>the format of GNU textutils md5sum</td>
+        <td>MD5SUM</td>
+        <td><code>{0} *{1}</code></td>
+        <td>the format of GNU textutils <code>md5sum</code></td>
       </tr>
       <tr>
-        <td>SVF </td>
-        <td><tt>MD5 ({1}) = {0}</tt></td>
-        <td>the format of BSDs md5 command </td>
+        <td>SVF</td>
+        <td><code>MD5 ({1}) = {0}</code></td>
+        <td>the format of BSD <code>md5</code> command</td>
       </tr>
       </table>
-       <em>Since Ant 1.7.0</em>
-    </td>
-    <td valign="top" align="center">No - default is &quot;CHECKSUM&quot;.</td>
+      <em>Since Ant 1.7.0</em></td>
+    <td>No; default is <q>CHECKSUM</q></td>
   </tr>
   <tr>
-    <td valign="top">totalproperty</td>
-    <td valign="top">If specified, this attribute specifies the name of
-      the property that will hold a checksum of all the checksums and
-      file paths. The individual checksums and the relative paths to the files
-      within the resource collections in which they are defined will be used to
-      compute this checksum. (The file separators in the paths will be
-      converted to '/' before computation to ensure platform portability).
-      <em>since Ant 1.6</em>
-    </td>
-    <td valign="top" align="center">No</td>
+    <td>totalproperty</td>
+    <td>If specified, this attribute specifies the name of the property that will hold a checksum of
+      all the checksums and file paths. The individual checksums and the relative paths to the files
+      within the resource collections in which they are defined will be used to compute this
+      checksum. (The file separators in the paths will be converted to <q>/</q> before computation
+      to ensure platform portability).  <em>since Ant 1.6</em></td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">forceoverwrite</td>
-    <td valign="top">Overwrite existing files even if the destination
-      files are newer. Defaults to &quot;no&quot;.</td>
-    <td valign="top" align="center">No</td>
+    <td>forceoverwrite</td>
+    <td>Overwrite existing files even if the destination files are newer.</td>
+    <td>No; defaults to <q>no</q></td>
   </tr>
   <tr>
-    <td valign="top">verifyproperty</td>
-    <td valign="top">Specifies the name of the property to be set
-    with &quot;true&quot; or &quot;false&quot; depending upon whether
-    the generated checksum matches the existing checksum.  When
-    this is set, the generated checksum is not written to a file or
-    property, but rather, the content of the file or property is used to
-    check against the generated checksum.
-    <td valign="top" align="center">No</td>
+    <td>verifyproperty</td>
+    <td>Specifies the name of the property to be set with <q>true</q> or <q>false</q> depending upon
+      whether the generated checksum matches the existing checksum.  When this is set, the generated
+      checksum is not written to a file or property, but rather, the content of the file or property
+      is used to check against the generated checksum.</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">readbuffersize</td>
-    <td valign="top">The size of the buffer (in bytes) to use when
-    reading a file. Defaults to &quot;8192&quot; - you may get a
-    better performance on big files if you increase this value.</td>
-    <td valign="top" align="center">No</td>
+    <td>readbuffersize</td>
+    <td>The size of the buffer (in bytes) to use when reading a file.</td>
+    <td>No; defaults to <q>8192</q>&mdash;you may get a better performance on big files if you
+      increase this value</td>
   </tr>
 </table>
 <h3>Parameters specified as nested elements</h3>
 
-<h4>resource collection</h4>
- <p>
- <a href="../Types/resources.html#collection">Resource collections</a> are
- used to select files for which checksums should be generated.
- </p>
+<h4>resource collections</h4>
+<p><a href="../Types/resources.html#collection">Resource collections</a> are used to select files
+for which checksums should be generated.</p>
 
 <h3>Examples</h3>
-<p><b>Example 1</b></p>
-<blockquote><pre>&lt;checksum file=&quot;foo.bar&quot;/&gt;</pre></blockquote>
-Generates a MD5 checksum for foo.bar and stores the checksum in the destination file
-foo.bar.MD5.  foo.bar.MD5 is overwritten only if foo.bar is newer than itself.
 
-<p><b>Example 2</b></p>
-<blockquote><pre>&lt;checksum file=&quot;foo.bar&quot; forceOverwrite=&quot;yes&quot;/&gt;</pre></blockquote>
-Generates a MD5 checksum for foo.bar and stores the checksum in foo.bar.MD5.
-If foo.bar.MD5 already exists, it is overwritten.
+<p><strong>Example 1</strong></p>
+<p>Generate a MD5 checksum for <samp>foo.bar</samp> and store the checksum in the destination
+file <samp>foo.bar.MD5</samp>.  <samp>foo.bar.MD5</samp> is overwritten only if <samp>foo.bar</samp>
+is newer than itself.</p>
+<pre>&lt;checksum file=&quot;foo.bar&quot;/&gt;</pre>
 
-<p><b>Example 3</b></p>
-<blockquote><pre>&lt;checksum file=&quot;foo.bar&quot; property=&quot;foobarMD5&quot;/&gt;</pre></blockquote>
-Generates a MD5 checksum for foo.bar and stores it in the Project Property foobarMD5.
+<p><strong>Example 2</strong></p>
+<p>Generate a MD5 checksum for <samp>foo.bar</samp> and store the checksum
+in <samp>foo.bar.MD5</samp>.  If <samp>foo.bar.MD5</samp> already exists, it is overwritten.</p>
+<pre>&lt;checksum file=&quot;foo.bar&quot; forceOverwrite=&quot;yes&quot;/&gt;</pre>
 
-<p><b>Example 4</b></p>
-<blockquote><pre>&lt;checksum file=&quot;foo.bar&quot; verifyProperty=&quot;isMD5ok&quot;/&gt;</pre></blockquote>
-Generates a MD5 checksum for foo.bar, compares it against foo.bar.MD5 and sets
-isMD5ok to either true or false, depending upon the result.
+<p><strong>Example 3</strong></p>
+<p>Generate a MD5 checksum for <samp>foo.bar</samp> and store it in the project
+property <code>foobarMD5</code>.</p>
+<pre>&lt;checksum file=&quot;foo.bar&quot; property=&quot;foobarMD5&quot;/&gt;</pre>
 
-<p><b>Example 5</b></p>
-<blockquote><pre>&lt;checksum file=&quot;foo.bar&quot; algorithm=&quot;SHA-512&quot; fileext=&quot;asc&quot;/&gt;</pre></blockquote>
-Generates a SHA-512 checksum for foo.bar and stores the checksum in the destination file
-foo.bar.asc.  foo.bar.asc is overwritten only if foo.bar is newer than itself.
+<p><strong>Example 4</strong></p>
+<p>Generate a MD5 checksum for <samp>foo.bar</samp>, compare it against <samp>foo.bar.MD5</samp> and
+set <code>isMD5ok</code> to either <q>true</q> or <q>false</q>, depending upon the result.</p>
+<pre>&lt;checksum file=&quot;foo.bar&quot; verifyProperty=&quot;isMD5ok&quot;/&gt;</pre>
 
-<p><b>Example 6</b></p>
-<blockquote><pre>
-&lt;checksum file=&quot;foo.bar&quot; property=&quot;${md5}&quot; verifyProperty=&quot;isEqual&quot;/&gt;
-</pre></blockquote>
-Generates a MD5 checksum for foo.bar, compares it against the value of the property
-md5, and sets isEqual to either true or false, depending upon the result.
+<p><strong>Example 5</strong></p>
+<p>Generate a SHA-512 checksum for <samp>foo.bar</samp> and store the checksum in the destination
+file <samp>foo.bar.asc</samp>.  <samp>foo.bar.asc</samp> is overwritten only if <samp>foo.bar</samp>
+is newer than itself.</p>
+<pre>&lt;checksum file=&quot;foo.bar&quot; algorithm=&quot;SHA-512&quot; fileext=&quot;asc&quot;/&gt;</pre>
 
-<p><b>Example 7</b></p>
-<blockquote><pre>
+<p><strong>Example 6</strong></p>
+<p>Generate a MD5 checksum for <samp>foo.bar</samp>, compare it against the value of the
+property <code>md5</code>, and set <code>isEqual</code> to either <q>true</q> or <q>false</q>,
+depending upon the result.</p>
+<pre>&lt;checksum file=&quot;foo.bar&quot; property=&quot;${md5}&quot; verifyProperty=&quot;isEqual&quot;/&gt;</pre>
+
+<p><strong>Example 7</strong></p>
+<p>Just like Example 1, but generates a <samp>.MD5</samp> file for every file that begins with the
+name <samp>foo</samp>.</p>
+<pre>
 &lt;checksum&gt;
   &lt;fileset dir=&quot;.&quot;&gt;
     &lt;include name=&quot;foo*&quot;/&gt;
   &lt;/fileset&gt;
-&lt;/checksum&gt;
-</pre></blockquote>
-Works just like Example 1, but generates a .MD5 file for every file that begins with the name foo.
+&lt;/checksum&gt;</pre>
 
-<p><b>Example 8</b></p>
-<blockquote><pre>
+<p><strong>Example 8</strong></p>
+<p>Just like Example 4, but only sets <code>isChecksumEqual</code> to <q>true</q>, if the checksum
+matches&mdash;it will never be set to <q>false</q>.  This example demonstrates use with
+the <code>condition</code> task.</p>
+<pre>
 &lt;condition property=&quot;isChecksumEqual&quot;&gt;
   &lt;checksum&gt;
     &lt;fileset dir=&quot;.&quot;&gt;
       &lt;include name=&quot;foo.bar&quot;/&gt;
     &lt;/fileset&gt;
   &lt;/checksum&gt;
-&lt;/condition&gt;
-</pre></blockquote>
-Works like Example 4, but only sets isChecksumEqual to true, if the
-checksum matches - it will never be set to false.  This example
-demonstrates use with the Condition task.
+&lt;/condition&gt;</pre>
 
-
-<h3>Note:</h3>
-When working with more than one file, if condition and/or verifyproperty is used,
-the result will be true only if the checksums matched correctly for all files being
-considered.
-
-
+<h3>Note</h3>
+<p>When working with more than one file, if condition and/or <var>verifyproperty</var> is used, the
+result will be true only if the checksums matched correctly for all files being considered.</p>
 
 </body>
 </html>
-
diff --git a/manual/Tasks/chgrp.html b/manual/Tasks/chgrp.html
index 2126fb7..9b05568 100644
--- a/manual/Tasks/chgrp.html
+++ b/manual/Tasks/chgrp.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,135 +15,116 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-<meta http-equiv="Content-Language" content="en-us">
 <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>Chgrp Task</title>
 </head>
 
 <body>
 
-<h2><a name="Chgrp">Chgrp</a></h2>
-<p><em>Since Apache Ant 1.6.</em></p>
+<h2 id="chgrp">Chgrp</h2>
+<p><em>Since Apache Ant 1.6</em>.</p>
 <h3>Description</h3>
 
-<p>Changes the group of a file or all files inside specified
-directories. Right now it has effect only under Unix.  The group
-attribute is equivalent to the corresponding argument for the chgrp
-command.</p>
+<p>Changes the group of a file or all files inside specified directories. Right now it has effect
+only under Unix.  The group attribute is equivalent to the corresponding argument for
+the <kbd>chgrp</kbd> command.</p>
 
-<p><a href="../Types/fileset.html">FileSet</a>s, 
-<a href="../Types/dirset.html">DirSet</a>s or <a
-href="../Types/filelist.html">FileList</a>s can be specified using
-nested <code>&lt;fileset&gt;</code>, <code>&lt;dirset&gt;</code> and 
-<code>&lt;filelist&gt;</code> elements.</p>
+<p><a href="../Types/fileset.html">FileSet</a>s, <a href="../Types/dirset.html">DirSet</a>s
+or <a href="../Types/filelist.html">FileList</a>s can be specified using
+nested <code>&lt;fileset&gt;</code>, <code>&lt;dirset&gt;</code> and <code>&lt;filelist&gt;</code>
+elements.</p>
 
-<p>Starting with Ant 1.7, this task supports arbitrary <a
-href="../Types/resources.html#collection">Resource Collection</a>s
-as nested elements.</p>
+<p><em>Since Ant 1.7</em>, this task supports
+arbitrary <a href="../Types/resources.html#collection">resource collections</a> as nested
+elements.</p>
 
-<p>By default this task will use a single invocation of the underlying
-chgrp command.  If you are working on a large number of files this may
-result in a command line that is too long for your operating system.
-If you encounter such problems, you should set the maxparallel
-attribute of this task to a non-zero value.  The number to use highly
-depends on the length of your file names (the depth of your directory
-tree) and your operating system, so you'll have to experiment a
-little.  POSIX recommends command line length limits of at least 4096
-characters, this may give you an approximation for the number you
-could use as initial value for these experiments.</p>
+<p>By default this task will use a single invocation of the underlying <kbd>chgrp</kbd> command.
+If you are working on a large number of files this may result in a command line that is too long for
+your operating system.  If you encounter such problems, you should set the <var>maxparallel</var>
+attribute of this task to a non-zero value.  The number to use highly depends on the length of your
+file names (the depth of your directory tree) and your operating system, so you'll have to
+experiment a little.  POSIX recommends command line length limits of at least 4096 characters, this
+may give you an approximation for the number you could use as initial value for these
+experiments.</p>
 
-<p>By default this task won't do anything unless it detects it is
-  running on a Unix system.  If you know for sure that you have a
-  "chgrp" executable on your PATH that is command line compatible with
-  the Unix command, you can use the task's os attribute and set its
-  value to your current os.</p>
+<p>By default this task won't do anything unless it detects it is running on a Unix system.  If you
+know for sure that you have a <kbd>chgrp</kbd> executable on your <code>PATH</code> that is
+command line compatible with the Unix command, you can use the task's <var>os</var> attribute and
+set its value to your current OS.</p>
 
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">file</td>
-    <td valign="top">the file or directory of which the group must be
-    changed.</td>
-    <td valign="top" valign="middle">Yes, unless nested
-      <code>&lt;fileset|filelist|dirset&gt;</code>
-      elements are specified</td>
+    <td>file</td>
+    <td>the file or directory of which the group must be changed.</td>
+    <td>Yes, unless nested <code>&lt;fileset|filelist|dirset&gt;</code> elements are specified</td>
   </tr>
   <tr>
-    <td valign="top">group</td>
-    <td valign="top">the new group.</td>
-    <td valign="top" align="center">Yes</td>
+    <td>group</td>
+    <td>the new group.</td>
+    <td>Yes</td>
   </tr>
   <tr>
-    <td valign="top">parallel</td>
-    <td valign="top">process all specified files using a single
-      <code>chgrp</code> command. Defaults to true.</td>
-    <td valign="top" align="center">No</td>
+    <td>parallel</td>
+    <td>process all specified files using a single <kbd>chgrp</kbd> command.</td>
+    <td>No; defaults to <q>true</q></td>
   </tr>
   <tr>
-    <td valign="top">type</td>
-    <td valign="top">One of <i>file</i>, <i>dir</i> or
-      <i>both</i>. If set to <i>file</i>, only the group of
-      plain files are going to be changed. If set to <i>dir</i>, only
-      the directories are considered.<br>
-      <strong>Note:</strong> The type attribute does not apply to
-      nested <i>dirset</i>s - <i>dirset</i>s always implicitly
-      assume type to be <i>dir</i>.</td>
-    <td align="center" valign="top">No, default is <i>file</i></td>
+    <td>type</td>
+    <td>One of <q>file</q>, <q>dir</q> or <q>both</q>. If set to <q>file</q>, only the group of
+      plain files are going to be changed. If set to <q>dir</q>, only the directories are
+      considered.<br/><strong>Note</strong>: The type attribute does not apply to
+      nested <code>dirset</code>s&mdash;<code>dirset</code>s always implicitly assume type to
+      be <q>dir</q>.</td>
+    <td>No; default is <q>file</q></td>
   </tr>
   <tr>
-    <td valign="top">maxparallel</td>
-    <td valign="top">Limit the amount of parallelism by passing at
-      most this many sourcefiles at once.  Set it to &lt;= 0 for
-      unlimited.  Defaults to unlimited.</td>
-    <td align="center" valign="top">No</td>
-
+    <td>maxparallel</td>
+    <td>Limit the amount of parallelism by passing at most this many sourcefiles at once.  Set it to
+      negative integer for unlimited.</td>
+    <td>No; defaults to unlimited</td>
   </tr>
   <tr>
-    <td valign="top">verbose</td>
-    <td valign="top">Whether to print a summary after execution or not.
-      Defaults to <code>false</code>.</td>
-    <td align="center" valign="top">No</td>
+    <td>verbose</td>
+    <td>Whether to print a summary after execution or not.</td>
+    <td>No; defaults to <q>false</q></td>
   </tr>
   <tr>
-    <td valign="top">os</td>
-    <td valign="top">list of Operating Systems on which the command may be
-      executed.</td>
-    <td align="center" valign="top">No</td>
+    <td>os</td>
+    <td>list of Operating Systems on which the command may be executed.</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">osfamily</td>
-    <td valign="top">OS family as used in
-      the <a href="../Tasks/conditions.html#os">&lt;os&gt;</a>
+    <td>osfamily</td>
+    <td>OS family as used in the <a href="../Tasks/conditions.html#os">&lt;os&gt;</a>
       condition.</td>
-    <td align="center" valign="top">No - defaults to "unix"</td>
+    <td>No; defaults to <q>unix</q></td>
   </tr>
-
 </table>
 <h3>Examples</h3>
-  <blockquote><pre>
-&lt;chgrp file=&quot;${dist}/start.sh&quot; group=&quot;coders&quot;/&gt;
-</pre>
-</blockquote>
-<p>makes the &quot;start.sh&quot; file belong to the coders group on a
-UNIX system.</p>
-<blockquote>
+
+<p>Make the <samp>start.sh</samp> file belong to the <samp>coders</samp> group on a UNIX system.</p>
+<pre>&lt;chgrp file=&quot;${dist}/start.sh&quot; group=&quot;coders&quot;/&gt;</pre>
+
+<p>Make all <samp>.sh</samp> files below <samp>${dist}/bin</samp> belong to the <samp>coders</samp>
+group on a UNIX system.</p>
 <pre>
 &lt;chgrp group=&quot;coders&quot;&gt;
   &lt;fileset dir=&quot;${dist}/bin&quot; includes=&quot;**/*.sh&quot;/&gt;
-&lt;/chgrp&gt;
-</pre>
-</blockquote>
-<p>makes all &quot;.sh&quot; files below <code>${dist}/bin</code>
-belong to the coders group on a UNIX system.</p>
-<blockquote>
+&lt;/chgrp&gt;</pre>
+
+<p>Make all files below <samp>shared/sources1</samp> (except those below any directory
+named <samp>trial</samp>) belong to the <samp>coders</samp> group on a UNIX system. In addition, all
+files belonging to a FileSet with <var>id</var>=<samp>other.shared.sources</samp> get the same
+group.</p>
 <pre>
 &lt;chgrp group=&quot;coders&quot;&gt;
   &lt;fileset dir=&quot;shared/sources1&quot;&gt;
@@ -151,14 +133,11 @@
   &lt;fileset refid=&quot;other.shared.sources&quot;/&gt;
 &lt;/chgrp&gt;
 </pre>
-</blockquote>
-<p>makes all files below <code>shared/sources1</code> (except those
-below any directory named trial) belong to the coders group on a UNIX 
-system. In addition all files belonging to a FileSet
-with <code>id</code> <code>other.shared.sources</code> get the same
-group.</p>
 
-<blockquote>
+<p>Make all <samp>.test.jsp</samp>, and <samp>.new</samp> files belong to
+group <samp>webdev</samp>. Directories with names beginning with <samp>test_</samp> also will belong
+to <samp>webdev</samp>, but if there is a directory name that ends in <samp>.new</samp> or a file
+name that begins with <samp>test_</samp> it will be unaffected.</p>
 <pre>
 &lt;chgrp group=&quot;webdev&quot; type=&quot;file&quot;&gt;
   &lt;fileset dir=&quot;/web&quot;&gt;
@@ -168,18 +147,7 @@
   &lt;dirset dir=&quot;/web&quot;&gt;
     &lt;include name=&quot;**/test_*&quot;/&gt;
   &lt;/dirset&gt;
-&lt;/chmod&gt;
-</pre>
-</blockquote>
-
-<p>makes all <code>.test.jsp</code>, and <code>.new</code> files belong to 
-group webdev. Directories beginning with <code>test_</code> also will belong 
-to webdev, but if there is a directory that ends in <code>.new</code> or a file
-that begins with <code>test_</code> it will be unaffected.</p>
-
-
-
+&lt;/chmod&gt;</pre>
 
 </body>
 </html>
-
diff --git a/manual/Tasks/chmod.html b/manual/Tasks/chmod.html
index 74e71d0..13371dd 100644
--- a/manual/Tasks/chmod.html
+++ b/manual/Tasks/chmod.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,179 +15,158 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-<meta http-equiv="Content-Language" content="en-us">
 <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>Chmod Task</title>
 </head>
 
 <body>
 
-<h2><a name="chmod">Chmod</a></h2>
+<h2 id="chmod">Chmod</h2>
 <h3>Description</h3>
-<p>Changes the permissions of a file or all files inside specified
-directories. Right now it has effect only under Unix or NonStop Kernel (Tandem).
-The permissions are also UNIX style, like the argument for the chmod command.</p>
-<p>See the section on <a href="../dirtasks.html#directorybasedtasks">directory based
-tasks</a>, on how the inclusion/exclusion of files works, and how to
-write patterns.</p>
+<p>Changes the permissions of a file or all files inside specified directories. Right now it has
+effect only under Unix or NonStop Kernel (Tandem).  The permissions are also UNIX style, like the
+argument for the <kbd>chmod</kbd> command.</p>
+<p>See the section on <a href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on
+how the inclusion/exclusion of files works, and how to write patterns.</p>
 
-<p>This task holds an implicit <a
-href="../Types/fileset.html">FileSet</a> and supports all of
-FileSet's attributes and nested elements directly. More sets can be
-specified using nested <code>&lt;fileset&gt;</code> or
-<code>&lt;dirset&gt;</code> (<em>since Apache Ant 1.6</em>) elements. </p>
+<p>This task holds an implicit <a href="../Types/fileset.html">FileSet</a> and supports all of
+FileSet's attributes and nested elements directly. More sets can be specified using
+nested <code>&lt;fileset&gt;</code> or <code>&lt;dirset&gt;</code> (<em>since Apache Ant 1.6</em>)
+elements.</p>
 
-<p>Starting with Ant 1.6, this task also supports nested <a
-href="../Types/filelist.html">filelist</a>s.</p>
+<p><em>Since Ant 1.6</em>, this task also supports
+nested <a href="../Types/filelist.html">filelist</a>s.</p>
 
-<p>Starting with Ant 1.7, this task supports arbitrary <a
-href="../Types/resources.html#collection">Resource Collection</a>s
-as nested elements.</p>
+<p><em>Since Ant 1.7</em>, this task supports
+arbitrary <a href="../Types/resources.html#collection">resource collections</a> as nested
+elements.</p>
 
-<p>By default this task will use a single invocation of the underlying
-chmod command.  If you are working on a large number of files this may
-result in a command line that is too long for your operating system.
-If you encounter such problems, you should set the maxparallel
-attribute of this task to a non-zero value.  The number to use highly
-depends on the length of your file names (the depth of your directory
-tree) and your operating system, so you'll have to experiment a
-little.  POSIX recommends command line length limits of at least 4096
-characters, this may give you an approximation for the number you
-could use as initial value for these experiments.</p>
+<p>By default this task will use a single invocation of the underlying <kbd>chmod</kbd> command.
+If you are working on a large number of files this may result in a command line that is too long for
+your operating system.  If you encounter such problems, you should set the <var>maxparallel</var>
+attribute of this task to a non-zero value.  The number to use highly depends on the length of your
+file names (the depth of your directory tree) and your operating system, so you'll have to
+experiment a little.  POSIX recommends command line length limits of at least 4096 characters, this
+may give you an approximation for the number you could use as initial value for these
+experiments.</p>
 
-<p>By default this task won't do anything unless it detects it is
-  running on a Unix system.  If you know for sure that you have a
-  "chmod" executable on your PATH that is command line compatible with
-  the Unix command, you can use the task's os attribute and set its
-  value to your current os.</p>
+<p>By default this task won't do anything unless it detects it is running on a Unix system.  If you
+know for sure that you have a <kbd>chmod</kbd> executable on your <code>PATH</code> that is
+command line compatible with the Unix command, you can use the task's <var>os</var> attribute and
+set its value to your current OS.</p>
+
+<p>See the <a href="setpermissions.html">setpermissions</a> task for a platform independent
+alternative.</p>
 
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">file</td>
-    <td valign="top">the file or single directory of which the permissions 
-      must be changed.</td>
-    <td valign="top" valign="middle" rowspan="2">exactly one of the two or nested <code>&lt;fileset/list&gt;</code> elements.</td>
+    <td>file</td>
+    <td>the file or single directory of which the permissions must be changed.</td>
+    <td rowspan="2">Exactly one of the two, unless
+      nested <code>&lt;fileset|filelist|dirset&gt;</code> elements are specified</td>
   </tr>
   <tr>
-    <td valign="top">dir</td>
-    <td valign="top">the directory which holds the files whose permissions 
-      must be changed.<br/>
-      <b>Note:</b> for backwards compatibility
-      reasons <code>&lt;chmod&nbsp;dir="some-dir"/&gt;</code> will
-      only change the permissions on "some-dir" but not recurse into
-      it, unless you also specify any patterns.</td>
+    <td>dir</td>
+    <td class="left">the directory which holds the files whose permissions must be
+      changed.<br/><strong>Note</strong>: for backwards compatibility reasons <code>&lt;chmod
+      dir="some-dir"/&gt;</code> will only change the permissions on <samp>some-dir</samp> but not
+      recurse into it, unless you also specify any patterns.</td>
   </tr>
   <tr>
-    <td valign="top">perm</td>
-    <td valign="top">the new permissions.</td>
-    <td valign="top" align="center">Yes</td>
+    <td>perm</td>
+    <td>the new permissions.</td>
+    <td>Yes</td>
   </tr>
   <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma- or space-separated list of patterns of files that must be
-      included.</td>
-    <td valign="top" align="center">No</td>
+    <td>includes</td>
+    <td>comma- or space-separated list of patterns of files that must be included.</td>
+    <td>No; defaults to all (<q>**</q>)</td>
   </tr>
   <tr>
-    <td valign="top">excludes</td>
-    <td valign="top">comma- or space-separated list of patterns of files that must be
-      excluded. No files (except default excludes) are excluded when omitted.</td>
-    <td valign="top" align="center">No</td>
+    <td>excludes</td>
+    <td>comma- or space-separated list of patterns of files that must be excluded.</td>
+    <td>No; defaults to default excludes or none if <var>defaultexcludes</var> is <q>no</q></td>
   </tr>
   <tr>
-    <td valign="top">defaultexcludes</td>
-    <td valign="top">indicates whether default excludes should be used or not
-      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
-    <td valign="top" align="center">No</td>
+    <td>defaultexcludes</td>
+    <td>indicates whether default excludes should be used or not (<q>yes|no</q>).</td>
+    <td>No; defaults to <q>yes</q></td>
   </tr>
   <tr>
-    <td valign="top">parallel</td>
-    <td valign="top">process all specified files using a single
-      <code>chmod</code> command. Defaults to true.</td>
-    <td valign="top" align="center">No</td>
+    <td>parallel</td>
+    <td>process all specified files using a single <kbd>chmod</kbd> command.</td>
+    <td>No; defaults to <q>true</q></td>
   </tr>
   <tr>
-    <td valign="top">type</td>
-    <td valign="top">One of <i>file</i>, <i>dir</i> or
-      <i>both</i>. If set to <i>file</i>, only the permissions of
-      plain files are going to be changed. If set to <i>dir</i>, only
-      the directories are considered.<br>
-      <strong>Note:</strong> The type attribute does not apply to
-      nested <i>dirset</i>s - <i>dirset</i>s always implicitly
-      assume type to be <i>dir</i>.</td>
-    <td align="center" valign="top">No, default is <i>file</i></td>
+    <td>type</td>
+    <td>One of <q>file</q>, <q>dir</q> or <q>both</q>. If set to <q>file</q>, only the permissions
+      of plain files are going to be changed. If set to <q>dir</q>, only the directories are
+      considered.<br/><strong>Note</strong>: The type attribute does not apply to
+      nested <code>dirset</code>s&mdash;<code>dirset</code>s always implicitly assume type to
+      be <q>dir</q>.</td>
+    <td>No; default is <q>file</q></td>
   </tr>
   <tr>
-    <td valign="top">maxparallel</td>
-    <td valign="top">Limit the amount of parallelism by passing at
-      most this many sourcefiles at once.  Set it to &lt;= 0 for
-      unlimited.  Defaults to unlimited.  <em>Since Ant 1.6.</em></td>
-    <td align="center" valign="top">No</td>
+    <td>maxparallel</td>
+    <td>Limit the amount of parallelism by passing at most this many sourcefiles at once.  Set it to
+      negative integer for unlimited.  <em>Since Ant 1.6</em>.</td>
+    <td>No; defaults to unlimited</td>
   </tr>
   <tr>
-    <td valign="top">verbose</td>
-    <td valign="top">Whether to print a summary after execution or not.
-      Defaults to <code>false</code>.  <em>Since Ant 1.6.</em></td>
-    <td align="center" valign="top">No</td>
+    <td>verbose</td>
+    <td>Whether to print a summary after execution or not.  <em>Since Ant 1.6</em>.</td>
+    <td>No; defaults to <q>false</q></td>
   </tr>
   <tr>
-    <td valign="top">os</td>
-    <td valign="top">list of Operating Systems on which the command may be
-      executed.</td>
-    <td align="center" valign="top">No</td>
+    <td>os</td>
+    <td>list of Operating Systems on which the command may be executed.</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">osfamily</td>
-    <td valign="top">OS family as used in
-      the <a href="conditions.html#os">&lt;os&gt;</a> condition.</td>
-    <td align="center" valign="top">No - defaults to "unix"</td>
+    <td>osfamily</td>
+    <td>OS family as used in the <a href="conditions.html#os">&lt;os&gt;</a> condition.</td>
+    <td>No; defaults to <q>unix</q></td>
   </tr>
 </table>
 <h3>Examples</h3>
-  <blockquote><pre>
-&lt;chmod file=&quot;${dist}/start.sh&quot; perm=&quot;ugo+rx&quot;/&gt;
-</pre></blockquote>
-<p>makes the &quot;start.sh&quot; file readable and executable for anyone on a
+
+<p>Make the <samp>start.sh</samp> file readable and executable for anyone on a UNIX system.</p>
+<pre>&lt;chmod file=&quot;${dist}/start.sh&quot; perm=&quot;ugo+rx&quot;/&gt;</pre>
+
+<p>Make the <samp>start.sh</samp> file readable, writable and executable only for the owner on a
 UNIX system.</p>
-<blockquote><pre>
-&lt;chmod file=&quot;${dist}/start.sh&quot; perm=&quot;700&quot;/&gt;
-</pre></blockquote>
-<p>makes the &quot;start.sh&quot; file readable, writable and executable only for the owner on a
-UNIX system.</p>
-<blockquote>
+<pre>&lt;chmod file=&quot;${dist}/start.sh&quot; perm=&quot;700&quot;/&gt;</pre>
+
+<p>Make all <samp>.sh</samp> files below <samp>${dist}/bin</samp> readable and executable for anyone
+on a UNIX system.</p>
 <pre>
-&lt;chmod dir=&quot;${dist}/bin&quot; perm=&quot;ugo+rx&quot; 
-       includes=&quot;**/*.sh&quot;/&gt;
-</pre>
-</blockquote>
-<p>makes all &quot;.sh&quot; files below <code>${dist}/bin</code>
-readable and executable for anyone on a UNIX system.</p>
-<blockquote>
+&lt;chmod dir=&quot;${dist}/bin&quot; perm=&quot;ugo+rx&quot;
+       includes=&quot;**/*.sh&quot;/&gt;</pre>
+
+<p>Make all files below <samp>shared/sources1</samp> (except those below any directory
+named <samp>trial</samp>) writable for members of the same group on a UNIX system. In addition, all
+files belonging to a FileSet with <var>id</var> <samp>other.shared.sources</samp> get the same
+permissions.</p>
 <pre>
 &lt;chmod perm=&quot;g+w&quot;&gt;
   &lt;fileset dir=&quot;shared/sources1&quot;&gt;
     &lt;exclude name=&quot;**/trial/**&quot;/&gt;
   &lt;/fileset&gt;
   &lt;fileset refid=&quot;other.shared.sources&quot;/&gt;
-&lt;/chmod&gt;
-</pre>
-</blockquote>
-<p>makes all files below <code>shared/sources1</code> (except those
-below any directory named trial) writable for members of the same
-group on a UNIX system. In addition all files belonging to a FileSet
-with <code>id</code> <code>other.shared.sources</code> get the same
-permissions.</p>
+&lt;/chmod&gt;</pre>
 
-<blockquote>
+<p>Keep non-owners from touching <code>cgi</code> scripts, files with a <samp>.old</samp> extension
+or directories beginning with <samp>private_</samp>. A directory ending in <samp>.old</samp> or a
+file beginning with <samp>private_</samp> would remain unaffected.</p>
 <pre>
 &lt;chmod perm=&quot;go-rwx&quot; type=&quot;file&quot;&gt;
   &lt;fileset dir=&quot;/web&quot;&gt;
@@ -196,30 +176,14 @@
   &lt;dirset dir=&quot;/web&quot;&gt;
     &lt;include name=&quot;**/private_*&quot;/&gt;
   &lt;/dirset&gt;
-&lt;/chmod&gt;
-</pre>
-</blockquote>
+&lt;/chmod&gt;</pre>
 
-<p>keeps non-owners from touching cgi scripts, files with a <code>.old</code>
-extension or directories beginning with <code>private_</code>. A directory 
-ending in <code>.old</code> or a file beginning with private_ would remain
-unaffected.</p>
-
-
-  <h3>Note on maxparallel attribute</h3>
-  <p>
-    Some shells have a limit of the number of characters that
-    a command line may contain. 
-    This maximum limit varies from shell to shell and from operating
-    system to operating system.
-    If one has a large number of files to change mode on, consider
-    using the <em>maxparallel</em> attribute. For example
-    when using AIX and the limit is reached, the system responds
-    with a warning: "Warning: 
-    UNIXProcess.forkAndExec native error: The parameter or environment lists
-    are too long". A value of about 300 seems to result in a
-    command line that is acceptable.
-  </p>
+<h3>Note on <var>maxparallel</var> attribute</h3>
+<p>Some shells have a limit of the number of characters that a command line may contain.  This
+maximum limit varies from shell to shell and from operating system to operating system.  If one has
+a large number of files to change mode on, consider using the <var>maxparallel</var> attribute. For
+example when using AIX and the limit is reached, the system responds with a warning: <code>"Warning:
+UNIXProcess.forkAndExec native error: The parameter or environment lists are too long"</code>. A
+value of about 300 seems to result in a command line that is acceptable.</p>
 </body>
 </html>
-
diff --git a/manual/Tasks/chown.html b/manual/Tasks/chown.html
index 33a9f44..5bd8f94 100644
--- a/manual/Tasks/chown.html
+++ b/manual/Tasks/chown.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,150 +15,127 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-<meta http-equiv="Content-Language" content="en-us">
 <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>Chown Task</title>
 </head>
 
 <body>
 
-<h2><a name="Chown">Chown</a></h2>
-<p><em>Since Apache Ant 1.6.</em></p>
+<h2 id="chown">Chown</h2>
+<p><em>Since Apache Ant 1.6</em>.</p>
 <h3>Description</h3>
 
-<p>Changes the owner of a file or all files inside specified
-directories. Right now it has effect only under Unix.  The owner
-attribute is equivalent to the corresponding argument for the chown
-command.</p>
+<p>Changes the owner of a file or all files inside specified directories. Right now it has effect
+only under Unix.  The owner attribute is equivalent to the corresponding argument for
+the <kbd>chown</kbd> command.</p>
 
-<p><a href="../Types/fileset.html">FileSet</a>s, 
-<a href="../Types/dirset.html">DirSet</a>s or <a
-href="../Types/filelist.html">FileList</a>s can be specified using
-nested <code>&lt;fileset&gt;</code>, <code>&lt;dirset&gt;</code> and 
-<code>&lt;filelist&gt;</code> elements.</p>
+<p><a href="../Types/fileset.html">FileSet</a>s, <a href="../Types/dirset.html">DirSet</a>s
+or <a href="../Types/filelist.html">FileList</a>s can be specified using
+nested <code>&lt;fileset&gt;</code>, <code>&lt;dirset&gt;</code> and <code>&lt;filelist&gt;</code>
+elements.</p>
 
-<p>Starting with Ant 1.7, this task supports arbitrary <a
-href="../Types/resources.html#collection">Resource Collection</a>s
-as nested elements.</p>
+<p><em>Since Ant 1.7</em>, this task supports
+arbitrary <a href="../Types/resources.html#collection">resource collections</a> as nested
+elements.</p>
 
-<p>By default this task will use a single invocation of the underlying
-chown command.  If you are working on a large number of files this may
-result in a command line that is too long for your operating system.
-If you encounter such problems, you should set the maxparallel
-attribute of this task to a non-zero value.  The number to use highly
-depends on the length of your file names (the depth of your directory
-tree) and your operating system, so you'll have to experiment a
-little.  POSIX recommends command line length limits of at least 4096
-characters, this may give you an approximation for the number you
-could use as initial value for these experiments.</p>
+<p>By default this task will use a single invocation of the underlying <kbd>chown</kbd> command.
+If you are working on a large number of files this may result in a command line that is too long for
+your operating system.  If you encounter such problems, you should set the <var>maxparallel</var>
+attribute of this task to a non-zero value.  The number to use highly depends on the length of your
+file names (the depth of your directory tree) and your operating system, so you'll have to
+experiment a little.  POSIX recommends command line length limits of at least 4096 characters, this
+may give you an approximation for the number you could use as initial value for these
+experiments.</p>
 
-<p>By default this task won't do anything unless it detects it is
-  running on a Unix system.  If you know for sure that you have a
-  "chown" executable on your PATH that is command line compatible with
-  the Unix command, you can use the task's os attribute and set its
-  value to your current os.</p>
+<p>By default this task won't do anything unless it detects it is running on a Unix system.  If you
+know for sure that you have a <kbd>chown</kbd> executable on your <code>PATH</code> that is command
+line compatible with the Unix command, you can use the task's <var>os</var> attribute and set its
+value to your current OS.</p>
 
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">file</td>
-    <td valign="top">the file or directory of which the owner must be
+    <td>file</td>
+    <td>the file or directory of which the owner must be
     changed.</td>
-    <td valign="top" valign="middle">Yes or nested
-    <code>&lt;fileset/list&gt;</code> elements.</td>
+    <td>Yes, unless nested <code>&lt;fileset|filelist|dirset&gt;</code> elements are specified</td>
   </tr>
   <tr>
-    <td valign="top">owner</td>
-    <td valign="top">the new owner.</td>
-    <td valign="top" align="center">Yes</td>
+    <td>owner</td>
+    <td>the new owner.</td>
+    <td>Yes</td>
   </tr>
   <tr>
-    <td valign="top">parallel</td>
-    <td valign="top">process all specified files using a single
-      <code>chown</code> command. Defaults to true.</td>
-    <td valign="top" align="center">No</td>
+    <td>parallel</td>
+    <td>process all specified files using a single <kbd>chown</kbd> command.</td>
+    <td>No; defaults to <q>true</q></td>
   </tr>
   <tr>
-    <td valign="top">type</td>
-    <td valign="top">One of <i>file</i>, <i>dir</i> or
-      <i>both</i>. If set to <i>file</i>, only the owner of
-      plain files are going to be changed. If set to <i>dir</i>, only
-      the directories are considered.<br>
-      <strong>Note:</strong> The type attribute does not apply to
-      nested <i>dirset</i>s - <i>dirset</i>s always implicitly
-      assume type to be <i>dir</i>.</td>
-    <td align="center" valign="top">No, default is <i>file</i></td>
+    <td>type</td>
+    <td>One of <q>file</q>, <q>dir</q> or <q>both</q>. If set to <q>file</q>, only the owner of
+      plain files are going to be changed. If set to <q>dir</q>, only the directories are
+      considered.<br/><strong>Note</strong>: The <var>type</var> attribute does not apply to
+      nested <code>dirset</code>s&mdash;<code>dirset</code>s always implicitly assume type to
+      be <q>dir</q>.</td>
+    <td>No; default is <q>file</q></td>
   </tr>
   <tr>
-    <td valign="top">maxparallel</td>
-    <td valign="top">Limit the amount of parallelism by passing at
-      most this many sourcefiles at once.  Set it to &lt;= 0 for
-      unlimited.  Defaults to unlimited.</td>
-    <td align="center" valign="top">No</td>
-
+    <td>maxparallel</td>
+    <td>Limit the amount of parallelism by passing at most this many sourcefiles at once.  Set it to
+      negative integer for unlimited.</td>
+    <td>No; defaults to unlimited</td>
   </tr>
   <tr>
-    <td valign="top">verbose</td>
-    <td valign="top">Whether to print a summary after execution or not.
-      Defaults to <code>false</code>.</td>
-    <td align="center" valign="top">No</td>
+    <td>verbose</td>
+    <td>Whether to print a summary after execution or not.</td>
+    <td>No; defaults to <q>false</q></td>
   </tr>
   <tr>
-    <td valign="top">os</td>
-    <td valign="top">list of Operating Systems on which the command may be
-      executed.</td>
-    <td align="center" valign="top">No</td>
+    <td>os</td>
+    <td>list of Operating Systems on which the command may be executed.</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">osfamily</td>
-    <td valign="top">OS family as used in
-      the <a href="../Tasks/conditions.html#os">&lt;os&gt;</a>
+    <td>osfamily</td>
+    <td>OS family as used in the <a href="../Tasks/conditions.html#os">&lt;os&gt;</a>
       condition.</td>
-    <td align="center" valign="top">No - defaults to "unix"</td>
+    <td>No; defaults to <q>unix</q></td>
   </tr>
-
 </table>
 <h3>Examples</h3>
-<blockquote><pre>
-&lt;chown file="${dist}/start.sh" owner="coderjoe"/&gt;
-</pre>
-</blockquote>
-<p>makes the "start.sh" file belong to coderjoe on a
-UNIX system.</p>
-<blockquote>
+
+<p>Make the <samp>start.sh</samp> file belong to <samp>coderjoe</samp> on a UNIX system.</p>
+<pre>&lt;chown file="${dist}/start.sh" owner="coderjoe"/&gt;</pre>
+
+<p>Make all <samp>.sh</samp> files below <samp>${dist}/bin</samp> belong to <samp>coderjoe</samp> on
+a UNIX system.</p>
 <pre>
-    &lt;chown owner="coderjoe"&gt;
-      &lt;fileset dir="${dist}/bin" includes="**/*.sh"/&gt;
-    &lt;/chown&gt;
-</pre>
-</blockquote>
-<p>makes all ".sh" files below <code>${dist}/bin</code>
-belong to coderjoe on a UNIX system.</p>
-<blockquote>
+&lt;chown owner="coderjoe"&gt;
+  &lt;fileset dir="${dist}/bin" includes="**/*.sh"/&gt;
+&lt;/chown&gt;</pre>
+
+<p>Make all files below <samp>shared/sources1</samp> (except those below any directory
+named <samp>trial</samp>) belong to <samp>coderjoe</samp> on a UNIX system. In addition, all files
+belonging to a FileSet with <var>id</var>=<code>other.shared.sources</code> get the same owner.</p>
 <pre>
 &lt;chown owner="coderjoe"&gt;
   &lt;fileset dir="shared/sources1"&gt;
     &lt;exclude name="**/trial/**"/&gt;
   &lt;/fileset&gt;
   &lt;fileset refid="other.shared.sources"/&gt;
-&lt;/chown&gt;
-</pre>
-</blockquote>
-<p>makes all files below <code>shared/sources1</code> (except those
-below any directory named trial) belong to coderjoe on a UNIX 
-system. In addition all files belonging to a FileSet
-with <code>id</code> <code>other.shared.sources</code> get the same
-owner.</p>
+&lt;/chown&gt;</pre>
 
-<blockquote>
+<p>Make <samp>cgi</samp> scripts, files with a <samp>.old</samp> extension or directories beginning
+with <samp>private_</samp> belong to the user named <samp>webadmin</samp>. A directory ending
+in <samp>.old</samp> or a file beginning with <samp>private_</samp> would remain unaffected.</p>
 <pre>
 &lt;chown owner="webadmin" type="file"&gt;
   &lt;fileset dir="/web"&gt;
@@ -167,17 +145,7 @@
   &lt;dirset dir="/web"&gt;
     &lt;include name="**/private_*"/&gt;
   &lt;/dirset&gt;
-&lt;/chmod&gt;
-</pre>
-</blockquote>
-
-<p>makes cgi scripts, files with a <code>.old</code> extension or
-directories beginning with <code>private_</code> belong to the user named
-webadmin. A directory ending in <code>.old</code> or a file beginning with 
-<code>private_</code> would remain unaffected.</p>
-
-
+&lt;/chmod&gt;</pre>
 
 </body>
 </html>
-
diff --git a/manual/Tasks/clearcase.html b/manual/Tasks/clearcase.html
index 902d5ef..c3ca41f 100644
--- a/manual/Tasks/clearcase.html
+++ b/manual/Tasks/clearcase.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,86 +15,80 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-  <meta http-equiv="Content-Language" content="en-us">
   <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
-  <title>Clearcase Tasks</title>
+  <title>ClearCase Tasks</title>
 </head>
 
 <body>
 <h1>Apache Ant ClearCase Tasks</h1>
-<p>by:<br>
-Curtis White (cwhite at aracnet dot com),<br>
-Sean P. Kane (spkane at genomatica dot com),<br>
-Rob Anderson (Anderson.Rob at vectorscm dot com), and<br>
+<p>by:<br/>
+Curtis White (cwhite at aracnet dot com),<br/>
+Sean P. Kane (spkane at genomatica dot com),<br/>
+Rob Anderson (Anderson.Rob at vectorscm dot com), and<br/>
 Sean Egan    (sean at cm-logic dot com)</p>
 
-<p>Version 1.6 - 02/25/2003</p>
+<p>Version 1.6&mdash;02/25/2003</p>
 
 <h1>ClearCase Support</h1>
 <h2>Table of Contents</h2>
 <ul>
-  <li><A href="#introduction">Introduction</a>
-  <li><A href="#cccheckin">CCCheckin</a>
-  <li><A href="#cccheckout">CCCheckout</a>
-  <li><A href="#ccuncheckout">CCUnCheckout</a>
-  <li><A href="#ccupdate">CCUpdate</a>
-  <li><A href="#ccmklbtype">CCMklbtype</a>
-  <li><A href="#ccmklabel">CCMklabel</a>
-  <li><A href="#ccrmtype">CCRmtype</a>
-  <li><A href="#cclock">CCLock</a>
-  <li><A href="#ccunlock">CCUnlock</a>
-  <li><A href="#ccmkbl">CCMkbl</a>
-  <li><A href="#ccmkattr">CCMkattr</a>
-  <li><A href="#ccmkdir">CCMkdir</a>
-  <li><A href="#ccmkelem">CCMkelem</a></li>
+  <li><a href="#introduction">Introduction</a>
+  <li><a href="#cccheckin">CCCheckin</a>
+  <li><a href="#cccheckout">CCCheckout</a>
+  <li><a href="#ccuncheckout">CCUnCheckout</a>
+  <li><a href="#ccupdate">CCUpdate</a>
+  <li><a href="#ccmklbtype">CCMklbtype</a>
+  <li><a href="#ccmklabel">CCMklabel</a>
+  <li><a href="#ccrmtype">CCRmtype</a>
+  <li><a href="#cclock">CCLock</a>
+  <li><a href="#ccunlock">CCUnlock</a>
+  <li><a href="#ccmkbl">CCMkbl</a>
+  <li><a href="#ccmkattr">CCMkattr</a>
+  <li><a href="#ccmkdir">CCMkdir</a>
+  <li><a href="#ccmkelem">CCMkelem</a></li>
 
 </ul>
 
-<hr>
-<h2><a name="introduction">Introduction</a></h2>
-<p>Apache Ant provides several optional tasks for working with ClearCase. These tasks correspond to various
-ClearCase commands using the Cleartool program. The current tasks available for Ant correspond to only
-a few of the significant ClearCase commands.</p>
+<hr/>
+<h2 id="introduction">Introduction</h2>
+<p>Apache Ant provides several optional tasks for working with ClearCase. These tasks correspond to
+various ClearCase commands using the <kbd>cleartool</kbd> program. The current tasks available for
+Ant correspond to only a few of the significant ClearCase commands.</p>
 
-<p>More tasks can be easily added by deriving from the ClearCase class and then adding
-functionality that is specific to that ClearCase command.</p>
-<p>
-    Important: these tasks all require <code>cleartool</code> on the command line.
-    If a task fails with an IOException, especially error code 2 on Windows,
-    this is your problem.
-</p>
+<p>More tasks can be easily added by deriving from the ClearCase class and then adding functionality
+that is specific to that ClearCase command.</p>
+<p>Important: these tasks all require <kbd>cleartool</kbd> on the command line.  If a task fails
+with an <code>IOException</code>, especially <code>error=2</code> on Windows, this is your
+problem.</p>
 
+<hr/>
 
-<hr>
-<h2><a name="cccheckin">CCCheckin</a></h2>
+<h2 id="cccheckin">CCCheckin</h2>
 <h3>Description</h3>
-Task to perform a "cleartool checkin" command to ClearCase.
+<p>Task to perform a <kbd>cleartool checkin</kbd> command to ClearCase.</p>
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <th>Attribute</th>
-    <th>Values</th>
-    <th>Required</th>
+    <th scope="col">Attribute</th>
+    <th scope="col">Values</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
     <td>viewpath</td>
-    <td>Path to the ClearCase view file or directory that the command
-        will operate on</td>
+    <td>Path to the ClearCase view file or directory that the command will operate on</td>
     <td>No</td>
   </tr>
   <tr>
     <td>comment</td>
-    <td>Specify a comment. Only one of comment or commentfile may be used.</td>
-    <td>No</td>
+    <td>Specify a comment</td>
+    <td rowspan="2">No; only one of the two may be used</td>
   </tr>
   <tr>
     <td>commentfile</td>
-    <td>Specify a file containing a comment. Only one of comment or commentfile
-        may be used.</td>
-    <td>No</td>
+    <td class="left">Specify a file containing a comment</td>
   </tr>
   <tr>
     <td>nowarn</td>
@@ -107,49 +102,47 @@
   </tr>
   <tr>
     <td>keepcopy</td>
-    <td>Keeps a copy of the file with a .keep extension</td>
+    <td>Keeps a copy of the file with a <samp>.keep</samp> extension</td>
     <td>No</td>
   </tr>
   <tr>
     <td>identical</td>
-    <td>Allows the file to be checked in even if it is identical
-        to the original</td>
+    <td>Allows the file to be checked in even if it is identical to the original</td>
     <td>No</td>
   </tr>
   <tr>
     <td>failonerr</td>
-    <td>Throw an exception if the command fails. Default is true</td>
-    <td>No</td>
+    <td>Throw an exception if the command fails</td>
+    <td>No; default is <q>true</q></td>
   </tr>
 </table>
 <h3>Examples</h3>
-<blockquote>
+
+<p>Perform a ClearCase <code>checkin</code> on the file <samp>c:/views/viewdir/afile</samp>. Comment
+text from the file <samp>acomment.txt</samp> is added to ClearCase as a comment. All warning
+messages are suppressed. The file is checked in even if it is <em>identical</em> to the
+original.</p>
 <pre>
 &lt;cccheckin viewpath="c:/views/viewdir/afile"
-        commentfile="acomment.txt"
-        nowarn="true"
-        identical="true"/&gt;
-</pre>
-</blockquote>
-<p>Does a ClearCase <i>checkin</i> on the file <i>c:/views/viewdir/afile</i>.
-Comment text from the file <i>acomment.txt</i> is added to ClearCase as a comment.
-All warning messages are suppressed. The file is checked in even if it is
-<i>identical</i> to the original.</p>
-<hr>
-<h2><a name="cccheckout">CCCheckout</a></h2>
+           commentfile="acomment.txt"
+           nowarn="true"
+           identical="true"/&gt;</pre>
+
+<hr/>
+
+<h2 id="cccheckout">CCCheckout</h2>
 <h3>Description</h3>
-Task to perform a "cleartool checkout" command to ClearCase.
+<p>Task to perform a <kbd>cleartool checkout</kbd> command to ClearCase.</p>
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <th>Attribute</th>
-    <th>Values</th>
-    <th>Required</th>
+    <th scope="col">Attribute</th>
+    <th scope="col">Values</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
     <td>viewpath</td>
-    <td>Path to the ClearCase view file or directory that the command
-        will operate on</td>
+    <td>Path to the ClearCase view file or directory that the command will operate on</td>
     <td>No</td>
   </tr>
   <tr>
@@ -164,8 +157,7 @@
   </tr>
   <tr>
     <td>nodata</td>
-    <td>Checks out the file but does not create an editable file
-        containing its data</td>
+    <td>Checks out the file but does not create an editable file containing its data</td>
     <td>No</td>
   </tr>
   <tr>
@@ -175,7 +167,8 @@
   </tr>
   <tr>
     <td>version</td>
-    <td>Allows checkout of a version other than main latest</td>
+    <td>Allows checkout of a version other than <code>/main/LATEST</code> (or whatever is selected
+    by a config spec)</td>
     <td>No</td>
   </tr>
   <tr>
@@ -185,96 +178,86 @@
   </tr>
   <tr>
     <td>comment</td>
-    <td>Specify a comment. Only one of comment or commentfile may be used.</td>
-    <td>No</td>
+    <td>Specify a comment</td>
+    <td rowspan="2">No; only one of the two may be used</td>
   </tr>
   <tr>
     <td>commentfile</td>
-    <td>Specify a file containing a comment. Only one of comment or
-        commentfile may be used.</td>
-    <td>No</td>
+    <td class="left">Specify a file containing a comment</td>
   </tr>
   <tr>
     <td>notco</td>
-    <td>Fail if it's already checked out to the current view. Set to false to ignore it.<br>
-    Since ant 1.6.1</td>
-    <td>No</td>
+    <td>Fail if it's already checked out to the current view. Set to <q>false</q> to ignore
+    it.<br/><em>Since Ant 1.6.1</em></td>
+    <td>No; default is <q>true</q></td>
   </tr>
   <tr>
     <td>failonerr</td>
-    <td>Throw an exception if the command fails. Default is true.<br>
-    Since ant 1.6.1</td>
-    <td>No</td>
+    <td>Throw an exception if the command fails.<br/><em>Since Ant 1.6.1</em></td>
+    <td>No; default is <q>true</q></td>
   </tr>
 </table>
 <h3>Examples</h3>
-<blockquote>
+
+<p>Perform a ClearCase <code>checkout</code> on the file <samp>c:/views/viewdir/afile</samp>. It is
+checked out as <em>reserved</em> on branch called <samp>abranch</samp>. All warning messages are
+suppressed. A &quot;<samp>Some comment text</samp>&quot; is added to ClearCase as a comment.</p>
 <pre>
 &lt;cccheckout viewpath="c:/views/viewdir/afile"
-        reserved="true"
-        branch="abranch"
-        nowarn="true"
-        comment="Some comment text"/&gt;
-</pre>
-</blockquote>
-<p>Does a ClearCase <i>checkout</i> on the file <i>c:/views/viewdir/afile</i>.
-It is checked out as <i>reserved</i> on branch called <i>abranch</i>. All
-warning messages are suppressed. A <i>Some comment text</i> is added to
-ClearCase as a comment.</p>
-<hr>
-<h2><a name="ccuncheckout">CCUnCheckout</a></h2>
+            reserved="true"
+            branch="abranch"
+            nowarn="true"
+            comment="Some comment text"/&gt;</pre>
+
+<hr/>
+
+<h2 id="ccuncheckout">CCUnCheckout</h2>
 <h3>Description</h3>
-Task to perform a UnCheckout command to ClearCase.
+<p>Task to perform a <kbd>cleartool uncheckout</kbd> command to ClearCase.</p>
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <th>Attribute</th>
-    <th>Values</th>
-    <th>Required</th>
+    <th scope="col">Attribute</th>
+    <th scope="col">Values</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
     <td>viewpath</td>
-    <td>Path to the ClearCase view file or directory that the command
-        will operate on</td>
+    <td>Path to the ClearCase view file or directory that the command will operate on</td>
     <td>No</td>
   </tr>
   <tr>
     <td>keepcopy</td>
-    <td>Specifies whether to keep a copy of the file with a .keep
-        extension or not</td>
+    <td>Specifies whether to keep a copy of the file with a <samp>.keep</samp> extension or not</td>
     <td>No</td>
   </tr>
   <tr>
     <td>failonerr</td>
-    <td>Throw an exception if the command fails. Default is true<br>
-    Since ant 1.6.1</td>
-    <td>No</td>
+    <td>Throw an exception if the command fails.<br/><em>Since Ant 1.6.1</em></td>
+    <td>No; default is <q>true</q></td>
   </tr>
 </table>
 <h3>Examples</h3>
-<blockquote>
-<pre>
-&lt;ccuncheckout viewpath="c:/views/viewdir/afile"
-        keepcopy="true"/&gt;
-</pre>
-</blockquote>
-<p>Does a ClearCase <i>uncheckout</i> on the file <i>c:/views/viewdir/afile</i>.
-A copy of the file called <i>c:/views/viewdir/afile.keep</i> is kept.</p>
-<hr>
-<h2><a name="ccupdate">CCUpdate</a></h2>
+
+<p>Perform a ClearCase <code>uncheckout</code> on the file <samp>c:/views/viewdir/afile</samp>. A
+copy of the file named <samp>c:/views/viewdir/afile.keep</samp> is kept.</p>
+<pre>&lt;ccuncheckout viewpath="c:/views/viewdir/afile" keepcopy="true"/&gt;</pre>
+
+<hr/>
+
+<h2 id="ccupdate">CCUpdate</h2>
 <h3>Description</h3>
-Task to perform an "cleartool update" command to ClearCase.
+<p>Task to perform an <kbd>cleartool update</kbd> command to ClearCase.</p>
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <th>Attribute</th>
-    <th>Values</th>
-    <th>Required</th>
+    <th scope="col">Attribute</th>
+    <th scope="col">Values</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
     <td>viewpath</td>
-    <td>Path to the ClearCase snapshot view file or directory that the command
-        will operate on</td>
+    <td>Path to the ClearCase snapshot view file or directory that the command will operate on</td>
     <td>No</td>
   </tr>
   <tr>
@@ -294,665 +277,629 @@
   </tr>
   <tr>
     <td>rename</td>
-    <td>Specifies that hijacked files should be renamed with a .keep extension</td>
+    <td>Specifies that hijacked files should be renamed with a <samp>.keep</samp> extension</td>
     <td>No</td>
   </tr>
   <tr>
     <td>currenttime</td>
-    <td>Specifies that modification time should be written as the
-        current time. Either currenttime or preservetime can be
-        specified.</td>
+    <td>Specifies that modification time should be written as the current time. Mutually exclusive
+    with <var>preservetime</var>.</td>
     <td>No</td>
   </tr>
   <tr>
     <td>preservetime</td>
-    <td>Specifies that modification time should preserved from the
-        VOB time. Either currenttime or preservetime can be
-        specified.</td>
+    <td>Specifies that modification time should preserved from the VOB time. Mutually exclusive
+    with <var>currenttime</var>.</td>
     <td>No</td>
   </tr>
   <tr>
     <td>failonerr</td>
-    <td>Throw an exception if the command fails. Default is true.<br>
-    Since ant 1.6.1</td>
-    <td>No</td>
+    <td>Throw an exception if the command fails.<br/>  <em>Since Ant 1.6.1</em></td>
+    <td>No; default is <q>true</q></td>
   </tr>
 </table>
 <h3>Examples</h3>
-<blockquote>
+
+<p>Perform a ClearCase <code>update</code> on the snapshot view
+directory <samp>c:/views/viewdir</samp>. A graphical dialog will be displayed. The output will be
+logged to <samp>log.log</samp> and it will overwrite any hijacked files. The modified time will be
+set to the current time.</p>
 <pre>
 &lt;ccupdate viewpath="c:/views/viewdir"
-        graphical="false"
-        log="log.log"
-        overwrite="true"
-        currenttime="true"
-        rename="false"/&gt;
-</pre>
-</blockquote>
-<p>Does a ClearCase <i>update</i> on the snapshot view directory <i>c:/views/viewdir</i>.
-A graphical dialog will be displayed. The output will be logged to
-<i>log.log</i> and it will overwrite any hijacked files. The modified
-time will be set to the current time.</p>
+          graphical="false"
+          log="log.log"
+          overwrite="true"
+          currenttime="true"
+          rename="false"/&gt;</pre>
 
+<hr/>
 
-
-<hr>
-<h2><a name="ccmklbtype">CCMklbtype</a></h2>
+<h2 id="ccmklbtype">CCMklbtype</h2>
 <h3>Description</h3>
-Task to perform a "mklbtype" command to ClearCase.
+<p>Task to perform a <kbd>cleartool mklbtype</kbd> command to ClearCase.</p>
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <th>Attribute</th>
-    <th>Values</th>
-    <th>Required</th>
+    <th scope="col">Attribute</th>
+    <th scope="col">Values</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
     <td>typename</td>
     <td>Name of the label type to create</td>
     <td>Yes</td>
-  <tr>
+  </tr>
   <tr>
     <td>vob</td>
     <td>Name of the VOB</td>
     <td>No</td>
-  <tr>
+  </tr>
   <tr>
     <td>replace</td>
     <td>Replace an existing label definition of the same type</td>
     <td>No</td>
-  <tr>
+  </tr>
   <tr>
     <td>global</td>
-    <td>Either global or ordinary can be specified, not both. Creates a label type that is global to the VOB or to VOBs that use this VOB</td>
-    <td>No</td>
-  <tr>
+    <td>Creates a label type that is global to the VOB or to VOBs that use this VOB.</td>
+    <td rowspan="2">No; only one of the two may be used,
+    default <var>ordinary</var>=<q>true</q></td>
+  </tr>
   <tr>
     <td>ordinary</td>
-    <td>Either global or ordinary can be specified, not both. Creates a label type that can be used only in the current VOB. <B>Default</B></td>
-    <td>No</td>
-  <tr>
+    <td class="left">Creates a label type that can be used only in the current VOB.</td>
+  </tr>
   <tr>
     <td>pbranch</td>
     <td>Allows the label type to be used once per branch in a given element's version tree</td>
     <td>No</td>
-  <tr>
+  </tr>
   <tr>
     <td>shared</td>
-    <td>Sets the way mastership is checked by ClearCase. See ClearCase documentation for details</td>
+    <td>Sets the way mastership is checked by ClearCase. See ClearCase documentation for
+    details</td>
     <td>No</td>
-  <tr>
+  </tr>
   <tr>
     <td>comment</td>
-    <td>Specify a comment. Only one of comment or cfile may be used.</td>
-    <td>No</td>
-  <tr>
+    <td>Specify a comment</td>
+    <td rowspan="2">No; only one of the two may be used</td>
+  </tr>
   <tr>
     <td>commentfile</td>
-    <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
-    <td>No</td>
-  <tr></tr>
+    <td class="left">Specify a file containing a comment</td>
+  </tr>
   <tr>
     <td>failonerr</td>
-    <td>Throw an exception if the command fails. Default is true<br>
-    Since ant 1.6.1</td>
-    <td>No</td>
+    <td>Throw an exception if the command fails.<br/><em>Since Ant 1.6.1</em></td>
+    <td>No; default is <q>true</q></td>
   </tr>
 </table>
 
 <h3>Examples</h3>
-<blockquote>
+
+<p>Perform a ClearCase <code>mklbtype</code> to create a label type named <samp>VERSION_1</samp>. It
+is created as <em>ordinary</em> so it is available only to the current VOB. The text <q>Development
+version 1</q> is added as a comment.</p>
 <pre>
 &lt;ccmklbtype typename="VERSION_1"
-        ordinary="true"
-        comment="Development version 1"/&gt;
-</pre>
-</blockquote>
-<p>Does a ClearCase <i>mklbtype</i> to create a label type named <i>VERSION_1</i>.
-It is created as <i>ordinary</i> so it is available only to the current VOB.
-The text <i>Development version 1</i> is added as a comment.</p>
+            ordinary="true"
+            comment="Development version 1"/&gt;</pre>
 
+<hr/>
 
-<hr>
-<h2><a name="ccmklabel">CCMklabel</a></h2>
+<h2 id="ccmklabel">CCMklabel</h2>
 <h3>Description</h3>
-Task to perform a "mklabel" command to ClearCase.
+<p>Task to perform a <kbd>cleartool mklabel</kbd> command to ClearCase.</p>
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <th>Attribute</th>
-    <th>Values</th>
-    <th>Required</th>
+    <th scope="col">Attribute</th>
+    <th scope="col">Values</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
     <td>typename</td>
     <td>Name of the label type</td>
     <td>Yes</td>
-  <tr>
+  </tr>
   <tr>
     <td>viewpath</td>
     <td>Path to the ClearCase view file or directory that the command will operate on</td>
     <td>No</td>
-  <tr>
+  </tr>
   <tr>
     <td>replace</td>
     <td>Replace a label of the same type on the same branch</td>
     <td>No</td>
-  <tr>
+  </tr>
   <tr>
     <td>recurse</td>
-    <td>Process each subdirectory under viewpath</td>
+    <td>Process each subdirectory under <var>viewpath</var></td>
     <td>No</td>
-  <tr>
+  </tr>
   <tr>
     <td>version</td>
     <td>Identify a specific version to attach the label to</td>
     <td>No</td>
-  <tr>
+  </tr>
   <tr>
     <td>vob</td>
     <td>Name of the VOB</td>
     <td>No</td>
-  <tr>
+  </tr>
   <tr>
     <td>comment</td>
-    <td>Specify a comment. Only one of comment or cfile may be used.</td>
-    <td>No</td>
-  <tr>
+    <td>Specify a comment</td>
+    <td rowspan="2">No; only one of the two may be used</td>
+  </tr>
   <tr>
     <td>commentfile</td>
-    <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
-    <td>No</td>
-  <tr></tr>
+    <td class="left">Specify a file containing a comment</td>
+  </tr>
   <tr>
     <td>failonerr</td>
-    <td>Throw an exception if the command fails. Default is true<br>
-    Since ant 1.6.1</td>
-    <td>No</td>
+    <td>Throw an exception if the command fails.<br/><em>Since Ant 1.6.1</em></td>
+    <td>No; default is <q>true</q></td>
   </tr>
 </table>
 
 <h3>Examples</h3>
-<blockquote>
+
+<p>Perform a ClearCase <code>mklabel</code> on the file <samp>c:/views/viewdir/afile</samp> under
+the <samp>main</samp> branch for version 2 (<samp>\main\2</samp>). Text &quot;<samp>Some comment
+text</samp>&quot; is added as a comment. It will <em>recurse</em> all subdirectories.</p>
 <pre>
 &lt;ccmklabel viewpath="c:/views/viewdir/afile"
-        comment="Some comment text"
-        recurse="true"
-        version="\main\2"
-        typename="VERSION_1"/&gt;
+           comment="Some comment text"
+           recurse="true"
+           version="\main\2"
+           typename="VERSION_1"/&gt;
 </pre>
-</blockquote>
-<p>Does a ClearCase <i>mklabel</i> on the file <i>c:/views/viewdir/afile</i> under
-the main branch for version 2 (<i>\main\2</i>). Text <i>Some comment text</i> is added
-as a comment. It will <i>recurse</i> all subdirectories.
 
+<hr/>
 
-<hr>
-<h2><a name="ccrmtype">CCRmtype</a></h2>
+<h2 id="ccrmtype">CCRmtype</h2>
 <h3>Description</h3>
-Task to perform a "rmtype" command to ClearCase.
+<p>Task to perform a <kbd>cleartool rmtype</kbd> command to ClearCase.</p>
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <th>Attribute</th>
-    <th>Values</th>
-    <th>Required</th>
+    <th scope="col">Attribute</th>
+    <th scope="col">Values</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
     <td>typekind</td>
     <td>The kind of type to create. Valid types are:
-      <table border="0" width="40%">
+      <table>
         <tr>
-          <td width="15%"> </td>
-          <td><b>attype</b><br>
-              <b>brtype</b><br>
-              <b>eltype</b><br>
-              <b>hltype</b><br>
-              <b>lbtype</b><br>
-              <b>trtype</b>
-          </td>
-          <td>- <br>
-              - <br>
-              - <br>
-              - <br>
-              - <br>
-              -
-          </td>
-          <td>attribute type<br>
-              branch type<br>
-              element type<br>
-              hyperlink type<br>
-              label type<br>
-              trigger type
-          </td>
+          <th scope="col">Kind</th>
+          <th scope="col">Description</th>
         </tr>
-      </table>
-    </td>
+        <tr>
+          <td><q>attype</q></td>
+          <td>attribute type</td>
+        </tr>
+        <tr>
+          <td><q>brtype</q></td>
+          <td>branch type</td>
+        </tr>
+        <tr>
+          <td><q>eltype</q></td>
+          <td>element type</td>
+        </tr>
+        <tr>
+          <td><q>hltype</q></td>
+           <td>hyperlink type</td>
+        </tr>
+        <tr>
+          <td><q>lbtype</q></td>
+          <td>label type</td>
+        </tr>
+        <tr>
+          <td><q>trtype</q></td>
+          <td>trigger type</td>
+        </tr>
+      </table></td>
     <td>Yes</td>
-  <tr>
+  </tr>
   <tr>
     <td>typename</td>
     <td>The name of the type to remove</td>
     <td>Yes</td>
-  <tr>
+  </tr>
   <tr>
     <td>ignore</td>
-    <td>Used with trigger types only. Forces removal of trigger type even if a pre-operation trigger would prevent its removal</td>
+    <td>Used with trigger types only. Forces removal of trigger type even if a pre-operation trigger
+    would prevent its removal</td>
     <td>No</td>
-  <tr>
+  </tr>
   <tr>
     <td>rmall</td>
     <td>Removes all instances of a type and the type object itself</td>
     <td>No</td>
-  <tr>
+  </tr>
   <tr>
     <td>comment</td>
-    <td>Specify a comment. Only one of comment or cfile may be used.</td>
-    <td>No</td>
-  <tr>
+    <td>Specify a comment</td>
+    <td rowspan="2">No; only one of the two may be used</td>
+  </tr>
   <tr>
     <td>commentfile</td>
-    <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
-    <td>No</td>
-  <tr></tr>
+    <td class="left">Specify a file containing a comment</td>
+  </tr>
   <tr>
     <td>failonerr</td>
-    <td>Throw an exception if the command fails. Default is true
-    Since ant 1.6.1</td>
-    <td>No</td>
+    <td>Throw an exception if the command fails.  <em>Since Ant 1.6.1</em></td>
+    <td>No; default is <q>true</q></td>
   </tr>
 </table>
 
 <h3>Examples</h3>
-<blockquote>
+
+<p>Perform a ClearCase <code>rmtype</code> to remove a label type (<q>lbtype</q>)
+named <samp>VERSION_1</samp>. Comment text from the file <samp>acomment.txt</samp> is added as a
+comment. All instances of the type are removed, including the type object itself.</p>
 <pre>
 &lt;ccrmtype typekind="lbtype"
-        typename="VERSION_1"
-        commentfile="acomment.txt"
-        rmall="true"/&gt;
-</pre>
-</blockquote>
-<p>Does a ClearCase <i>rmtype</i> to remove a label type (<i>lbtype</i>) named <i>VERSION_1</i>.
-Comment text from the file <i>acomment.txt</i> is added as a comment. All instances of the type
-are removed, including the type object itself.</p>
-<hr>
+          typename="VERSION_1"
+          commentfile="acomment.txt"
+          rmall="true"/&gt;</pre>
 
-<h2><a name="cclock">CCLock</a></h2>
+<hr/>
+
+<h2 id="cclock">CCLock</h2>
 <h3>Description</h3>
-Task to perform a "cleartool lock" command to ClearCase.
+<p>Task to perform a <kbd>cleartool lock</kbd> command to ClearCase.</p>
 <h3>Parameters</h3>
- <table border="1" cellpadding="2" cellspacing="0">
-   <tr>
-     <th>Attribute</th>
-     <th>Values</th>
-     <th>Required</th>
-   </tr>
-   <tr>
-      <td>replace</td>
-      <td>Specifies replacing an existing lock</td>
-      <td>No</td>
-   <tr>
-   <tr>
-      <td>nusers</td>
-      <td>Specifies user(s) who can still modify the object</td>
-      <td>No</td>
-   <tr>
-   <tr>
-      <td>obsolete</td>
-      <td>Specifies that the object should be marked obsolete</td>
-      <td>No</td>
-   <tr>
-   <tr>
-      <td>comment</td>
-      <td>Specifies how to populate comments fields</td>
-      <td>No</td>
-   <tr>
-   <tr>
-      <td>pname</td>
-      <td>Specifies the object pathname to be locked.</td>
-      <td>No</td>
-   <tr>
-      <td>objselect</td>
-      <td>This variable is obsolete. Should use <i>objsel</i> instead.</td>
-      <td>No</td>
-   <tr>
-   <tr>
-      <td>objsel</td>
-      <td>Specifies the object(s) to be locked.<br>
-      Since ant 1.6.1</td>
-      <td>No</td>
-   <tr>
+<table class="attr">
   <tr>
-    <td>failonerr</td>
-    <td>Throw an exception if the command fails. Default is true.<br>
-    Since ant 1.6.1</td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Values</th>
+    <th scope="col">Required</th>
+  </tr>
+  <tr>
+    <td>replace</td>
+    <td>Specifies replacing an existing lock</td>
     <td>No</td>
   </tr>
-
- </table>
-<h3>Examples</h3>
-<blockquote>
-<pre>
-&lt;cclock
-    objsel="stream:Application_Integration@\MyProject_PVOB"
-    /&gt;
-</pre>
-</blockquote>
-<p>Does a ClearCase <i>lock</i> on the object <i>stream:Application_Integration@\MyProject_PVOB</i>.</p>
-<hr>
-
-<h2><a name="ccunlock">CCUnlock</a></h2>
-<h3>Description</h3>
-Task to perform a "cleartool unlock" command to ClearCase.
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-   <tr>
-     <th>Attribute</th>
-     <th>Values</th>
-     <th>Required</th>
-   </tr>
-   <tr>
-      <td>comment</td>
-      <td>Specifies how to populate comments fields</td>
-      <td>No</td>
-   <tr>
-   <tr>
-      <td>pname</td>
-      <td>Specifies the object pathname to be unlocked.</td>
-      <td>No</td>
-   <tr>
-      <td>objselect</td>
-      <td>This variable is obsolete. Should use <i>objsel</i> instead.</td>
-      <td>No</td>
-   <tr>
-   <tr>
-      <td>objsel</td>
-      <td>Specifies the object(s) to be unlocked.<br>
-      Since ant 1.6.1</td>
-      <td>No</td>
-   <tr>
   <tr>
-    <td>failonerr</td>
-    <td>Throw an exception if the command fails. Default is true.<br>
-    Since ant 1.6.1</td>
+    <td>nusers</td>
+    <td>Specifies user(s) who can still modify the object</td>
     <td>No</td>
   </tr>
-
- </table>
- <h3>Examples</h3>
-<blockquote>
-<pre>
-&lt;ccunlock
-    objsel="stream:Application_Integration@\MyProject_PVOB"
-    /&gt;
-</pre>
-</blockquote>
-<p>Does a ClearCase <i>unlock</i> on the object <i>stream:Application_Integration@\MyProject_PVOB</i>.</p>
-<hr>
-
-<h2><a name="ccmkbl">CCMkbl</a></h2>
-<h3>Description</h3>
-Task to perform a "cleartool mkbl" command to ClearCase.
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-   <tr>
-     <th>Attribute</th>
-     <th>Values</th>
-     <th>Required</th>
-   </tr>
-   <tr>
-      <td>comment</td>
-      <td>Specify a comment. Only one of comment or cfile may be
-used.</td>
-      <td>No</td>
-   </tr>
-   <tr>
-      <td>commentfile</td>
-      <td>Specify a file containing a comment. Only one of comment or
-cfile may be used.</td>
-      <td>No</td>
-   </tr>
-   <tr>
-      <td>baselinerootname</td>
-      <td>Specify the name to be associated with the baseline.</td>
-      <td>Yes</td>
-   </tr>
-   <tr>
-      <td>nowarn</td>
-      <td>Suppress warning messages</td>
-      <td>No</td>
-   <tr>
-   <tr>
-      <td>identical</td>
-      <td>Allows the baseline to be created even if it is identical to the
-previous baseline.</td>
-      <td>No</td>
-   </tr>
-   <tr>
-      <td>full</td>
-      <td>Creates a full baseline.</td>
-      <td>No</td>
-   </tr>
-   <tr>
-      <td>nlabel</td>
-      <td>Allows the baseline to be created without a label.</td>
-      <td>No</td>
-   </tr>
   <tr>
-    <td>failonerr</td>
-    <td>Throw an exception if the command fails. Default is true.<br>
-    Since ant 1.6.1</td>
+    <td>obsolete</td>
+    <td>Specifies that the object should be marked obsolete</td>
     <td>No</td>
   </tr>
- </table>
+  <tr>
+    <td>comment</td>
+    <td>Specifies how to populate comments fields</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>pname</td>
+    <td>Specifies the object pathname to be locked.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>objselect</td>
+    <td><em>Obsolete</em>. Use <var>objsel</var> instead.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>objsel</td>
+    <td>Specifies the object(s) to be locked.<br/><em>Since Ant 1.6.1</em></td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails.<br/><em>Since Ant 1.6.1</em></td>
+    <td>No; default is <q>true</q></td>
+  </tr>
+</table>
 <h3>Examples</h3>
-<blockquote>
-<pre>
-&lt;ccmkbl
-    baselinerootname="Application_Baseline_AUTO"
-    identical="yes"
-    full="no"
-    viewpath="v:\ApplicationCC"
-    /&gt;
-</pre>
-</blockquote>
-<p>Does a ClearCase <i>mkbl</i> on the Integration view at <i>v:\ApplicationCC</i>
-even if it is <i>identical</i> to a previous baseline. The new baseline with be
-incremental and named "Application_Baseline_AUTO".</p>
-<hr>
 
-<h2><a name="ccmkattr">CCMkattr</a></h2>
+<p>Perform a ClearCase <code>lock</code> on the
+object <samp>stream:Application_Integration@\MyProject_PVOB</samp>.</p>
+<pre>&lt;cclock objsel="stream:Application_Integration@\MyProject_PVOB"/&gt;</pre>
+
+<hr/>
+
+<h2 id="ccunlock">CCUnlock</h2>
 <h3>Description</h3>
-Task to perform a &quot;cleartool mkattr&quot; command to ClearCase.<br>
-Since ant 1.6.1
+<p>Task to perform a <kbd>cleartool unlock</kbd> command to ClearCase.</p>
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-   <tr>
-     <th>Attribute</th>
-     <th>Values</th>
-     <th>Required</th>
-   </tr>
-   <tr>
-      <td>viewpath</td>
-      <td>Path to the ClearCase view file or directory that the command will operate on</td>
-      <td>Yes</td>
-   </tr>
-   <tr>
-      <td>replace</td>
-      <td>Replace the value of the attribute if it already exists</td>
-      <td>No</td>
-   </tr>
-   <tr>
-      <td>recurse</td>
-      <td>Process each subdirectory under viewpath</td>
-      <td>No</td>
-   </tr>
-   <tr>
-      <td>version</td>
-      <td>Identify a specific version to attach the attribute to</td>
-      <td>No</td>
-   </tr>
-   <tr>
-      <td>typename</td>
-      <td>Name of the attribute type</td>
-      <td>Yes</td>
-   </tr>
-   <tr>
-      <td>typevalue</td>
-      <td>Value to attach to the attribute type</td>
-      <td>Yes</td>
-   </tr>
-   <tr>
-      <td>comment</td>
-      <td>Specify a comment. Only one of comment or cfile may be used.</td>
-      <td>No</td>
-   </tr>
-   <tr>
-      <td>commentfile</td>
-      <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
-      <td>No</td>
-   </tr>
-   <tr>
-      <td>failonerr</td>
-      <td>Throw an exception if the command fails. Default is true</td>
-      <td>No</td>
-   </tr>
- </table>
+<table class="attr">
+  <tr>
+    <th scope="col">Attribute</th>
+    <th scope="col">Values</th>
+    <th scope="col">Required</th>
+  </tr>
+  <tr>
+    <td>comment</td>
+    <td>Specifies how to populate comments fields</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>pname</td>
+    <td>Specifies the object pathname to be unlocked.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>objselect</td>
+    <td><em>Obsolete</em>. Use <var>objsel</var> instead.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>objsel</td>
+    <td>Specifies the object(s) to be unlocked.<br/><em>Since Ant 1.6.1</em></td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails.<br/><em>Since Ant 1.6.1</em></td>
+    <td>No; default is <q>true</q></td>
+  </tr>
+</table>
 <h3>Examples</h3>
-<blockquote>
+
+<p>Perform a ClearCase <code>unlock</code> on the
+object <samp>stream:Application_Integration@\MyProject_PVOB</samp>.</p>
+<pre>&lt;ccunlock objsel="stream:Application_Integration@\MyProject_PVOB"/&gt;</pre>
+
+<hr/>
+
+<h2 id="ccmkbl">CCMkbl</h2>
+<h3>Description</h3>
+<p>Task to perform a <kbd>cleartool mkbl</kbd> command to ClearCase.</p>
+<h3>Parameters</h3>
+<table class="attr">
+  <tr>
+    <th scope="col">Attribute</th>
+    <th scope="col">Values</th>
+    <th scope="col">Required</th>
+  </tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment</td>
+    <td rowspan="2">No; only one of the two may be used</td>
+  </tr>
+  <tr>
+    <td>commentfile</td>
+    <td class="left">Specify a file containing a comment</td>
+  </tr>
+  <tr>
+    <td>baselinerootname</td>
+    <td>Specify the name to be associated with the baseline.</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td>nowarn</td>
+    <td>Suppress warning messages</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>identical</td>
+    <td>Allows the baseline to be created even if it is identical to the previous baseline.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>full</td>
+    <td>Creates a full baseline.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>nlabel</td>
+    <td>Allows the baseline to be created without a label.</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails.<br/><em>Since Ant 1.6.1</em></td>
+    <td>No; default is <q>true</q></td>
+  </tr>
+</table>
+<h3>Examples</h3>
+
+<p>Perform a ClearCase <code>mkbl</code> on the Integration view at <samp>v:\ApplicationCC</samp>
+even if it is <em>identical</em> to a previous baseline. The new baseline with be incremental and
+named <samp>Application_Baseline_AUTO</samp>.</p>
+<pre>
+&lt;ccmkbl baselinerootname="Application_Baseline_AUTO"
+        identical="yes"
+        full="no"
+        viewpath="v:\ApplicationCC"/&gt;</pre>
+
+<hr/>
+
+<h2 id="ccmkattr">CCMkattr</h2>
+<p><em>Since Ant 1.6.1</em></p>
+<h3>Description</h3>
+<p>Task to perform a <kbd>cleartool mkattr</kbd> command to ClearCase.</p>
+<h3>Parameters</h3>
+<table class="attr">
+  <tr>
+    <th scope="col">Attribute</th>
+    <th scope="col">Values</th>
+    <th scope="col">Required</th>
+  </tr>
+  <tr>
+    <td>viewpath</td>
+    <td>Path to the ClearCase view file or directory that the command will operate on</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td>replace</td>
+    <td>Replace the value of the attribute if it already exists</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>recurse</td>
+    <td>Process each subdirectory under <var>viewpath</var></td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>version</td>
+    <td>Identify a specific version to attach the attribute to</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>typename</td>
+    <td>Name of the attribute type</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td>typevalue</td>
+    <td>Value to attach to the attribute type</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment</td>
+    <td rowspan="2">No; only one of the two may be used</td>
+  </tr>
+  <tr>
+    <td>commentfile</td>
+    <td class="left">Specify a file containing a comment</td>
+  </tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails.</td>
+    <td>No; default is <q>true</q></td>
+  </tr>
+</table>
+<h3>Examples</h3>
+
+<p>Perform a ClearCase <code>mkattr</code> on the file <samp>c:/views/viewdir/afile</samp> and
+attach the attribute <samp>BugFix</samp> with a value of <samp>34445</samp> to it.</p>
 <pre>
 &lt;ccmkattr viewpath=&quot;c:/views/viewdir/afile&quot;
-    typename=&quot;BugFix&quot;
-    typevalue=&quot;34445&quot;
-    /&gt;
+          typename=&quot;BugFix&quot;
+          typevalue=&quot;34445&quot;/&gt;
 </pre>
-</blockquote>
-<p>Does a ClearCase <i>mkattr</i> on the file <i>c:/views/viewdir/afile</i> and
-attaches the attribute <i>BugFix</i> with a value of <i>34445</i> to it.</p>
-<hr>
 
-<h2><a name="ccmkdir">CCMkdir</a></h2>
+<hr/>
+
+<h2 id="ccmkdir">CCMkdir</h2>
+<p><em>Since Ant 1.6.1</em></p>
 <h3>Description</h3>
-Task to perform a &quot;cleartool mkdir&quot; command to ClearCase.<br>
-Since ant 1.6.1
+<p>Task to perform a <kbd>cleartool mkdir</kbd> command to ClearCase.</p>
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-   <tr>
-     <th>Attribute</th>
-     <th>Values</th>
-     <th>Required</th>
-   </tr>
-   <tr>
-      <td>viewpath</td>
-      <td>Path to the ClearCase view directory that the command will operate on</td>
-      <td>Yes</td>
-   </tr>
-   <tr>
-      <td>comment</td>
-      <td>Specify a comment. Only one of comment or cfile may be used.</td>
-      <td>No</td>
-   </tr>
-   <tr>
-      <td>commentfile</td>
-      <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
-      <td>No</td>
-   </tr>
-   <tr>
-      <td>nocheckout</td>
-      <td>Do not checkout after element creation</td>
-      <td>No</td>
-   </tr>
-   <tr>
-      <td>failonerr</td>
-      <td>Throw an exception if the command fails. Default is true</td>
-      <td>No</td>
-   </tr>
- </table>
+<table class="attr">
+  <tr>
+    <th scope="col">Attribute</th>
+    <th scope="col">Values</th>
+    <th scope="col">Required</th>
+  </tr>
+  <tr>
+    <td>viewpath</td>
+    <td>Path to the ClearCase view directory that the command will operate on</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment</td>
+    <td rowspan="2">No; only one of the two may be used</td>
+  </tr>
+  <tr>
+    <td>commentfile</td>
+    <td class="left">Specify a file containing a comment</td>
+  </tr>
+  <tr>
+    <td>nocheckout</td>
+    <td>Do not checkout after element creation</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails.</td>
+    <td>No; default is <q>true</q></td>
+  </tr>
+</table>
 <h3>Examples</h3>
-<blockquote>
+
+<p>Perform a ClearCase <code>mkdir</code> on the dir <samp>c:/views/viewdir/adir</samp> and do not
+automatically check it out.</p>
 <pre>
 &lt;ccmkdir viewpath=&quot;c:/views/viewdir/adir&quot;
-        nocheckout=&quot;true&quot;
-        comment=&quot;Some comment text&quot;/&gt;
-</pre>
-</blockquote>
-<p>Does a ClearCase <i>mkdir</i> on the dir <i>c:/views/viewdir/adir</i> and
-does not automatically check it out.</p>
-<hr>
+         nocheckout=&quot;true&quot;
+         comment=&quot;Some comment text&quot;/&gt;</pre>
 
-<h2><a name="ccmkelem">CCMkelem</a></h2>
+<hr/>
+
+<h2 id="ccmkelem">CCMkelem</h2>
+<p><em>Since Ant 1.6.1</em></p>
 <h3>Description</h3>
-Task to perform a &quot;cleartool mkelem&quot; command to ClearCase.<br>
-Since ant 1.6.1
+<p>Task to perform a <kbd>cleartool mkelem</kbd> command to ClearCase.</p>
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-   <tr>
-     <th>Attribute</th>
-     <th>Values</th>
-     <th>Required</th>
-   </tr>
-   <tr>
-      <td>viewpath</td>
-      <td>Path to the ClearCase view file or directory that the command will operate on</td>
-      <td>Yes</td>
-   <tr>
-   <tr>
-      <td>comment</td>
-      <td>Specify a comment. Only one of comment or cfile may be used.</td>
-      <td>No</td>
-   <tr>
-   <tr>
-      <td>commentfile</td>
-      <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
-      <td>No</td>
-   <tr>
-   <tr>
-      <td>nowarn</td>
-      <td>Suppress warning messages</td>
-      <td>No</td>
-   <tr>
-   <tr>
-      <td>nocheckout</td>
-      <td>Do not checkout after element creation</td>
-      <td>No</td>
-   <tr>
-   <tr>
-      <td>checkin</td>
-      <td>Checkin element after creation</td>
-      <td>No</td>
-   <tr>
-   <tr>
-      <td>preservetime</td>
-      <td>Preserve the modification time (for checkin)</td>
-      <td>No</td>
-   <tr>
-   <tr>
-      <td>master</td>
-      <td>Assign mastership of the main branch to the current site</td>
-      <td>No</td>
-   <tr>
-   <tr>
-      <td>eltype</td>
-      <td>Element type to use during element creation</td>
-      <td>No</td>
-   <tr>
-   <tr>
-      <td>failonerr</td>
-      <td>Throw an exception if the command fails. Default is true</td>
-      <td>No</td>
-   <tr>
- </table>
+<table class="attr">
+  <tr>
+    <th scope="col">Attribute</th>
+    <th scope="col">Values</th>
+    <th scope="col">Required</th>
+  </tr>
+  <tr>
+    <td>viewpath</td>
+    <td>Path to the ClearCase view file or directory that the command will operate on</td>
+    <td>Yes</td>
+  </tr>
+  <tr>
+    <td>comment</td>
+    <td>Specify a comment</td>
+    <td rowspan="2">No; only one of the two may be used</td>
+  </tr>
+  <tr>
+    <td>commentfile</td>
+    <td class="left">Specify a file containing a comment</td>
+  </tr>
+  <tr>
+    <td>nowarn</td>
+    <td>Suppress warning messages</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>nocheckout</td>
+    <td>Do not checkout after element creation</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>checkin</td>
+    <td>Checkin element after creation</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>preservetime</td>
+    <td>Preserve the modification time (for checkin)</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>master</td>
+    <td>Assign mastership of the main branch to the current site</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>eltype</td>
+    <td>Element type to use during element creation</td>
+    <td>No</td>
+  </tr>
+  <tr>
+    <td>failonerr</td>
+    <td>Throw an exception if the command fails.</td>
+    <td>No; default is <q>true</q></td>
+  </tr>
+</table>
 <h3>Examples</h3>
-<blockquote>
+
+<p>Perform ClearCase <code>mkelem</code> on the file <samp>c:/views/viewdir/afile</samp> with
+element type <samp>text_file</samp>, check in the file after creation.</p>
 <pre>
 &lt;ccmkelem viewpath=&quot;c:/views/viewdir/afile&quot;
-        eltype=&quot;text_file&quot;
-        checkin=&quot;true&quot;
-        comment=&quot;Some comment text&quot;/&gt;
-</pre>
-</blockquote>
-<p>Does a ClearCase <i>mkelem</i> on the file <i>c:/views/viewdir/afile</i> with
-element type <i>text_file</i>. It also checks in the file after creation.</p>
+          eltype=&quot;text_file&quot;
+          checkin=&quot;true&quot;
+          comment=&quot;Some comment text&quot;/&gt;</pre>
 
 </body>
 </html>
diff --git a/manual/Tasks/common.html b/manual/Tasks/common.html
index 6fa3418..1ad5f62 100644
--- a/manual/Tasks/common.html
+++ b/manual/Tasks/common.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,46 +15,42 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-<meta http-equiv="Content-Language" content="en-us">
 <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>Common</title>
 </head>
 
 <body>
 
-<h2><a name="javac">Common Attributes of all Tasks</a></h2>
+<h2 id="javac">Common Attributes of all Tasks</h2>
 <p>All tasks share the following attributes:</p>
 
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">id</td>
-    <td valign="top">Unique identifier for this task instance, can be
+    <td>id</td>
+    <td>Unique identifier for this task instance, can be
        used to reference this task in scripts.</td>
-    <td valign="top">No</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">taskname</td>
-    <td valign="top">A different name for this task instance - will
+    <td>taskname</td>
+    <td>A different name for this task instance&mdash;will
       show up in the logging output.</td>
-    <td valign="top">No</td>
+    <td>No</td>
   </tr>
   <tr>
-    <td valign="top">description</td>
-    <td valign="top">Room for your comments</td>
-    <td valign="top">No</td>
+    <td>description</td>
+    <td>Room for your comments</td>
+    <td>No</td>
   </tr>
 </table>
 
-
-
 </body>
 </html>
-
diff --git a/manual/Tasks/componentdef.html b/manual/Tasks/componentdef.html
index e28e681..27fd1f4 100644
--- a/manual/Tasks/componentdef.html
+++ b/manual/Tasks/componentdef.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,49 +15,36 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-<meta http-equiv="Content-Language" content="en-us">
 <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>Componentdef Task</title>
 </head>
 
 <body>
 
-<h2><a name="componentdef">componentdef</a></h2>
+<h2 id="componentdef">componentdef</h2>
 <h3>Description</h3>
-  <p>
-    Adds a component definition to the current project.
-    A component definition is the same as a
-    <a href="typedef.html">typedef</a> except:
-  </p>
-    <ol>
-      <li>
-        that it can only be used in other types or tasks that
-        accept components (by having an <i>add()</i> method).
-      </li>
-      <li>
-        multiple components may have the same name, provided they
-        implement different interfaces.
-      </li>
-    </ol>
-  <p>
-    The purpose of this is to allow internal Apache Ant definitions to be
-    made for tags like "and" or "or".
-  </p>
+<p>Adds a component definition to the current project.  A component definition is the same as
+a <a href="typedef.html">typedef</a> except:</p>
+<ol>
+  <li>that it can only be used in other types or tasks that accept components (by having
+    an <code>add()</code> method).</li>
+  <li>multiple components may have the same name, provided they implement different interfaces.</li>
+</ol>
+<p>The purpose of this is to allow internal Apache Ant definitions to be made for tags
+like <samp>and</samp> or <samp>or</samp>.</p>
 
-  <h3>Examples</h3>
+<h3>Examples</h3>
 
-<pre> &lt;componentdef name="or" onerror="ignore"
-    classname="com.apache.tools.ant.taskdefs.conditions.Or"/&gt;
-  &lt;componentdef name="or" onerror="ignore"
-    classname="com.apache.tools.ant.types.resources.selectors.Or"/&gt;</pre>
-  <p>
-    defines two components with the same name "or"; one is a condition
-    (see <a href="conditions.html">conditions</a>) and one is 
-    a selector (see <a href="../Types/selectors.html">selectors</a>).
-  </p>
+<p>Define two components with the same name <samp>or</samp>; one is a
+condition (see <a href="conditions.html">conditions</a>) and one is a
+selector (see <a href="../Types/selectors.html">selectors</a>).</p>
+<pre>
+&lt;componentdef name="or" onerror="ignore"
+              classname="com.apache.tools.ant.taskdefs.conditions.Or"/&gt;
+&lt;componentdef name="or" onerror="ignore"
+              classname="com.apache.tools.ant.types.resources.selectors.Or"/&gt;</pre>
 </body>
 </html>
-
diff --git a/manual/Tasks/concat.html b/manual/Tasks/concat.html
index 11372d0..513797c 100644
--- a/manual/Tasks/concat.html
+++ b/manual/Tasks/concat.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,324 +15,237 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
-    <head>
-      <meta http-equiv="Content-Language" content="en-us">
-      <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
-<title>Concat</title>
-    </head>
+  <head>
+    <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
+    <title>Concat</title>
+  </head>
 
-    <body>
+  <body>
 
-      <h2><a name="Concat">Concat</a></h2>
+    <h2 id="concat">Concat</h2>
 
-      <h3>Description</h3>
+    <h3>Description</h3>
 
-      <p>
-        Concatenates one or more 
-        <a href="../Types/resources.html">resource</a>s
-        to a single file or to the console. The destination
-        file will be created if it does not exist unless the resource
-        list is empty and ignoreempty is true.
-      </p>
+    <p>Concatenates one or more <a href="../Types/resources.html">resource</a>s to a single file or
+      to the console. The destination file will be created if it does not exist unless the resource
+      list is empty and <var>ignoreempty</var> is <q>true</q>.</p>
 
-      <p><strong>Since Apache Ant 1.7.1</strong>, this task can be used as a
-        <a href="../Types/resources.html#collection">Resource Collection</a>
-        that will return exactly one 
-        <a href="../Types/resources.html">resource</a>.
-      </p>
+    <p><em>Since Apache Ant 1.7.1</em>, this task can be used as
+      a <a href="../Types/resources.html#collection">resource collection</a> that will return
+      exactly one <a href="../Types/resources.html">resource</a>.</p>
 
-      <p>
-        <a href="../Types/resources.html#collection">
-Resource Collection</a>s are used to
-        select which resources are to be concatenated. There is no
-        singular attribute to specify a single resource to cat.
-      </p>
+    <p><a href="../Types/resources.html#collection">Resource collections</a> are used to select
+      which resources are to be concatenated. There is no singular attribute to specify a single
+      resource to <code>concat</code>.</p>
 
-      <h3>Parameters</h3>
+    <h3>Parameters</h3>
 
-      <table border="1" cellpadding="2" cellspacing="0">
+    <table class="attr">
+      <tr>
+        <th scope="col">Attribute</th>
+        <th scope="col">Description</th>
+        <th scope="col">Required</th>
+      </tr>
+      <tr>
+        <td>destfile</td>
+        <td>The destination file for the concatenated stream.  If not specified the console will be
+          used instead.</td>
+        <td>No</td>
+      </tr>
+      <tr>
+        <td>append</td>
+        <td>Specifies whether or not the file specified by <var>destfile</var> should be
+          appended.</td>
+        <td>No; defaults to <q>no</q></td>
+      </tr>
+      <tr>
+        <td>force</td>
+        <td>Specifies whether or not the file specified by <var>destfile</var> should be written to
+          even if it is newer than all source files. <em><u>Deprecated</u>, use
+          the <var>overwrite</var> attribute instead.</em></td>
+        <td>No; defaults to <q>yes</q></td>
+      </tr>
+      <tr>
+        <td>overwrite</td>
+        <td>Specifies whether or not the file specified by <var>destfile</var> should be written to
+          even if it is newer than all source files.  <em>Since Ant 1.8.2</em>.</td>
+        <td>No; defaults to <q>yes</q></td>
+      </tr>
+      <tr>
+        <td>forceReadOnly</td>
+        <td>Overwrite read-only destination files.  <em>Since Ant 1.8.2</em></td>
+        <td>No; defaults to <q>false</q></td>
+      </tr>
+      <tr>
+        <td>encoding</td>
+        <td>Specifies the encoding for the input files. Please
+          see <a href="https://docs.oracle.com/javase/8/docs/technotes/guides/intl/encoding.doc.html"
+          target="_top">Supported Encodings</a> for a list of possible values.</td>
+        <td>No; defaults to default JVM character encoding</td>
+      </tr>
+      <tr>
+        <td>outputencoding</td>
+        <td>The encoding to use when writing the output file.  <em>Since Ant 1.6</em>.</td>
+        <td>No; defaults to <var>encoding</var> if set or default JVM character encoding
+          otherwise</td>
+      </tr>
+      <tr>
+        <td>fixlastline</td>
+        <td>Specifies whether or not to check if each file concatenated is terminated by a new
+          line. If this attribute is <q>yes</q> a new line will be appended to the stream if the
+          file did not end in a new line.  <em>Since Ant 1.6</em>.  This attribute does not apply to
+          embedded text.</td>
+        <td>No; defaults to <q>no</q></td>
+      </tr>
+      <tr>
+        <td>eol</td>
+        <td>Specifies what the end of line character are for use by the fixlastline
+          attribute.  <em>Since Ant 1.6</em> Valid values for this property are:
+          <ul>
+            <li><q>cr</q>: a single CR</li>
+            <li><q>lf</q>: a single LF</li>
+            <li><q>crlf</q>: the pair CRLF</li>
+            <li><q>mac</q>: a single CR</li>
+            <li><q>unix</q>: a single LF</li>
+            <li><q>dos</q>: the pair CRLF</li>
+          </ul></td>
+        <td>No; default is platform dependent: <q>lf</q> for Unix, <q>crlf</q> for DOS family
+        (including Windows), <q>cr</q> for Mac OS 9 or earlier</td></tr>
+      <tr>
+        <td>binary</td>
+        <td><em>Since Ant 1.6.2</em> If this attribute is set to <q>true</q>, the task concatenates
+          the files in a byte by byte fashion. If this attribute is <q>false</q>, concat will not
+          normally work for binary files due to character encoding issues.  If this option is set
+          to <q>true</q>, the <var>destfile</var> attribute must be set, and the task cannot used
+          nested text.  Also the
+          attributes <var>encoding</var>, <var>outputencoding</var>, <var>filelastline</var> cannot
+          be used.</td>
+        <td>No; default is <q>false</q></td>
+      </tr>
+      <tr>
+        <td>ignoreempty</td>
+        <td><em>Since Ant 1.8.0</em> Specifies whether or not the file specified
+          by <var>destfile</var> should be created if the source resource list is empty.
+        </td>
+        <td>No; defaults to <q>true</q></td>
+      </tr>
+      <tr>
+        <td>resourcename</td>
+        <td><em>Since Ant 1.8.3</em> Specifies the name reported if this task is exposed as
+          a <a href="../Types/resources.html">resource</a>.
+        </td>
+        <td>No</td>
+      </tr>
+    </table>
 
-        <tr>
-          <td valign="top"><b>Attribute</b></td>
-          <td valign="top"><b>Description</b></td>
-          <td align="center" valign="top"><b>Required</b></td>
-        </tr>
+    <h3>Parameters specified as nested elements</h3>
+    <h4>resource collection</h4>
+    <p><em>Since Ant 1.7</em>.</p>
 
-        <tr>
-          <td valign="top">destfile</td>
-          <td valign="top">
-            The destination file for the concatenated stream.
-        If not specified the console will be used instead.
-          </td>
-          <td valign="top" align="center">
-            No
-          </td>
-        </tr>
+    <p>Any of the various <a href="../Types/resources.html#collection">resource collection</a> types
+      can specify the resources to be concatenated.</p>
 
-        <tr>
-          <td valign="top">append</td>
-          <td valign="top">
-            Specifies whether or not the file specified by 'destfile'
-            should be appended. Defaults to &quot;no&quot;.
-          </td>
-          <td valign="top" align="center">No</td>
-        </tr>
-        <tr>
-          <td valign="top">force</td>
-          <td valign="top">
-            Specifies whether or not the file specified by 'destfile'
-            should be written to even if it is newer than all source files.
-            <strong>deprecated, use the overwrite attribute instead</strong>
-            Defaults to &quot;yes&quot;.
-          </td>
-          <td valign="top" align="center">No</td>
-        </tr>
-        <tr>
-          <td valign="top">overwrite</td>
-          <td valign="top">
-            Specifies whether or not the file specified by 'destfile'
-            should be written to even if it is newer than all source files.
-            <em>since Ant 1.8.2</em>.
-            Defaults to &quot;yes&quot;.
-          </td>
-          <td valign="top" align="center">No</td>
-        </tr>
+    <h4>filterchain</h4>
+    <p><em>Since Ant 1.6</em>.</p>
+    <p>The task supports nested <a href="../Types/filterchain.html">FilterChain</a>s.</p>
 
-        <tr>
-          <td valign="top">forceReadOnly</td>
-          <td valign="top">Overwrite read-only destination
-            files.  <em>since Ant 1.8.2</em></td>
-          <td valign="top" align="center">No; defaults to false.</td>
-        </tr>
+    <h4>header, footer</h4>
+    <p><em>Since Ant 1.6</em>.</p>
+    <p>Used to prepend or postpend text into the concatenated stream.</p>
+    <p>The text may be in-line or be in a file.</p>
+    <table class="attr">
+      <tr>
+        <th scope="col">Attribute</th>
+        <th scope="col">Description</th>
+        <th scope="col">Required</th>
+      </tr>
+      <tr>
+        <td>filtering</td>
+        <td>Whether to filter the text provided by this sub element.</td>
+        <td>No; default is <q>yes</q></td>
+      </tr>
+      <tr>
+        <td>file</td>
+        <td>A file to place at the head or tail of the concatenated text.</td>
+        <td>No</td>
+      </tr>
+      <tr>
+        <td>trim</td>
+        <td>Whether to trim the value.</td>
+        <td>No; default is <q>no</q></td>
+      </tr>
+      <tr>
+        <td>trimleading</td>
+        <td>Whether to trim leading white space on each line.</td>
+        <td>No; default is <q>no</q></td>
+      </tr>
+    </table>
 
-        <tr>
-          <td valign="top">encoding</td>
-          <td valign="top">
-            Specifies the encoding for the input files. Please see <a
-            href="http://docs.oracle.com/javase/7/docs/technotes/guides/intl/encoding.doc.html">
-            Supported Encodings</a>
-            for a list of possible values. Defaults to the platform's
-            default character encoding.
-          </td>
-          <td valign="top" align="center">No</td>
-        </tr>
-        <tr>
-          <td valign="top">outputencoding</td>
-          <td valign="top">
-            The encoding to use when writing the output file
-            <em>since Ant 1.6</em>.
-            Defaults to the value of the encoding attribute
-            if given or the default JVM encoding otherwise.
-          </td>
-          <td valign="top" align="center">No</td>
-        </tr>
-        <tr>
-          <td valign="top">fixlastline</td>
-          <td valign="top">
-                 Specifies whether or not to check if
-            each file concatenated is terminated by
-            a new line. If this attribute is &quot;yes&quot;
-            a new line will be appended to the stream if
-            the file did not end in a new line.
-            <em>since Ant 1.6</em>.
-            Defaults to &quot;no&quot;.
-            This attribute does not apply to embedded text.
-          </td>
-          <td valign="top" align="center">No</td>
-        </tr>
-        <tr>
-          <td valign="top">eol</td>
-          <td valign="top">
-            Specifies what the end of line character are
-            for use by the fixlastline attribute.
-            <em>since Ant 1.6</em>
-            Valid values for this property are:
-            <ul>
-              <li>cr: a single CR</li>
-              <li>lf: a single LF</li>
-              <li>crlf: the pair CRLF</li>
-              <li>mac: a single CR</li>
-              <li>unix: a single LF</li>
-              <li>dos: the pair CRLF</li>
-            </ul>
-            The default is platform dependent.
-            For Unix platforms, the default is &quot;lf&quot;.
-            For DOS based systems (including Windows),
-            the default is &quot;crlf&quot;.
-            For Mac OS, the default is &quot;cr&quot;.
-          </td>
-          <td valign="top" align="center">No</td>
-        </tr>
-        <tr>
-          <td valign="top">binary</td>
-          <td valign="top">
-            <em>since Ant 1.6.2</em>
-            If this attribute is set to true, the task concatenates the files
-            in a byte by byte fashion. If this attribute is false, concat will
-            not normally work for binary files due to character encoding
-            issues.
-            If this option is set to true, the destfile attribute must be
-            set, and the task cannot used nested text.
-            Also the attributes encoding, outputencoding, filelastline
-            cannot be used.
-            The default is &quot;false&quot;.
-          </td>
-          <td valign="top" align="center">No</td>
-        </tr>
-        <tr>
-          <td valign="top">ignoreempty</td>
-          <td valign="top">
-          <em>Since Ant 1.8.0</em>
-            Specifies whether or not the file specified by 'destfile'
-            should be created if the source resource list is
-            empty. Defaults to &quot;true&quot;.
-          </td>
-          <td valign="top" align="center">No</td>
-        </tr>
-        <tr>
-          <td valign="top">resourcename</td>
-          <td valign="top">
-          <em>Since Ant 1.8.3</em>
-            Specifies the name reported if this task is exposed
-            as a <a href="../Types/resources.html">resource</a>.
-          </td>
-          <td valign="top" align="center">No</td>
-        </tr>
+    <h3>Examples</h3>
 
-      </table>
+    <p>Concatenate a string to a file:</p>
+    <pre>&lt;concat destfile=&quot;README&quot;&gt;Hello, World!&lt;/concat&gt;</pre>
 
-      <h3>Parameters specified as nested elements</h3>
-        <h4>Resource Collection</h4>
-        <p><em>since Ant 1.7</em>.</p>
+    <p>Concatenate a series of files to the console:</p>
+    <pre>
+&lt;concat&gt;
+  &lt;fileset dir=&quot;messages&quot; includes=&quot;*important*&quot;/&gt;
+&lt;/concat&gt;</pre>
 
-      <p>
-        Any of the various <a href="../Types/resources.html#collection">
-        Resource Collection</a> types can specify the resources to be
-        concatenated.
-      </p>
+    <p>Concatenate a single file, appending if the destination file exists:</p>
+    <pre>
+&lt;concat destfile=&quot;NOTES&quot; append=&quot;true&quot;&gt;
+  &lt;filelist dir=&quot;notes&quot; files=&quot;note.txt&quot;/&gt;
+&lt;/concat&gt;</pre>
 
-      <h4>filterchain</h4>
-        <p><em>since Ant 1.6</em>.</p>
-      <p>The concat task supports nested
-        <a href="../Types/filterchain.html"> FilterChain</a>s.</p>
+    <p>Concatenate a series of files, update the destination file only if is older that all the
+      source files:</p>
+    <pre>
+&lt;concat destfile=&quot;${docbook.dir}/all-sections.xml&quot;
+        force=&quot;no&quot;&gt;
+  &lt;filelist dir=&quot;${docbook.dir}/sections&quot;
+            files=&quot;introduction.xml,overview.xml&quot;/&gt;
+  &lt;fileset dir=&quot;${docbook.dir}&quot;
+           includes=&quot;sections/*.xml&quot;
+           excludes=&quot;introduction.xml,overview.xml&quot;/&gt;
+&lt;/concat&gt;</pre>
 
-      <h4>header, footer</h4>
-        <p><em>since Ant 1.6</em>.</p>
-      <p>Used to prepend or postpend text into the concatenated stream.</p>
-      <p>The text may be in-line or be in a file.</p>
-      <table border="1" cellpadding="2" cellspacing="0">
-        <tr>
-          <td valign="top"><b>Attribute</b></td>
-          <td valign="top"><b>Description</b></td>
-          <td align="center" valign="top"><b>Required</b></td>
-        </tr>
-        <tr>
-          <td valign="top">filtering</td>
-          <td valign="top">
-            Whether to filter the text provided by this sub element,
-            default is "yes".
-          <td valign="top" align = "center">No</td>
-        </tr>
-        <tr>
-          <td valign="top">file</td>
-          <td valign="top">A file to place at the head or tail of the
-                           concatenated text.
-          <td valign="top" align = "center">No</td>
-        </tr>
-        <tr>
-          <td valign="top">trim</td>
-          <td valign="top">Whether to trim the value, default is "no"</td>
-          <td valign="top" align = "center">No</td>
-        </tr>
-        <tr>
-          <td valign="top">trimleading</td>
-          <td valign="top">
-            Whether to trim leading white space on each line, default is "no"
-          </td>
-          <td valign="top" align = "center">No</td>
-        </tr>
-      </table>
+    <p>Concatenate a series of files, expanding Ant properties.</p>
+    <pre>
+&lt;concat destfile="${build.dir}/subs"&gt;
+  &lt;path&gt;
+    &lt;fileset dir="${src.dir}" includes="*.xml"/&gt;
+    &lt;pathelement location="build.xml"/&gt;
+  &lt;/path&gt;
+  &lt;filterchain&gt;
+    &lt;expandproperties/&gt;
+  &lt;/filterchain&gt;
+&lt;/concat&gt;</pre>
 
-      <h3>Examples</h3>
+    <p>Filter the lines containing project from <samp>build.xml</samp> and output them
+      to <samp>report.output</samp>, prepending with a header.</p>
+    <pre>
+&lt;concat destfile="${build.dir}/report.output"&gt;
+  &lt;header filtering="no" trimleading="yes"&gt;
+      Lines that contain project
+      ==========================
+  &lt;/header&gt;
+  &lt;path path="build.xml"/&gt;
+  &lt;filterchain&gt;
+    &lt;linecontains&gt;
+      &lt;contains value="project"/&gt;
+    &lt;/linecontains&gt;
+  &lt;/filterchain&gt;
+&lt;/concat&gt;</pre>
 
-      <p><b>Concatenate a string to a file:</b></p>
+    <p>Concatenate a number of binary files.</p>
+    <pre>
+&lt;concat destfile="${build.dir}/dist.bin" binary="yes"&gt;
+  &lt;fileset file="${src.dir}/scripts/dist.sh"/&gt;
+  &lt;fileset file="${build.dir}/dist.tar.bz2"/&gt;
+&lt;/concat&gt;</pre>
 
-      <pre>
-  &lt;concat destfile=&quot;README&quot;&gt;Hello, World!&lt;/concat&gt;
-      </pre>
-
-      <p><b>Concatenate a series of files to the console:</b></p>
-
-      <pre>
-  &lt;concat&gt;
-    &lt;fileset dir=&quot;messages&quot; includes=&quot;*important*&quot;/&gt;
-  &lt;/concat&gt;
-      </pre>
-
-      <p><b>Concatenate a single file, appending if the destination file exists:</b></p>
-
-      <pre>
-  &lt;concat destfile=&quot;NOTES&quot; append=&quot;true&quot;&gt;
-    &lt;filelist dir=&quot;notes&quot; files=&quot;note.txt&quot;/&gt;
-  &lt;/concat&gt;
-      </pre>
-
-      <p><b>Concatenate a series of files, update the destination
-      file only if is older that all the source files:</b></p>
-
-      <pre>
-  &lt;concat destfile=&quot;${docbook.dir}/all-sections.xml&quot;
-          force=&quot;no&quot;&gt;
-    &lt;filelist dir=&quot;${docbook.dir}/sections&quot;
-         files=&quot;introduction.xml,overview.xml&quot;/&gt;
-    &lt;fileset dir=&quot;${docbook.dir}&quot;
-         includes=&quot;sections/*.xml&quot;
-         excludes=&quot;introduction.xml,overview.xml&quot;/&gt;
-  &lt;/concat&gt;
-      </pre>
-
-      <p><b>Concatenate a series of files, expanding ant properties</b></p>
-        <pre>
-   &lt;concat destfile="${build.dir}/subs"&gt;
-      &lt;path&gt;
-        &lt;fileset dir="${src.dir}" includes="*.xml"/&gt;
-        &lt;pathelement location="build.xml"/&gt;
-      &lt;/path&gt;
-      &lt;filterchain&gt;
-        &lt;expandproperties/&gt;
-      &lt;/filterchain&gt;
-   &lt;/concat&gt;
-        </pre>
-
-      <p><b>Filter the lines containing project from build.xml and output
-           them to report.output, prepending with a header</b></p>
-        <pre>
-   &lt;concat destfile="${build.dir}/report.output"&gt;
-      &lt;header filtering="no" trimleading="yes"&gt;
-          Lines that contain project
-          ==========================
-      &lt;/header&gt;
-      &lt;path path="build.xml"/&gt;
-      &lt;filterchain&gt;
-         &lt;linecontains&gt;
-           &lt;contains value="project"/&gt;
-         &lt;/linecontains&gt;
-      &lt;/filterchain&gt;
-   &lt;/concat&gt;
-        </pre>
-
-      <p><b>Concatenate a number of binary files.</b></p>
-        <pre>
-   &lt;concat destfile="${build.dir}/dist.bin" binary="yes"&gt;
-     &lt;fileset file="${src.dir}/scripts/dist.sh" /&gt;
-     &lt;fileset file="${build.dir}/dist.tar.bz2" /&gt;
-   &lt;/concat&gt;
-        </pre>
-
-      
-
-    </body>
-
-  </html>
+  </body>
+</html>
diff --git a/manual/Tasks/condition.html b/manual/Tasks/condition.html
index 405f95e..cc04b13 100644
--- a/manual/Tasks/condition.html
+++ b/manual/Tasks/condition.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,97 +15,83 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-<meta http-equiv="Content-Language" content="en-us">
 <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>Condition Task</title>
 </head>
 
 <body>
 
-<h2><a name="Condition">Condition</a></h2>
+<h2 id="condition">Condition</h2>
 <h3>Description</h3>
-<p>Sets a property if a certain condition holds true - this is a
-generalization of <a href="available.html">Available</a> and <a
-href="uptodate.html">Uptodate</a>.</p>
-<p>If the condition holds true, the property value is set to true by
-default; otherwise, the property is not set. You can set the value to
-something other than the default by specifying the <code>value</code>
-attribute.</p>
-<p>Conditions are specified as <a href="#nested">nested elements</a>,
-you must specify exactly one condition.</p>
+<p>Sets a property if a certain condition holds true&mdash;this is a generalization
+of <a href="available.html">Available</a> and <a href="uptodate.html">Uptodate</a>.</p>
+<p>If the condition holds true, the property value is set to <q>true</q> by default; otherwise, the
+property is not set. You can set the value to something other than the default by specifying
+the <var>value</var> attribute.</p>
+<p>Conditions are specified as <a href="#nested">nested elements</a>, you must specify exactly one
+condition.</p>
 <h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
   <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
+    <th scope="col">Attribute</th>
+    <th scope="col">Description</th>
+    <th scope="col">Required</th>
   </tr>
   <tr>
-    <td valign="top">property</td>
-    <td valign="top">The name of the property to set.</td>
-    <td valign="top" align="center">Yes</td>
+    <td>property</td>
+    <td>The name of the property to set.</td>
+    <td>Yes</td>
   </tr>
   <tr>
-    <td valign="top">value</td>
-    <td valign="top">The value to set the property to. Defaults to
-      &quot;true&quot;.</td>
-    <td valign="top" align="center">No</td>
+    <td>value</td>
+    <td>The value to set the property to.</td>
+    <td>No; defaults to <q>true</q></td>
   </tr>
   <tr>
-    <td valign="top">else</td>
-    <td valign="top">The value to set the property to if the condition
-      evaluates to <i>false</i>. By default the property will remain unset.
-      <em>Since Apache Ant 1.6.3</em>
+    <td>else</td>
+    <td>The value to set the property to if the condition evaluates to <q>false</q>. <em>Since
+      Apache Ant 1.6.3</em>
     </td>
-    <td valign="top" align="center">No</td>
+    <td>No; by default the property will remain unset</td>
   </tr>
 </table>
-<h3><a name="nested">Parameters specified as nested elements</a></h3>
-<p>All conditions to test are specified as nested elements, for a
-complete list see <a href="conditions.html">here</a>.</p>
+<h3 id="nested">Parameters specified as nested elements</h3>
+<p>All conditions to test are specified as nested elements, for a complete list
+see <a href="conditions.html">here</a>.</p>
 
 <h3>Examples</h3>
+
+<p>Set the property <code>javamail.complete</code> if both the JavaBeans Activation Framework and
+JavaMail are available in the classpath.</p>
 <pre>
-  &lt;condition property=&quot;javamail.complete&quot;&gt;
-    &lt;and&gt;
-      &lt;available classname=&quot;javax.activation.DataHandler&quot;/&gt;
-      &lt;available classname=&quot;javax.mail.Transport&quot;/&gt;
-    &lt;/and&gt;
-  &lt;/condition&gt;
-</pre>
-<p>sets the property <code>javamail.complete</code> if both the
-JavaBeans Activation Framework and JavaMail are available in the
-classpath.</p>
+&lt;condition property=&quot;javamail.complete&quot;&gt;
+  &lt;and&gt;
+    &lt;available classname=&quot;javax.activation.DataHandler&quot;/&gt;
+    &lt;available classname=&quot;javax.mail.Transport&quot;/&gt;
+  &lt;/and&gt;
+&lt;/condition&gt;</pre>
 
+<p>Set the property <code>isMacOsButNotMacOsX</code> if the current operating system is MacOS, but
+not MacOS X/macOS&mdash;which Ant considers to be in the Unix family as well.</p>
 <pre>
-  &lt;condition property=&quot;isMacOsButNotMacOsX&quot;&gt;
-    &lt;and&gt;
-      &lt;os family=&quot;mac&quot;/&gt;
+&lt;condition property=&quot;isMacOsButNotMacOsX&quot;&gt;
+  &lt;and&gt;
+    &lt;os family=&quot;mac&quot;/&gt;
+    &lt;not&gt;
+      &lt;os family=&quot;unix&quot;/&gt;
+    &lt;/not&gt;
+  &lt;/and&gt;
+&lt;/condition&gt;</pre>
 
-      &lt;not&gt;
-        &lt;os family=&quot;unix&quot;/&gt;
-
-      &lt;/not&gt;
-    &lt;/and&gt;
-  &lt;/condition&gt;
-</pre>
-<p>sets the property <code>isMacOsButNotMacOsX</code> if the current
-operating system is MacOS, but not MacOS X - which Ant considers to be
-in the Unix family as well.</p>
-
+<p>Set the property <code>isSunOSonSparc</code> if the current operating system is SunOS and if it
+is running on a SPARC architecture.</p>
 <pre>
-  &lt;condition property=&quot;isSunOSonSparc&quot;&gt;
-    &lt;os name=&quot;SunOS&quot; arch=&quot;sparc&quot;/&gt;
-
-  &lt;/condition&gt;
-</pre>
-<p>sets the property <code>isSunOSonSparc</code> if the current
-operating system is SunOS and if it is running on a sparc architecture.</p>
-
-
+&lt;condition property=&quot;isSunOSonSparc&quot;&gt;
+  &lt;os name=&quot;SunOS&quot; arch=&quot;sparc&quot;/&gt;
+&lt;/condition&gt;</pre>
 
 </body>
 </html>
diff --git a/manual/Tasks/conditions.html b/manual/Tasks/conditions.html
index 2af7b30..846733f 100644
--- a/manual/Tasks/conditions.html
+++ b/manual/Tasks/conditions.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -6,7 +7,7 @@
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+       https://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,958 +15,824 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<html>
+<html lang="en">
 
 <head>
-<meta http-equiv="Content-Language" content="en-us">
 <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>Conditions Task</title>
 </head>
 
 <body>
 
-<h2><a name="Conditions">Conditions</a></h2>
-  <p>Conditions are nested elements of the 
-<a href="condition.html"><code>&lt;condition&gt;</code></a> and
-<a href="waitfor.html"><code>&lt;waitfor&gt;</code></a> tasks.
-    There are core conditions and custom conditions. Custom
-    conditions are described in
-    <a href="../Types/custom-programming.html#customconditions">
-      Custom Conditions</a>.
-    Core Conditions are described below.
-  </p>
-  <h3><a name="coreconditions">Core Conditions</a></h3>
+<h2 id="conditions">Conditions</h2>
+<p>Conditions are nested elements of the <a href="condition.html"><code>&lt;condition&gt;</code></a>
+and <a href="waitfor.html"><code>&lt;waitfor&gt;</code></a> tasks.  There are core conditions and
+custom conditions. Custom conditions are described
+in <a href="../Types/custom-programming.html#customconditions">Custom Conditions</a>.  Core
+Conditions are described below.</p>
+<h3 id="coreconditions">Core Conditions</h3>
 
-<p>These are the nested elements that can be used as conditions in the
-<a href="condition.html"><code>&lt;condition&gt;</code></a> and
-<a href="waitfor.html"><code>&lt;waitfor&gt;</code></a> tasks.</p>
+<p>These are the nested elements that can be used as conditions in
+the <a href="condition.html"><code>&lt;condition&gt;</code></a>
+and <a href="waitfor.html"><code>&lt;waitfor&gt;</code></a> tasks.</p>
 
-<h4><a name="not">not</a></h4>
-<p>The <code>&lt;not&gt;</code> element expects exactly one other
-condition to be nested into this element, negating the result of the
-condition.  It doesn't have any attributes and accepts all nested
-elements of the condition task as nested elements as well.</p>
+<h4 id="not">not</h4>
+<p>The <code>&lt;not&gt;</code> element expects exactly one other condition to be nested into this
+element, negating the result of the condition.  It doesn't have any attributes and accepts all
+nested elements of the condition task as nested elements as well.</p>
 
-<h4><a name="and">and</a></h4> <p>
-The <code>&lt;and&gt;</code> element doesn't have any attributes and
-accepts an arbitrary number of conditions as nested elements - all
-nested elements of the condition task are supported.  This condition
-is true if all of its contained conditions are, conditions will be
-evaluated in the order they have been specified in the build file.</p>
-<p>The <code>&lt;and&gt;</code> condition has the same shortcut
-semantics as the Java &amp;&amp; operator, as soon as one of the
-nested conditions is false, no other condition will be evaluated.</p>
+<h4 id="and">and</h4>
+<p>The <code>&lt;and&gt;</code> element doesn't have any attributes and accepts an arbitrary number
+of conditions as nested elements&mdash;all nested elements of the condition task are supported.
+This condition is true if all of its contained conditions are, conditions will be evaluated in the
+order they have been specified in the build file.</p>
+<p>The <code>&lt;and&gt;</code> condition has the same shortcut semantics as the
+Java <code>&amp;&amp;</code> operator, as soon as one of the nested conditions is false, no other
+condition will be evaluated.</p>
 
-<h4><a name="or">or</a></h4> <p>
-The <code>&lt;or&gt;</code> element doesn't have any attributes and
-accepts an arbitrary number of conditions as nested elements - all
-nested elements of the condition task are supported.  This condition
-is true if at least one of its contained conditions is, conditions
-will be evaluated in the order they have been specified in the build
-file.</p> <p>The <code>&lt;or&gt;</code> condition has the same
-shortcut semantics as the Java || operator, as soon as one of the
-nested conditions is true, no other condition will be evaluated.</p>
+<h4 id="or">or</h4>
+<p>The <code>&lt;or&gt;</code> element doesn't have any attributes and accepts an arbitrary number
+of conditions as nested elements&mdash;all nested elements of the condition task are supported.
+This condition is true if at least one of its contained conditions is, conditions will be evaluated
+in the order they have been specified in the build file.</p>
+<p>The <code>&lt;or&gt;</code> condition has the same shortcut semantics as the Java <code>||</code>
+o