Recent fixes
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 2ec150d..9919d45 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -1,1301 +1,1302 @@
-<?xml version="1.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.

--->

-

-<!--

-This file is used by the maven-changes-plugin to generate the release notes.

-Useful ways of finding items to add to this file are:

-

-1.  Add items when you fix a bug or add a feature (this makes the

-release process easy :-).

-

-2.  Do a Jira search for tickets closed since the previous release.

-

-3.  Use the report generated by the maven-changelog-plugin to see all

-SVN commits.  Set the project.properties' maven.changelog.range

-property to the number of days since the last release.

-

-

-To generate the release notes from this file:

-

-mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=nnn]

-

-then tweak the formatting if necessary

-and commit

-

-The <action> type attribute can be add,update,fix,remove.

--->

-

-<document xmlns="http://maven.apache.org/changes/1.0.0"

-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

-    xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/plugins/maven-changes-plugin/xsd/changes-1.0.0.xsd">

-  <properties>

-    <title>Release Notes</title>

-  </properties>

-

-    <!-- NOTE:

-    The description below is specially formatted so as to improve the layout of the generated release notes:

-    The parsing process removes all line feeds, replacing them with a single space.

-    The Velocity template in src/changes has been enhanced to replace pairs of adjacent spaces

-    with a new-line in the release notes. (These spaces are ignored when displaying HTML).

-    If the output is not quite correct, check for invisible trailing spaces!

-

-    N.B. The release notes template groups actions by type, and only extracts data for the current release.

-    The changes report outputs actions in the order they appear in this file.

-

-    To regenerate the release notes:

-    mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=nnn]

-

-    Defining changes.version allows one to create the RN without first removing the SNAPSHOT suffix.

-     -->

-

-  <body>

-  <release version="1.9.0" date="YYYY-MM-DD" description="This is a maintenance and bug fix release; requires Java 8.">

-    <!-- ADD -->

-    <action type="add" dev="ggregory" due-to="ashoknan2, Gary Gregory">ISINValidator: Add 9 additional exception country code #129.</action>

-    <action type="add" dev="ggregory" due-to="Gary Gregory">ISINValidator: Add all codes from ISO 3166-1 alpha-2 except unassigned code elements.</action>

-    <!-- FIX -->

-    <action type="fix" issue="VALIDATOR-492" dev="ggregory" due-to="Tobias Wildgruber, Gary Gregory">ValidatorUtils.copyFastHashMap is broken.</action>

-    <action type="fix" dev="ggregory" due-to="Sebb">DomainValidator: Changes from Version 2024040200, Apr 2 07:07:02 2024 UTC.</action>

-    <!-- UPDATE -->

-    <action type="update" dev="ggregory" due-to="Dependabot">Bump org.apache.commons:commons-parent from 65 to 69 #201.</action>

-    <action type="update" dev="ggregory" due-to="Dependabot">Bump commons-logging:commons-logging from 1.3.0 to 1.3.1 #199.</action>

-  </release>

-  <release version="1.8.0" date="2023-12-02" description="Maintenance and bug fix release.">

-    <!-- FIX -->

-    <action type="fix" dev="ggregory" due-to="Gennaro Napolitano">

-      Update Javadoc for InetAddressValidator isValid #76

-    </action>

-    <action issue ="VALIDATOR-479" type="fix" dev="ggregory" due-to="Gyoo">

-      Fix typo in /routines/package-summary.html #79.

-    </action>

-    <action type="fix" dev="ggregory" due-to="John Patrick">

-      Use JUnit 5 assertThrows() #92, #93, #94, #95.

-    </action>

-    <action type="fix" dev="ggregory" due-to="step-security-bot, Gary Gregory">

-      [StepSecurity] ci: Harden GitHub Actions #136.

-    </action>

-    <action type="fix" dev="ggregory" due-to="Andrés Torres">

-      Javadoc typos #144.

-    </action>

-    <action type="fix" dev="ggregory" due-to="Gary Gregory">

-      Precompile regular expression in InetAddressValidator.isValidInet6Address(String).

-    </action>

-    <action type="fix" dev="ggregory" due-to="Gary Gregory">

-      Fix SpotBugs [ERROR] Medium: Class org.apache.commons.validator.routines.CreditCardValidator$1 defines non-transient non-serializable instance field ccr [org.apache.commons.validator.routines.CreditCardValidator$1] In CreditCardValidator.java SE_BAD_FIELD.

-    </action>

-    <action type="fix" dev="ggregory" due-to="Gary Gregory">

-      Fix SpotBugs [ERROR] High: Class org.apache.commons.validator.ValidatorAction defines non-transient non-serializable instance field validationMethod [org.apache.commons.validator.ValidatorAction] In ValidatorAction.java SE_BAD_FIELD.

-    </action>

-    <action type="fix" dev="ggregory" due-to="Gary Gregory">

-      Fix SpotBugs [ERROR] High: Found reliance on default encoding in org.apache.commons.validator.ValidatorAction.readJavascriptFile(String): new java.io.InputStreamReader(InputStream) [org.apache.commons.validator.ValidatorAction] At ValidatorAction.java:[line 428] DM_DEFAULT_ENCODING.

-    </action>

-    <action type="fix" dev="ggregory" due-to="Gary Gregory">

-      Fix SpotBugs [ERROR] Medium: Inconsistent synchronization of org.apache.commons.validator.ValidatorAction.jsFunction; locked 62% of time [org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.ValidatorAction] Unsynchronized access at ValidatorAction.java:[line 340]Unsynchronized access at ValidatorAction.java:[line 358]Synchronized access at ValidatorAction.java:[line 393]Synchronized access at ValidatorAction.java:[line 394]Synchronized access at ValidatorAction.java:[line 459]Synchronized access at ValidatorAction.java:[line 461]Synchronized access at ValidatorAction.java:[line 462] IS2_INCONSISTENT_SYNC.

-    </action>

-    <action type="fix" dev="ggregory" due-to="Gary Gregory">

-      Port tests to JUnit 5. Exception: DomainValidatorStartupTest.

-    </action>

-    <action type="fix" dev="ggregory" due-to="Gary Gregory">

-      Use singletons in org.apache.commons.validator.CreditCardValidator.

-    </action>

-    <!-- ADD -->

-    <action type="add" dev="ggregory" due-to="Dependabot, Gary Gregory">

-      Add github/codeql-action.

-    </action>

-    <action issue="VALIDATOR-477" type="adda" dev="sebb" due-to="sebb, homebeaver">

-      Add IBAN validators for LY – Libya, SD, BI, #67.

-    </action>

-    <action issue="VALIDATOR-486" type="add" dev="ggregory" due-to="tatiana-scda, Gary Gregory">

-      Add new countries to IBAN list: DJ, RU #88.

-    </action>

-    <action type="add" dev="ggregory" due-to="Arnaud Fournier, Gary Gregory">

-      Add IBANValidator.Validator.getRegexValidator().

-    </action>

-    <action type="add" dev="ggregory" due-to="Arnaud Fournier, Gary Gregory">

-      Add RegexValidator.getPatterns().

-    </action>

-    <action type="add" dev="ggregory" due-to="Gary Gregory, rossmills3, sebbASF">

-      Add country codes listed as other countries and territories in the IBAN registry for Finland: AX.

-    </action>

-    <action type="add" dev="ggregory" due-to="Gary Gregory, rossmills3, sebbASF">

-      Add country codes listed as other countries and territories in the IBAN registry for France: GF, GP, MQ, RE, PF, TF, YT, NC, BL, MF, PM, WF.

-    </action>

-    <action type="add" dev="ggregory" due-to="Gary Gregory, rossmills3, sebbASF">

-      Add country codes listed as other countries and territories in the IBAN registry for United Kingdom: IM, JE, GG.

-    </action>

-    <action type="add" dev="ggregory" due-to="Gary Gregory">

-      Add ValidatorAction.setClassName(String) and deprecate setClassname(String). 

-    </action>

-    <!-- REMOVE -->

-    <action type="remove" dev="ggregory" due-to="John Patrick, Gary Gregory">

-      Remove FindBugs, SpotBugs is in use #87.

-    </action>

-    <!-- UPDATE -->

-    <action type="update" dev="ggregory" due-to="Gary Gregory">

-      Bump Java from 7 to 8.

-    </action>

-    <action type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">

-      Bump actions/cache from 2 to 3.0.11 #71, #84. #90, #91.

-    </action>

-    <action type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">

-      Bump actions/checkout from 2.3.1 to 3.0.2, #38, #47, #70.

-    </action>

-    <action type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">

-      Bump actions/setup-java from 1.4.0 to 3.6.0 #42, #72, #98.

-    </action>

-    <action type="update" dev="ggregory" due-to="Dependabot">

-      Bump actions/upload-artifact from 3.1.0 to 3.1.1 #96.

-    </action>

-    <action type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">

-      Bump junit from 4.13 to 5.9.1 Vintage #44.

-    </action>

-    <action type="update" dev="ggregory" due-to="Dependabot">

-      Bump maven-pmd-plugin from 3.13.0 to 3.19.0 #69, #77, #80, #81.

-    </action>

-    <action type="update" dev="ggregory" due-to="Gary Gregory, Dependabot">

-      Bump commons-parent from 52 to 65 #83, #107, #111, #132.

-    </action>

-    <action type="update" dev="ggregory" due-to="Gary Gregory">

-      Bump japicmp-maven-plugin from 0.15.3 to 0.15.7.

-    </action>

-    <action type="update" dev="ggregory" due-to="Dependabot">

-      Bump maven-antrun-plugin from 3.0.0 to 3.1.0 #74.

-    </action>

-    <action type="update" dev="ggregory" due-to="Gary Gregory, Dependabot">

-      Bump commons-csv from 1.6 to 1.10.0 #118.

-    </action>

-    <action type="update" dev="ggregory" due-to="Gary Gregory">

-      Bump japicmp-maven-plugin from 0.15.7 to 0.16.0.

-    </action>

-    <action dev="ggregory" type="update" due-to="Gary Gregory">

-      Bump commons-logging:commons-logging from 1.2 to 1.3.0.

-    </action>

-  </release>

-  

-  <release version="1.7" date="2020-08-07" description="

-This is primarily a maintenance release.

-

-All projects are encouraged to update to this release of

-Apache Commons Validator.

-

-  Commons Validator requires Java 7 or later.

-

-

- Main enhancements

- =================

-

-

- * CreditCard validation specification by numeric range

- * DomainValidator instances can be created with instance overrides

- * DomainValidator supports overrides of LOCAL TLDs

-

-

- IMPORTANT NOTES

- ===============

-

-

- BREAKING CHANGES:

-

-

- * Now requires Java 7

- * N.B. Java 9 changed the way Locales are handled. This affects the output from some Date-related methods, and may cause some tests to break.

-

-

- DEPENDENCIES

- ============

-

-

- * Updates Apache Commons BeanUtils dependency from 1.9.2 to 1.9.4.

-  This picks up BEANUTILS-482: Update commons-collections from 3.2.1 to 3.2.2 (CVE-2015-4852).

-

-  For the current list of dependencies, please see

-http://commons.apache.org/validator/dependencies.html

-  ">

-    <action type="update" dev="sebb">

-    Drop Clirr and Cobertura in favour of JApiCmp and JaCoCo

-    </action>

-    <action issue="VALIDATOR-474" type="add" dev="sebb">

-    DomainValidator should allow local overrides

-    </action>

-    <action issue="VALIDATOR-473" type="add" dev="sebb">

-    Allow Email- and UrlValidator to use specified DomainValidator

-    </action>

-    <action issue="VALIDATOR-403" type="fix" dev="sebb" due-to="Tanya">

-    Accept Discover cards of 17 digits long that start with 6011

-    </action>

-    <action issue="VALIDATOR-408" type="fix" dev="sebb" due-to="Raj Vaida">

-    DISCOVER Card Validation Patterns

-    </action>

-    <action issue="VALIDATOR-472" type="fix" dev="sebb">

-    UrlValidator should not be more lax than java.net.URI

-    </action>

-    <action issue="VALIDATOR-283" type="fix" dev="sebb" due-to="RC Johnson">

-    URLValidator should check for illegal Hex characters

-    </action>

-    <action issue="VALIDATOR-445" type="fix" dev="sebb" due-to="devson">

-    Inet6Address may also contain a scope id

-    </action>

-    <action issue="VALIDATOR-452" type="fix" dev="sebb" due-to="devson">

-    Validation of URL containing IPv4-mapped IPv6 address

-    </action>

-    <action issue="VALIDATOR-471" type="add" dev="sebb">

-    Allow DomainValidator overrides at run-time

-    </action>

-    <action issue="VALIDATOR-438" type="fix" dev="sebb" due-to="Simon Marti">

-    IBANValidator fails for El Salvador

-    Add definition

-    </action>

-    <action type="update" dev="sebb">

-    IANA TLD lists: Updated to Version 2020073100, Last Updated Fri Jul 31 07:07:01 2020 UTC

-    </action>

-    <action issue="VALIDATOR-423" type="add" dev="sebb">

-    Add ISINValidator

-    </action>

-    <action issue="VALIDATOR-428" type="update" dev="pschumacher" due-to="Matthew Zavislak">

-    Update commons digester to 2.1

-    </action>

-    <action issue="VALIDATOR-434" type="fix" dev="kinow" due-to="emopers">

-    Field does not synchronize iteration on synchronized list

-    </action>

-    <action issue="VALIDATOR-437" type="fix" dev="ggregory">

-    Update Apache Commons BeanUtils dependency from 1.9.2 to 1.9.3.

-    This picks up BEANUTILS-482: Update commons-collections from 3.2.1 to 3.2.2 (CVE-2015-4852).

-    </action>

-    <action issue="VALIDATOR-460" type="fix" dev="ggregory" due-to="Jeff Schram">

-    Update Apache Commons BeanUtils dependency from 1.9.3 to 1.9.4

-    This picks up BEANUTILS-520: Mitigate CVE-2014-0114.

-    </action>

-    <action issue="VALIDATOR-455" type="add" dev="sebb" due-to="Eugen Hanussek">

-    Add IBAN validator for VA – Vatican City State

-    </action>

-    <action issue="VALIDATOR-461" type="fix" dev="sebb" due-to="Nils Reischmann">

-    Generic .gmbh top level domain is considered invalid

-    </action>

-    <action issue="VALIDATOR-444" type="fix" dev="sebb" due-to="Martin Scholz">

-    LongValidator: numbers bigger than the maxvalue are Valid

-    </action>

-    <action issue="VALIDATOR-416" type="fix" dev="sebb">

-    CreditCardValidator default ctor disagrees with Javadoc

-    </action>

-    <action issue="VALIDATOR-446" type="add" dev="sebb" due-to="Alex">

-    ISSN Validator extract ISSN from EAN-13

-    </action>

-    <action issue="VALIDATOR-467" type="fix" dev="sebb" due-to="Ivan Larionov">

-    URL validator fails if path starts with double slash and has underscores

-    </action>

-    <action issue="VALIDATOR-464" type="fix" dev="sebb" due-to="Sebastian Choina">

-    UrlValidator says "file://bad ^ domain.com/label/test" is valid

-    </action>

-    <action issue="VALIDATOR-449" type="fix" dev="sebb" due-to="Frederic Boutin">

-    Leading and trailing spaces in EmailValidator should not be valid

-    </action>

-    <action issue="VALIDATOR-302" type="fix" dev="sebb" due-to="Guido Zockoll">

-    EMailValidator: Addresses with leading spaces must not be accepted

-    </action>

-    <action issue="VALIDATOR-468" type="fix" dev="sebb">

-    DomainValidator.getTLDArray does not synch mutable arrays

-    </action>

-  </release>

-

-  <release version="1.6" date="2017-02-21" description="

-This is primarily a maintenance release.

-

-All projects are encouraged to update to this release of

-Apache Commons Validator.

-

-  Commons Validator requires Java 1.6 or later.

-

-

- Main enhancements

- =================

-

-

- * Modulus Ten Check Digit Implementation

- * Generic CreditCard validation (syntax and checkdigit only; does not check IIN)

- * CreditCard validation specification by numeric range

-

-

- IMPORTANT NOTES

- ===============

-

-

- BREAKING CHANGES:

-

-   * NONE.

-

-

- DEPENDENCIES

- ============

-

-The dependencies for Validator have not changed since the 1.4 release.

-

-For the current list of dependencies, please see

-http://commons.apache.org/validator/dependencies.html

-  ">

-    <action issue="VALIDATOR-420" type="fix" dev="sebb" due-to="Marcin Gasior">

-    Query params validator shouldn't accept whitespaces

-    </action>

-    <action issue="VALIDATOR-419" type="fix" dev="sebb" due-to="Denis Iskhakov">

-    Invalid IPv6 addresses that are IPv4-mapped pass InetAddressValidator validation

-    </action>

-    <action issue="VALIDATOR-418" type="fix" dev="britter" due-to="Robert McGuigan">

-    UrlValidatorTest: testIsValid() does not run all tests

-    </action>

-    <action issue="VALIDATOR-415" type="add" dev="sebb">

-    Simplify building new CreditCard validators

-    </action>

-    <action issue="VALIDATOR-413" type="add" dev="sebb">

-    Generic CreditCard validation

-    </action>

-    <action issue="VALIDATOR-379" type="fix" dev="sebb">

-    CodeValidator unconditionally trim()s the input string - document the behavior

-    </action>

-    <action issue="VALIDATOR-387" type="fix" dev="sebb" due-to="Shumpei Akai">

-    Userinfo without colon should be valid in UrlValidator

-    </action>

-    <action issue="VALIDATOR-394" type="add" dev="sebb" due-to="Niall Pemberton">

-    General Modulus Ten Check Digit Implementation

-    </action>

-    <action issue="VALIDATOR-411" type="fix" dev="sebb">

-    UrlValidator accepts ports above max limit of 16-bit unsigned integer

-    </action>

-    <action type="update" dev="sebb">

-    IANA TLD lists: Updated to Version 2017020400, Last Updated Sat Feb  4 07:07:01 2017 UTC

-    </action>

-    <action type="update" dev="sebb">

-    Update to version 73 of SWIFT IBAN list: added BY (Belarus) and IQ (Iraq); fixed Santa Lucia format

-    </action>

-    <action issue="VALIDATOR-407" type="fix" dev="sebb">

-    Generic .shop top level domain is considered invalid

-    </action>

-    <action issue="VALIDATOR-405" type="fix" dev="sebb">

-    IBANValidator - Costa Rica entry has been updated in SWIFT docs

-    </action>

-    <action issue="VALIDATOR-401" type="fix" dev="britter">

-    IBANValidator fails for Seychelles and Ukraine

-    </action>

-    <action issue="VALIDATOR-391" type="fix" dev="sebb" due-to="Mark E. Scott, Jr. &amp; Jason Loomis">

-    UrlValidator.isValid throws exception for FILEURLs

-    Fixed code so it handles URLs with no authority field

-    </action>

-  </release>

-  <release version="1.5.1" date="2016-04-30" description="

-This is a maintenance release.

-

-All projects are encouraged to update to this release of

-Apache Commons Validator.

-

-  Commons Validator requires Java 1.6 or later.

-

-

- IMPORTANT NOTES

- ===============

-

-

- BREAKING CHANGES:

-

-   * NONE.

-

-

- DEPENDENCIES

- ============

-

-The dependencies for Validator have not changed since the 1.4 release.

-

-For the current list of dependencies, please see

-http://commons.apache.org/validator/dependencies.html

-  ">

-    <action issue="VALIDATOR-392" type="fix" dev="sebb" due-to="Tim Deboer">

-    Mastercard Series 2 BIN ranges (active from October 2016) added to CreditCardValidator

-    To disable the new ranges, use option MASTERCARD_PRE_OCT2016 or validator MASTERCARD_VALIDATOR_PRE_OCT2016

-    </action>

-    <action issue="VALIDATOR-386" type="fix" dev="sebb" due-to="Auke van Leeuwen">

-    org.apache.commons.validator.routines.DomainValidator.ArrayType is not public

-    </action>

-    <action issue="VALIDATOR-359" type="fix" dev="sebb" due-to="Dora Kinghorn">

-    EmailValidator does not catch invalid email address like dora@.com

-    </action>

-    <action issue="VALIDATOR-384" type="fix" dev="sebb" due-to="Kris Babic">

-    EmailValidator does not support escaped quotes in a quoted string

-    </action>

-    <action issue="VALIDATOR-351" type="add" dev="sebb">

-    DomainValidator - allow access to internal arrays

-    </action>

-    <action type="update" dev="sebb">

-    Updated to TLD list Version 2016042500, Last Updated Mon Apr 25 07:07:01 2016 UTC

-    </action>

-  </release>

-  <release version="1.5.0" date="2015-11-24" description="

-This is a maintenance release.

-

-All projects are encouraged to update to this release of

-Apache Commons Validator.

-

-  Commons Validator requires Java 1.6 or later.

-

-

- IMPORTANT NOTES

- ===============

-

-

- BREAKING CHANGES:

-

-   * NONE.

-

-

- DEPENDENCIES

- ============

-

-The dependencies for Validator have not changed since the 1.4 release.

-

-For the current list of dependencies, please see

-http://commons.apache.org/validator/dependencies.html

-  ">

-    <action issue="VALIDATOR-364" type="fix" dev="sebb" due-to="teo bran">

-    Email Validator does not support quoted/escaped character in the local part of the email address

-    </action>

-    <action issue="VALIDATOR-381" type="fix" dev="ggregory">

-    Update commons-collections from 3.2.1 to 3.2.2.

-    </action>

-    <action issue="VALIDATOR-363" type="fix" dev="sebb">

-    UrlValidator rejects path having two or more successive dots

-    </action>

-    <action issue="VALIDATOR-330" type="fix" dev="sebb">

-    IBANCheckDigit.isValid() returns True for some invalid IBANs

-    </action>

-    <action issue="VALIDATOR-380" type="fix" dev="sebb">

-    UrlValidator does not allow for optional port digits

-    </action>

-    <action issue="VALIDATOR-332" type="update" dev="sebb">

-    IIBANCheckDigit.calculate does not enforce initial checksum value

-    Checkdigit field is now unconditionally set to "00" to ensure correct generation

-    </action>

-    <action issue="VALIDATOR-353" type="update" dev="sebb">

-    UrlValidator does not allow for optional userinfo in the authority

-    </action>

-    <action issue="VALIDATOR-321" type="add" dev="sebb">

-    ISSN validator and converter to EAN-13

-    </action>

-    <action issue="VALIDATOR-325" type="add" dev="sebb">

-    Improve IBAN validation with format checks

-    </action>

-    <action issue="VALIDATOR-369" type="fix" dev="sebb">

-    DateValidatorTest.testCompare() fails with GMT-12

-    </action>

-    <action issue="VALIDATOR-372" type="add" dev="sebb">

-    Validate 19 digit VPay (VISA)

-    </action>

-    <action issue="VALIDATOR-375" type="fix" dev="sebb">

-    UrlValidator fails on IPv6 URL

-    </action>

-    <action issue="VALIDATOR-361" type="add" dev="sebb">

-    UrlValidator rejects new gTLDs with more than 4 characters

-    Added unit test to show that this has been fixed

-    </action>

-    <action issue="VALIDATOR-341" type="add" dev="sebb">

-    Make TLD list configurable;

-    both generic and country-code now support addition and removal

-    </action>

-    <action issue="VALIDATOR-374" type="fix">

-    Email Validator : .school domain is being rejected

-    Add Unit test to show it has been fixed

-    </action>

-    <action issue="VALIDATOR-376" type="fix" dev="rgoers">

-      Revert EmailValidator to handle top level domains to the behavior prior to VALIDATOR-273. Allow an optional

-      behavior to allow the behavior VALIDATOR-273 implemented. Note that this is a behavioral change for users

-      of version 1.4.1, but not for anyone upgrading from a release prior to that.

-    </action>

-    <action issue="VALIDATOR-371" type="remove">Drop the Javascript code entirely</action>

-    <action issue="VALIDATOR-362" dev="britter" type="fix" due-to="Teo Bran">

-      Local part of the email address should not be longer than 64 bytes

-    </action>

-    <action issue="VALIDATOR-356" dev="sebb" type="fix" >

-      IDN.toASCII drops trailing dot in Java 6 &amp; 7

-    </action>

-    <action issue="VALIDATOR-355" dev="britter" type="update" >

-      Update to Java 6

-    </action>

-  </release>

-

-  <release version="1.4.1" date="2014-01-13" description="1.4 Maintenance release">

-    <action issue="VALIDATOR-342" dev="sebb" type="fix" due-to="Donal Murtagh">

-     URLValidator returns false for http://example.rocks

-    </action>

-    <action issue="VALIDATOR-235" dev="sebb" type="fix" due-to="Brian Preuß">

-     UrlValidator rejects url with Unicode characters in domain label or TLD

-    </action>

-    <action issue="VALIDATOR-339" dev="sebb" type="fix" due-to="Alex Blume">

-     URLValidator fails validating domain names with a trailing period, which are valid.

-    </action>

-    <action issue="VALIDATOR-306" dev="sebb" type="fix" due-to="Jukka Timonen">

-     DomainValidator accepts labels longer than 63 chars and domain name lengths exceeding 255 chars

-    </action>

-    <action issue="VALIDATOR-349" dev="sebb" type="update">

-     TLD tables should be pre-sorted

-    </action>

-    <action issue="VALIDATOR-290" dev="sebb" type="update" due-to="Alexander Rytov">

-     Create new url validation using rfc3986 and IDN - added new test

-    </action>

-    <action issue="VALIDATOR-350" dev="sebb" type="fix">

-     Should "x.root" validate as a domain name?

-     Removed "root" from TLD list.

-     Also "um" and "yu" as they are currently "Not assigned"

-    </action>

-    <action issue="VALIDATOR-308" dev="sebb" type="fix" due-to="Til Boerner">

-      Logical errors in util.Flags affecting check of multiple flags as well as flag 64

-    </action>

-    <action issue="VALIDATOR-344" dev="sebb" type="fix" >

-      AbstractCheckDigit class does not fully test invalid strings

-      Fix up the testCalculateInvalid() invalid method to allow for

-      either invalid checksum or syntax (CheckDigitException) error

-      when testing the entries in the invalid array.

-    </action>

-    <action issue="VALIDATOR-297" dev="sebb" type="fix">

-      Punycode url is not valid

-      Top-level domain regex matching was wrong; did not allow embedded "-" as per RFC2396

-    </action>

-    <action issue="VALIDATOR-334" dev="sebb" type="update">

-      UrlValidator: isValidAuthority() returning true when supplied authority validator fails

-    </action>

-    <action issue="VALIDATOR-309" dev="sebb" type="fix" due-to="Rashid Rashidov">

-      UrlValidator does not validate uppercase URL schemes

-    </action>

-    <action issue="VALIDATOR-343" dev="sebb" type="fix" due-to="Sam Cooley">

-      Doc URL update for broken link

-    </action>

-    <action issue="VALIDATOR-346" dev="sebb" type="fix" >

-      SedolCheckDigit fails to reject invalid (non-numeric) check digits

-    </action>

-    <action issue="VALIDATOR-345" dev="sebb" type="fix" >

-      ISINCheckDigit fails to reject invalid (non-numeric) check digits

-    </action>

-    <action issue="VALIDATOR-336" dev="sebb" type="fix" >

-      CUSIPCheckDigit thinks invalid CUSIP is valid

-    </action>

-    <action issue="VALIDATOR-348" dev="sebb" type="update" >

-      Update TLD list to latest version (Version 2014123000)

-    </action>

-    <action issue="VALIDATOR-347" dev="sebb" type="fix" >

-      toLowerCase() method is Locale-sensitive and should not be used

-      Fixed 4 instances in DomainValidator

-    </action>

-    <action issue="VALIDATOR-307" dev="adrianc" type="update">

-      isValid checks if the given address is only IPV4 address and not IPV6

-    </action>

-    <action  issue="VALIDATOR-337" dev="britter" type="update" due-to="Ben Ripkens" >

-      Deprecate the JS part of commons validator

-    </action>

-    <action issue="VALIDATOR-266" dev="britter" type="fix" due-to="Bruce Collie" >

-      DomainValidator uses an O(n) method where an O(1) would be more appropriate

-    </action>

-    <action issue="VALIDATOR-273" dev="britter" type="fix" due-to="Chris Lee" >

-      EmailValidator does not support mailboxes at TLDs

-    </action>

-    <action  issue="VALIDATOR-317" dev="britter" type="fix" due-to="Arūnas Bendoraitis" >

-      DomainValidator missing sTLD - "xxx"

-    </action>

-    <action issue="VALIDATOR-327" dev="britter" type="fix" due-to="Arūnas Bendoraitis" >

-      Missing sx tld.

-    </action>

-    <action issue="VALIDATOR-305" dev="britter" type="fix" due-to="Arūnas Bendoraitis" >

-      Some TLDs are missing from DomainValidator

-    </action>

-    <action issue="VALIDATOR-331" dev="sebb" type="fix">

-      IBANCheckDigitTest.createInvalidCodes(String[] codes) uses wrong values

-    </action>

-  </release>

-

-  <release version="1.4.0" date="2012-02-03" description="JDK 1.4 (minimum)">

-    <action dev="simonetripodi" type="fix" issue="VALIDATOR-301" due-to="Jacob Zwiers">

-      CheckStyle and FindBug Issues - inner classes and key sets

-    </action>

-    <action dev="nick" type="fix" issue="VALIDATOR-293" due-to="Will Glass-Husain">

-      Email validation fails with dash or hyphen at end of local address

-    </action>

-    <action dev="nick" type="fix" issue="VALIDATOR-292">

-      @localhost and @localhost.localdomain email addresses aren't correctly detected as valid

-    </action>

-    <action dev="nick" type="fix" issue="VALIDATOR-289" due-to="GM">

-      UrlValidator.isValid does not properly validate *.travel domains

-    </action>

-    <action dev="niallp" type="update" issue="VALIDATOR-288" due-to="feroze daud">

-      UrlValidator does not validate URL with simple domains (eg: http://hostname )

-    </action>

-    <action dev="nick" type="fix" issue="VALIDATOR-286">

-      isValid method for EmailValidator should return false for domain with special characters only

-    </action>

-    <action dev="nick" type="fix" issue="VALIDATOR-282">

-      formatDate(String value, Locale locale) in GenericTypeValidator uses DateFormat.SHORT instead of DateFormat.DEFAULT

-    </action>

-    <action dev="nick" type="fix" issue="VALIDATOR-276">

-      isValidURL call returns false for file scheme/protocol when URL is correct

-    </action>

-    <action dev="nick" type="fix" issue="VALIDATOR-271" due-to="Ralf Hauser">

-      gmail testing addresses do not validate

-    </action>

-    <action dev="niallp" type="update" issue="VALIDATOR-275" due-to="Adam Gordon">

-      EmailValidator.isValid(String) follows RFC822 but violates RFC1034

-    </action>

-    <action dev="bspeakmon" type="update" issue="VALIDATOR-252" due-to="Makoto Uchino">

-      Performance improvement of DomainValidator by change the regular expression

-    </action>

-    <action dev="niallp" type="update" issue="VALIDATOR-251" due-to="Meenal Gupta">

-      url with brackets is not validated thru URLvalidator class.

-    </action>

-    <action dev="niallp" type="update" issue="VALIDATOR-250">

-      Banking CheckDigit implementations: ABA, CUSIP, IBAN, ISIN and Sedol

-    </action>

-    <action dev="niallp" type="update" issue="VALIDATOR-249">

-      Add Diners card validation to CreditCardValidator

-    </action>

-    <action dev="bspeakmon" type="update" issue="VALIDATOR-248" due-to="Sergey Nebolsin">

-      Add an option to allow 'localhost' as a valid hostname part in the URL

-    </action>

-    <action dev="niallp" type="update" issue="VALIDATOR-247" due-to="bspeakmon">

-      Move CreditCardValidator to routines package and refactor to use new CodeValidator

-    </action>

-    <action dev="bspeakmon" type="update" issue="VALIDATOR-242">

-      Move EmailValidator to routines package

-    </action>

-    <action dev="bspeakmon" type="update" issue="VALIDATOR-241" due-to="niallp">

-      New InetAdress Validator implementation

-    </action>

-    <action dev="niallp" type="update" issue="VALIDATOR-240" due-to="Webb Morris">

-      Support the 65 prefix for Discover Card

-    </action>

-    <action dev="niallp" type="update" issue="VALIDATOR-234" due-to="Paul Benedict">

-      Create 1.4 DTD

-    </action>

-    <action dev="niallp" type="update" issue="VALIDATOR-233" due-to="Paul Benedict">

-      Switch to using Version 0.4.3 of the Dojo Compressor from the maven repo

-    </action>

-    <action dev="bspeakmon" type="update" issue="VALIDATOR-232" due-to="Paul Benedict">

-      Add script attribute to control script generation

-    </action>

-    <action dev="nick" type="fix" issue="VALIDATOR-300" due-to="Jacob Zwiers">

-      clirr Report - EmailValidator.isValidIpAddress() argument type change

-    </action>

-    <action dev="niallp" type="fix" issue="VALIDATOR-226" due-to="Lian Ort">

-      Null-Stream input to ValidatorResources leads to MalformedURLExceptions

-    </action>

-    <action dev="niallp" type="update" issue="VALIDATOR-224" due-to="Hasan Turksoy">

-      validatorUtilities.js - replace colon characters in the function name (JSF/Shale)

-    </action>

-    <action dev="niallp" type="update" issue="VALIDATOR-223" due-to="Hasan Turksoy">

-      Move the trim() function from validateRequired.js to validateUtilities.js

-    </action>

-    <action dev="niallp" type="fix" issue="VALIDATOR-220" due-to="Adam Gordon">

-      EmailValidator fails with ArrayIndexOutOfBoundsException on domain names longer than 10 segments

-    </action>

-    <action dev="bspeakmon" type="fix" issue="VALIDATOR-218" due-to="Stephen Chu">

-      UrlValidator fail when path contains "(" / ")"

-    </action>

-    <action dev="bspeakmon" type="fix" issue="VALIDATOR-216" due-to="Kenji Matsuoka">

-      UrlValidator rejects top-level domains (TLDs) with more than 4 characters

-    </action>

-    <action dev="niallp" type="add" issue="VALIDATOR-215">

-      New generic CodeValidator that validates format, length and Check Digit for a code

-    </action>

-    <action dev="niallp" type="add" issue="VALIDATOR-214">

-      New Regular Expression validator using JDK 1.4's Regex

-    </action>

-    <action dev="niallp" type="add" issue="VALIDATOR-213">

-      Factor out Check Digit logic into separate implementations

-    </action>

-    <action dev="niallp" type="update" issue="VALIDATOR-211">

-      Upgrade to Digester 1.8

-    </action>

-    <action dev="bspeakmon" type="update" issue="VALIDATOR-203" due-to="bayard">

-      Refactor UrlValidator - especially the line 370-ish.

-    </action>

-    <action dev="niallp" type="update" issue="VALIDATOR-197">

-      Copy remaining Validation Routines to the new routines package

-    </action>

-    <action dev="bspeakmon" type="update" issue="VALIDATOR-193" due-to="Matthias Wessendorf">

-      Removing ORO dep. from GenericValidator

-    </action>

-    <action dev="niallp" type="update" issue="VALIDATOR-192" due-to="Matthias Wessendorf">

-      Adding ISBNValidator to GenericValidator

-    </action>

-    <action dev="niallp" type="update" issue="VALIDATOR-191" due-to="Matthias Wessendorf">

-      Remove the dependency on Jakarta ORO (move to JDK 1.4 regular expression support)

-    </action>

-    <action dev="niallp" type="update" issue="VALIDATOR-188" due-to="Gabriel Belingueres">

-      Extend ISBN validator to support smooth transition to ISBN-13 / EAN-13 standard

-    </action>

-    <action dev="niallp" type="update">

-      JDK 1.4 - change minimum dependency for validator to be JDK 1.4 (was 1.3). Primary reason

-      for this is to use JDK 1.4+ built in regular expression support and remove the dependency

-      on Jakarta ORO.

-    </action>

-  </release>

-

-  <release version="1.3.1" date="2006-11-28" description="1.3 Maintenance Release.">

-    <action dev="niallp" type="update">

-      Dependencies for Validator 1.3.1 are unchanged since the 1.3.0 release.

-      N.B. Jakarta ORO has now been marked as an optional dependency

-      in the project.xml as it is only required by the Email, URL and Regular Expression validations.

-    </action>

-    <action dev="niallp" type="fix" issue="VALIDATOR-208" due-to="Leo Asanov">

-    JavaScript function jcv_isFieldPresent() causes error in IE5 using "undefined".

-    </action>

-    <action dev="niallp" type="fix" issue="VALIDATOR-190">

-    EmailValidator allows control characters (ASCII 0-31 and 127).

-    <dueto name="Cott"/>

-    <dueto name="Gabriel Belingueres"/>

-    </action>

-    <action dev="niallp" type="fix" issue="VALIDATOR-210" due-to="Neil Sherman">

-    JavaScript Causes HTML Page to Contain Illegal HTML.

-    </action>

-    <action dev="niallp" type="update" issue="VALIDATOR-209" due-to="Craig McClanahan">

-    Additional constructor for ValidatorResources that takes URL["> instead of String[">.

-    </action>

-    <action dev="niallp" type="fix" issue="VALIDATOR-195" due-to="Vijay Pandey">

-    Fix loading of Digester rules for custom ValidatorResources implementations.

-    </action>

-    <action dev="niallp" type="fix" issue="VALIDATOR-19" due-to="Masahiro Honda">

-    Validator incorrectly storing itself under the FORM_PARAM key rather than

-    the Form.

-    </action>

-    <action dev="bayard" type="fix" issue="VALIDATOR-204" due-to="Ben">

-    Urlvalidator returns false for a valid URL containing an underscore.

-    </action>

-    <action dev="bayard" type="fix" issue="VALIDATOR-202" due-to="Ben">

-    Urlvalidator fails with an ArrayIndexOutOfBoundsException.

-    </action>

-    <action dev="niallp" type="fix" issue="VALIDATOR-199" due-to="Tim Mulligan">

-    The ant build.xml doesn't include validator_1_1_3.dtd in the jar.

-    </action>

-    <action dev="niallp" type="fix" issue="VALIDATOR-198" due-to="Matthias Fischer">

-    Example does not compile using ant build script.

-    </action>

-    <action dev="niallp" type="fix" issue="VALIDATOR-189" due-to="Thomas Bailey">

-    Validating indexed properties fails when null.

-    </action>

-    <action dev="martinc" type="fix" issue="VALIDATOR-89" due-to="Takayuki Kaneko">

-    Fix a thread safety issue in parameter initialization.

-    </action>

-  </release>

-

-  <release version="1.3.0" date="2006-03-24" description="1.3 Release - New 'routines' package plus Bug fixes for 1.2.0">

-    <action dev="niallp" type="fix" issue="VALIDATOR-49" due-to="bart vandendriessche">

-     ValidatorResult only contains last run dependency for the field.

-    </action>

-    <action dev="niallp" type="fix" issue="VALIDATOR-20" due-to="Rostislav Palivoda">

-     Validator argument - resource="false" ignored for arg0 - arg3.

-    </action>

-    <action dev="niallp" type="fix" issue="VALIDATOR-60" due-to="Yugandhar">

-     Change JavaScript validators to cater for disabled being undefined (an issue in Netscape 4.7).

-    </action>

-    <action dev="niallp" type="add">

-     <p>Add new routines package containing standard validations - first

-      step in the process of clearly separating standard validation

-      functions which can be used independently, from the framework

-      aspect of Commons Validator.</p>

-     <p>New validators added for Date, Time, Calendar, Byte, Short,

-      Integer, Long, Float, Double, BigInteger, BigDecimal,

-      Currency and Percent.</p>

-     <p>See <a href="apidocs/org/apache/commons/validator/routines/package-summary.html">

-      Routines Package Javadocs</a></p>

-    </action>

-    <action dev="niallp" type="add" issue="VALIDATOR-30">

-     Deprecate ValidatorResult's getActionMap() and add getActions()

-     method to provide an Iterator of the set of action names.

-    </action>

-    <action dev="niallp" type="add" issue="VALIDATOR-142" due-to="Michael Rush">

-     Use the Dojo/Rhino JavaScript compressor to created compressed

-     versions of the static JavaScript files. Additionally create single

-     file distros of all the static JavaScript in un-compressed and compressed

-     format. See Dojo/Rhino Compressor.

-    </action>

-    <action dev="niallp" type="fix">

-     Prefix remaining JavaScript utility methods with "jcv_" to reduce

-     the likelihood of clashes with other libraries - validator still

-     needs to be properly namespaced (as per Bug 38184).

-    </action>

-    <action dev="niallp" type="fix" issue="VALIDATOR-163">

-     Change JavaScript validators so that they don't fail when the

-     field is not present on the form.

-    <dueto name="Andrew Berridge"/>

-    <dueto name="Paul Benedict"/>

-    </action>

-    <action dev="niallp" type="fix" issue="VALIDATOR-25" due-to="Alan Olmanson">

-     Fix min/max length validation for different line endings.

-    </action>

-    <action dev="niallp" type="fix" issue="VALIDATOR-50" due-to="Stephanie Codron">

-     Fix email validator to not allow spaces at the end of the user

-     component or start of the domain component.

-    </action>

-    <action dev="niallp" type="add" issue="VALIDATOR-77" due-to="Neale">

-     Added validator_1_3_0.dtd and changed form rules so that a minimum

-     of one field is no longer required (i.e. changed (field+) to (field*)

-     for a form).

-    </action>

-    <action dev="niallp" type="fix" issue="VALIDATOR-109" due-to="Philippe Mouawad">

-     Resolve issue in JavaScript validation when the prototype library

-     is used.

-    </action>

-    <action dev="niallp" type="fix">

-     Re-factor JavaScript error handling into a common method and only

-     set focus on fields which are not 'hidden' type or hidden by CSS.

-    <fixes issue="VALIDATOR-97"/>

-    <fixes issue="VALIDATOR-81"/>

-    <dueto name="Matt Bathje"/>

-    <dueto name="Paul Benedict"/>

-    </action>

-    <action dev="niallp" type="fix">

-     Remove static Log instances to avoid problems if deployed via a shared

-     classloader in a container. See

-     <a href="http://wiki.apache.org/commons/Logging/StaticLog">here</a>

-     for more details.

-    </action>

-    <action dev="niallp" type="fix" issue="VALIDATOR-39">

-     Reverse change for to Credit Card Validator for visa card blue in France.

-    </action>

-    <action dev="niallp" type="fix" issue="VALIDATOR-18" due-to="Kristian L. Petersen">

-     Fix JavaScript validation for Internet Explorer 5.0.

-    </action>

-  </release>

-

-  <release version="1.2.0" date="2005-11-15"

-     description="1.2 Release - see http://wiki.apache.org/commons/ValidatorVersion120">

-    <action dev="dgraham" type="add" issue="VALIDATOR-145">

-    Added ISBNValidator for validating book numbers.

-    </action>

-    <action dev="dgraham" type="update">

-    Upgrade dependency versions to

-    <a href="http://commons.apache.org/beanutils/">Commons BeanUtils</a> 1.7.0,

-    <a href="http://commons.apache.org/digester/">Commons Digester</a> 1.6

-    and <a href="http://commons.apache.org/logging/">Commons Logging</a> 1.0.4.

-    Remove dependency on

-    <a href="http://commons.apache.org/beanutils/">Commons Collections</a>

-    (BeanUtils 1.7.0 has removed its dependency on Collections by including the

-     few Collections classes required in its distribution).

-    </action>

-    <action dev="husted" type="add" issue="VALIDATOR-135">

-    Add support for min or max numeric values.

-    </action>

-    <action dev="husted" type="add" issue="VALIDATOR-137">

-    Allow validators to register errors for multiple fields.

-    </action>

-    <action dev="husted" type="fix" issue="VALIDATOR-85">

-    Fixed EmailValidator failing on valid email addresses.

-    </action>

-    <action dev="rleland" type="add" issue="VALIDATOR-132">

-    Allow forms to inherit validation rules from other forms.

-    </action>

-    <action dev="niallp" type="add" issue="VALIDATOR-166">

-    Remove the need to specify an Arguement's position.

-    </action>

-    <action dev="dgraham" type="add" issue="VALIDATOR-185">

-    Deprecated all FastHashMap usage and provided protected get

-    methods that return generic Maps to be used by subclasses.

-    </action>

-    <action dev="mrdon" type="fix">

-    Handling of float and double should use the locale object.

-    Fixes <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=21282">21282</a>

-    <fixes issue="VALIDATOR-124"/>

-    </action>

-    <action dev="mrdon" type="update" issue="VALIDATOR-181">

-    More informative Exception message when validation method not found.

-    </action>

-    <action dev="mrdon" type="fix" issue="VALIDATOR-148">

-    Client-side required validation inconsistent with server-side.

-    </action>

-    <action dev="mrdon" type="fix" issue="VALIDATOR-101">

-    EmailValidator allows apostrophes in domain name.

-    </action>

-    <action dev="mrdon" type="fix">

-    Changing the strategy for locating form name/id, now use a common utility

-    function which works in both IE and Firefox.

-    Fixes <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=35127">35127</a>

-    and <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=35127">32760</a>

-    </action>

-    <action dev="mrdon" type="fix">

-    Validation fails when "name" attribute in form not specified.

-    <fixes issue="VALIDATOR-80"/>

-    <fixes issue="VALIDATOR-73"/>

-    </action>

-    <action dev="mrdon" type="fix" issue="VALIDATOR-27">

-    UrlValidator fails http://www.google.com.

-    </action>

-    <action dev="mrdon" type="fix">

-    Email: inexisting dashes and TLD erroneously accepted.

-    <fixes issue="VALIDATOR-114"/>

-    <fixes issue="VALIDATOR-44"/>

-    </action>

-    <action dev="mrdon" type="fix" issue="VALIDATOR-1">

-    Float validator can't validate the string with several dot.

-    </action>

-    <action dev="mrdon" type="fix" issue="VALIDATOR-39">

-    CreditValidator does not handle Visa correctly.

-    </action>

-    <action dev="mrdon" type="fix" issue="VALIDATOR-32">

-    datePattern not supported by JavaScript.

-    </action>

-    <action dev="mrdon" type="fix" issue="VALIDATOR-6">

-    validateRequired on a single radio button.

-    </action>

-    <action dev="mrdon" type="fix" issue="VALIDATOR-158">

-    Field.validate() cannot be invoked from user-defined code.

-    </action>

-    <action dev="mrdon" type="fix">

-    Locale validation doesn't validate all fields.

-    <fixes issue="VALIDATOR-61"/>

-    <fixes issue="VALIDATOR-179"/>

-    </action>

-    <action dev="mrdon" type="fix" issue="VALIDATOR-161">

-    XML file included into validation.xml via entity reference not found.

-    </action>

-    <action dev="niallp" type="fix" issue="VALIDATOR-117">

-    Update maven build to Include DTDs and xdocs in the source distribution.

-    </action>

-    <action dev="niallp" type="fix">

-    Remove logging of exceptions when the Date validation fails (correctly) with

-    an invalid date.

-    </action>

-    <action dev="niallp" type="fix">

-    Add version 1.1.3 of the DTD from the VALIDATOR_1_1_2_BRANCH and change

-    digester rules so that the old arg0-arg3 values are not ignored for

-    versions of the DTD prior to 1.2.0.

-    </action>

-    <action dev="niallp" type="add" issue="VALIDATOR-108">

-    Add 'resource' and 'bundle' elements to the 1.2.0 DTD.

-    </action>

-    <action dev="niallp" type="add" issue="VALIDATOR-172">

-    Provide access to the result object in ValidatorResult.

-    </action>

-    <action dev="niallp" type="fix" issue="VALIDATOR-75">

-    Validation breaks on multiple validation.xml (eg. with Struts 1.3).

-    </action>

-    <action dev="niallp" type="fix" issue="VALIDATOR-86">

-    GenericTypeValidator does not accept negative Floats/Doubles.

-    </action>

-    <action dev="niallp" type="fix" issue="VALIDATOR-48">

-    correct UrlValidator Javadoc.

-    </action>

-    <action dev="niallp" type="add" issue="VALIDATOR-3">

-    Search the locale 'hierarchy' of formsets for a Form.

-    </action>

-    <action dev="niallp" type="fix" issue="VALIDATOR-59">

-     Int validation in Java and Javascript have different semantics.

-    </action>

-    <action dev="niallp" type="fix" issue="VALIDATOR-33">

-     Javascript Validation currently uses unsupported DOM method getAttributeNode().

-    </action>

-  </release>

-

-  <release version="1.1.4" date="2004-11-12" description="1.1 Maintenance Release.">

-    <action dev="niallp" type="add" issue="VALIDATOR-175">

-    Added getMessage(key) and getMessages() methods to Field

-    </action>

-    <action dev="niallp" type="add">

-    Added resource property (including getter/setter) to Msg to support

-    the 'resource' attribute specified in the DTD.

-    </action>

-  </release>

-

-  <release version="1.1.3" date="2004-08-25" description="1.1 Release">

-    <action dev="dgraham" type="fix" issue="VALIDATOR-16">

-    Fixed javascript file reading in Java WebStart environment.

-    </action>

-    <action dev="mrdon" type="fix" issue="VALIDATOR-54">

-    Fixed javascript email domain length limited to 2 or 3 chars.

-    </action>

-  </release>

-

-  <release version="1.1.2 (alpha)" date="2004-04-03" description="1.1 Alpha">

-    <action dev="rleland" type="fix" issue="VALIDATOR-24">

-    Javascript validation doesn't work if a form field is

-    called "name".

-    </action>

-    <action dev="rleland" type="update">

-    Allow multiple forms to be on the same page by

-    generating a unique variable name based on form name.

-    Fixes <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=17667">17667</a>

-    </action>

-    <action dev="rleland" type="add" issue="VALIDATOR-152">

-    Validate file extensions for file uploads.

-    </action>

-    <action dev="rleland" type="add" issue="VALIDATOR-183">

-    Add Support for hidden fields in javascript

-    validations.

-    </action>

-    <action dev="dgraham" type="update" issue="VALIDATOR-14">

-    The framework will convert checked exceptions into

-    ValidatorExceptions so any ValidatorException thrown out

-    of the framework indicates a 'system' exception that

-    stops validation processing. If a pluggable validation

-    method throws a ValidatorException it will be rethrown

-    and passed out of the framework. Any other exception from

-    a pluggable validation method is still considered a validation

-    failure rather than a system exception to maintain backwards

-    compatibility.

-    </action>

-    <action dev="dgraham" type="add" issue="VALIDATOR-174">

-    Added a more flexible card validation system that doesn't

-    require CreditCardValidator to support every brand of

-    credit card.

-    </action>

-    <action dev="dgraham" type="update">

-    Throw RuntimeException if clone fails instead of InternalError.

-    </action>

-    <action dev="dgraham" type="add">

-     Added Flags.clear().

-    </action>

-  </release>

-

-  <release version="1.1.1 (alpha)" date="2003-12-15" description="1.1 Alpha">

-    <action dev="rleland" type="add">

-    Add javadoc to javascript, and use

-    <a href="http://jsdoc.sf.net"> jsdoc</a> to process it.

-    </action>

-    <action dev="rleland" type="fix">

-    Ignore validation criteria when field is disabled for all field types.

-    </action>

-    <action dev="rleland" type="add">

-    Add required check for single checkbox.

-    </action>

-    <action dev="rleland" type="add">

-    Let max/min length also cover passwords fields. Don't use

-    these for checking login pages, only when the user is

-    modifying the password.

-    </action>

-    <action dev="dgraham" type="add">

-    Added Field.getArgs(String) to make it easier to retrieve

-    all of the Args for a given validator.

-    </action>

-    <action dev="rleland" type="fix">

-    Modify javascript to honor datapattern option.

-    </action>

-    <action dev="rleland" type="add">

-    Add ability of required to handle checkboxes, radio, select-one,

-    and select-multiple field types.

-    </action>

-    <action dev="rleland" type="add">

-    Add ability to use required condition on array types like checkboxes.

-    </action>

-  </release>

-

-  <release version="1.1.0 (alpha)" date="2003-08-26" description="1.1 Alpha">

-    <action dev="dgraham" type="update">

-    Move Digester rule configuration to XML file and remove

-    ValidatorResourcesInitializer. ValidatorResources now

-    knows how to initialize itself.

-    </action>

-    <action dev="dgraham" type="update">

-    Clean up scopes of methods and variables.

-    </action>

-    <action dev="dgraham" type="update">

-    Make Arg system more flexible to allow any number of

-    args in a message.

-    </action>

-    <action dev="dgraham" type="update">

-    Validate validation.xml files while initializing a Validator

-    to alert developers to configuration errors.

-    </action>

-    <action dev="dgraham" type="add">

-    Refactored <code>GenericValidator</code> methods into reusable

-    objects.  These include: CreditCardValidator, EmailValidator,

-    DateValidator, and UrlValidator.

-    </action>

-    <action dev="dgraham" type="update">

-    <p><strong>Backwards Incompatible Changes</strong></p>

-    <ul>

-      <li>

-        &lt;msg&gt;'s name and key attributes are now required.  The Validator code was

-        enforcing this constraint so now it's formally defined in the DTD.

-      </li>

-    </ul>

-    </action>

-    <action dev="dgraham" type="remove">

-      <p>Deprecated items; see the javadoc for details and replacements.</p>

-    <ul>

-      <li>

-         The &lt;arg0-3&gt; elements have been replaced with a single &lt;arg&gt; element

-         with a new <code>position</code> attribute.  Setting position to 0 is the equivalent

-         of an &lt;arg0&gt; element.

-      </li>

-      <li>

-         <code>Arg.getResource()</code>

-      </li>

-      <li>

-         <code>CreditCardValidator.isValidPrefix()</code>

-      </li>

-      <li>

-         <code>Field.ARG_DEFAULT</code>

-      </li>

-      <li>

-         <code>Field.hDependencies</code>

-      </li>

-      <li>

-         <code>Field.hArg0 - Field.hArg3</code>

-      </li>

-      <li>

-         <code>Field.addArg0() - Field.addArg3()</code>

-      </li>

-      <li>

-         <code>Field.getArg0() - Field.getArg3()</code>

-      </li>

-      <li>

-         <code>Field.addVarParam()</code>

-      </li>

-      <li>

-         <code>Field.process()</code>

-      </li>

-      <li>

-         <code>Field.processMessageComponents()</code>

-      </li>

-      <li>

-         <code>Field.getDependencies()</code>

-      </li>

-      <li>

-         <code>Form.getFieldMap()</code>

-      </li>

-      <li>

-         <code>Form.process()</code>

-      </li>

-      <li>

-         <code>FormSet.addConstant()</code>

-      </li>

-      <li>

-         <code>FormSet.addConstantParam()</code>

-      </li>

-      <li>

-         <code>FormSet.getForm(Object)</code>

-      </li>

-      <li>

-         <code>FormSet.process()</code>

-      </li>

-      <li>

-         <code>GenericValidator.REGEXP_DELIM</code>

-      </li>

-      <li>

-         <code>GenericValidator.validateCreditCardLuhnCheck()</code>

-      </li>

-      <li>

-         <code>GenericValidator.validateCreditCardPrefixCheck()</code>

-      </li>

-      <li>

-         <code>GenericValidator.getDelimittedRegExp()</code>

-      </li>

-      <li>

-         <code>Validator.BEAN_KEY</code>

-      </li>

-      <li>

-         <code>Validator.VALIDATOR_ACTION_KEY</code>

-      </li>

-      <li>

-         <code>Validator.FIELD_KEY</code>

-      </li>

-      <li>

-         <code>Validator.VALIDATOR_KEY</code>

-      </li>

-      <li>

-         <code>Validator.LOCALE_KEY</code>

-      </li>

-      <li>

-         <code>Validator.hResources</code>

-      </li>

-      <li>

-         <code>Validator.addResource()</code>

-      </li>

-      <li>

-         <code>Validator.getResource()</code>

-      </li>

-      <li>

-         <code>ValidatorAction.process()</code>

-      </li>

-      <li>

-         <code>ValidatorAction.getDependencies()</code>

-      </li>

-      <li>

-         <code>ValidatorResources.put()</code>

-      </li>

-      <li>

-         <code>ValidatorResources.addConstant()</code>

-      </li>

-      <li>

-         <code>ValidatorResources.addConstantParam()</code>

-      </li>

-      <li>

-         <code>ValidatorResources.get()</code>

-      </li>

-      <li>

-         <code>ValidatorResources.processForms()</code>

-      </li>

-      <li>

-         <code>ValidatorResourcesInitializer</code>

-      </li>

-      <li>

-         <code>ValidatorResult.getValid()</code>

-      </li>

-      <li>

-         <code>ValidatorResults.empty()</code>

-      </li>

-      <li>

-         <code>ValidatorResults.get()</code>

-      </li>

-      <li>

-         <code>ValidatorResults.properties()</code>

-      </li>

-      <li>

-         <code>ValidatorUtil</code>

-      </li>

-    </ul>

-    </action>

-  </release>

-

-  <release version="1.0.2" date="2003-04-17" description="1.0 Maintenance Release">

-    <action dev="turner" type="fix" issue="VALIDATOR-93" due-to="Scott Clasen">

-    GenericValidaor.isEmail bug.

-    </action>

-    <action dev="dgraham" type="fix" issue="VALIDATOR-94" due-to="Jeremy Tan">

-    NPE in Validator.java after upgrading to Struts 1.1b3.

-    </action>

-    <action dev="turner" type="fix" issue="VALIDATOR-62" due-to="Jeremy Tan">

-    i18n issue, variant not being picked up by Validator.

-    </action>

-    <action dev="turner" type="fix" issue="VALIDATOR-53" due-to="Thomas Jacob">

-    isEmail accepts Umlauts and other non-ASCII characters.

-    </action>

-    <action dev="dgraham" type="fix" issue="VALIDATOR-104" due-to="Erik Hatcher">

-    Email address validation incorrectly accepts commas.

-    </action>

-    <action dev="dgraham" type="fix" issue="VALIDATOR-36" due-to="Didier Romelot">

-    unknown host when loading app.

-    </action>

-  </release>

-

-  <release version="1.0.1" date="2002-12-16" description="1.0 Maintenance Release">

-    <action dev="martinc" type="fix" issue="VALIDATOR-84" due-to="Pierre Chardin">

-    Serialization problem with org.apache.commons.validator.ValidatorResult$ResultStatus.

-    </action>

-    <action dev="turner" type="fix" issue="VALIDATOR-68" due-to="Bjorn-H. Moritz">

-    ValidatorResources.get-method not working properly.

-    </action>

-  </release>

-

-  <release version="1.0" date="2002-11-01" description="1.0 Release">

-    <action type="add">

-      First Release.

-    </action>

-  </release>

-

-  </body>

-</document>

+<?xml version="1.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.
+-->
+
+<!--
+This file is used by the maven-changes-plugin to generate the release notes.
+Useful ways of finding items to add to this file are:
+
+1.  Add items when you fix a bug or add a feature (this makes the
+release process easy :-).
+
+2.  Do a Jira search for tickets closed since the previous release.
+
+3.  Use the report generated by the maven-changelog-plugin to see all
+SVN commits.  Set the project.properties' maven.changelog.range
+property to the number of days since the last release.
+
+
+To generate the release notes from this file:
+
+mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=nnn]
+
+then tweak the formatting if necessary
+and commit
+
+The <action> type attribute can be add,update,fix,remove.
+-->
+
+<document xmlns="http://maven.apache.org/changes/1.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/plugins/maven-changes-plugin/xsd/changes-1.0.0.xsd">
+  <properties>
+    <title>Release Notes</title>
+  </properties>
+
+    <!-- NOTE:
+    The description below is specially formatted so as to improve the layout of the generated release notes:
+    The parsing process removes all line feeds, replacing them with a single space.
+    The Velocity template in src/changes has been enhanced to replace pairs of adjacent spaces
+    with a new-line in the release notes. (These spaces are ignored when displaying HTML).
+    If the output is not quite correct, check for invisible trailing spaces!
+
+    N.B. The release notes template groups actions by type, and only extracts data for the current release.
+    The changes report outputs actions in the order they appear in this file.
+
+    To regenerate the release notes:
+    mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=nnn]
+
+    Defining changes.version allows one to create the RN without first removing the SNAPSHOT suffix.
+     -->
+
+  <body>
+  <release version="1.9.0" date="YYYY-MM-DD" description="This is a maintenance and bug fix release; requires Java 8.">
+    <!-- ADD -->
+    <action type="add" dev="sebb" due-to="homebeaver">IBANValidator: #209 - add Falkland Islands, Mongolia, Nicaragua, Oman, Somalia</action>
+    <action type="add" dev="ggregory" due-to="ashoknan2, Gary Gregory">ISINValidator: Add 9 additional exception country code #129.</action>
+    <action type="add" dev="ggregory" due-to="Gary Gregory">ISINValidator: Add all codes from ISO 3166-1 alpha-2 except unassigned code elements.</action>
+    <!-- FIX -->
+    <action type="fix" issue="VALIDATOR-492" dev="ggregory" due-to="Tobias Wildgruber, Gary Gregory">ValidatorUtils.copyFastHashMap is broken.</action>
+    <action type="fix" dev="ggregory" due-to="Sebb">DomainValidator: Changes from Version 2024040200, Apr 2 07:07:02 2024 UTC.</action>
+    <!-- UPDATE -->
+    <action type="update" dev="ggregory" due-to="Dependabot">Bump org.apache.commons:commons-parent from 65 to 69 #201.</action>
+    <action type="update" dev="ggregory" due-to="Dependabot">Bump commons-logging:commons-logging from 1.3.0 to 1.3.1 #199.</action>
+  </release>
+  <release version="1.8.0" date="2023-12-02" description="Maintenance and bug fix release.">
+    <!-- FIX -->
+    <action type="fix" dev="ggregory" due-to="Gennaro Napolitano">
+      Update Javadoc for InetAddressValidator isValid #76
+    </action>
+    <action issue ="VALIDATOR-479" type="fix" dev="ggregory" due-to="Gyoo">
+      Fix typo in /routines/package-summary.html #79.
+    </action>
+    <action type="fix" dev="ggregory" due-to="John Patrick">
+      Use JUnit 5 assertThrows() #92, #93, #94, #95.
+    </action>
+    <action type="fix" dev="ggregory" due-to="step-security-bot, Gary Gregory">
+      [StepSecurity] ci: Harden GitHub Actions #136.
+    </action>
+    <action type="fix" dev="ggregory" due-to="Andrés Torres">
+      Javadoc typos #144.
+    </action>
+    <action type="fix" dev="ggregory" due-to="Gary Gregory">
+      Precompile regular expression in InetAddressValidator.isValidInet6Address(String).
+    </action>
+    <action type="fix" dev="ggregory" due-to="Gary Gregory">
+      Fix SpotBugs [ERROR] Medium: Class org.apache.commons.validator.routines.CreditCardValidator$1 defines non-transient non-serializable instance field ccr [org.apache.commons.validator.routines.CreditCardValidator$1] In CreditCardValidator.java SE_BAD_FIELD.
+    </action>
+    <action type="fix" dev="ggregory" due-to="Gary Gregory">
+      Fix SpotBugs [ERROR] High: Class org.apache.commons.validator.ValidatorAction defines non-transient non-serializable instance field validationMethod [org.apache.commons.validator.ValidatorAction] In ValidatorAction.java SE_BAD_FIELD.
+    </action>
+    <action type="fix" dev="ggregory" due-to="Gary Gregory">
+      Fix SpotBugs [ERROR] High: Found reliance on default encoding in org.apache.commons.validator.ValidatorAction.readJavascriptFile(String): new java.io.InputStreamReader(InputStream) [org.apache.commons.validator.ValidatorAction] At ValidatorAction.java:[line 428] DM_DEFAULT_ENCODING.
+    </action>
+    <action type="fix" dev="ggregory" due-to="Gary Gregory">
+      Fix SpotBugs [ERROR] Medium: Inconsistent synchronization of org.apache.commons.validator.ValidatorAction.jsFunction; locked 62% of time [org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.ValidatorAction] Unsynchronized access at ValidatorAction.java:[line 340]Unsynchronized access at ValidatorAction.java:[line 358]Synchronized access at ValidatorAction.java:[line 393]Synchronized access at ValidatorAction.java:[line 394]Synchronized access at ValidatorAction.java:[line 459]Synchronized access at ValidatorAction.java:[line 461]Synchronized access at ValidatorAction.java:[line 462] IS2_INCONSISTENT_SYNC.
+    </action>
+    <action type="fix" dev="ggregory" due-to="Gary Gregory">
+      Port tests to JUnit 5. Exception: DomainValidatorStartupTest.
+    </action>
+    <action type="fix" dev="ggregory" due-to="Gary Gregory">
+      Use singletons in org.apache.commons.validator.CreditCardValidator.
+    </action>
+    <!-- ADD -->
+    <action type="add" dev="ggregory" due-to="Dependabot, Gary Gregory">
+      Add github/codeql-action.
+    </action>
+    <action issue="VALIDATOR-477" type="adda" dev="sebb" due-to="sebb, homebeaver">
+      Add IBAN validators for LY – Libya, SD, BI, #67.
+    </action>
+    <action issue="VALIDATOR-486" type="add" dev="ggregory" due-to="tatiana-scda, Gary Gregory">
+      Add new countries to IBAN list: DJ, RU #88.
+    </action>
+    <action type="add" dev="ggregory" due-to="Arnaud Fournier, Gary Gregory">
+      Add IBANValidator.Validator.getRegexValidator().
+    </action>
+    <action type="add" dev="ggregory" due-to="Arnaud Fournier, Gary Gregory">
+      Add RegexValidator.getPatterns().
+    </action>
+    <action type="add" dev="ggregory" due-to="Gary Gregory, rossmills3, sebbASF">
+      Add country codes listed as other countries and territories in the IBAN registry for Finland: AX.
+    </action>
+    <action type="add" dev="ggregory" due-to="Gary Gregory, rossmills3, sebbASF">
+      Add country codes listed as other countries and territories in the IBAN registry for France: GF, GP, MQ, RE, PF, TF, YT, NC, BL, MF, PM, WF.
+    </action>
+    <action type="add" dev="ggregory" due-to="Gary Gregory, rossmills3, sebbASF">
+      Add country codes listed as other countries and territories in the IBAN registry for United Kingdom: IM, JE, GG.
+    </action>
+    <action type="add" dev="ggregory" due-to="Gary Gregory">
+      Add ValidatorAction.setClassName(String) and deprecate setClassname(String). 
+    </action>
+    <!-- REMOVE -->
+    <action type="remove" dev="ggregory" due-to="John Patrick, Gary Gregory">
+      Remove FindBugs, SpotBugs is in use #87.
+    </action>
+    <!-- UPDATE -->
+    <action type="update" dev="ggregory" due-to="Gary Gregory">
+      Bump Java from 7 to 8.
+    </action>
+    <action type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">
+      Bump actions/cache from 2 to 3.0.11 #71, #84. #90, #91.
+    </action>
+    <action type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">
+      Bump actions/checkout from 2.3.1 to 3.0.2, #38, #47, #70.
+    </action>
+    <action type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">
+      Bump actions/setup-java from 1.4.0 to 3.6.0 #42, #72, #98.
+    </action>
+    <action type="update" dev="ggregory" due-to="Dependabot">
+      Bump actions/upload-artifact from 3.1.0 to 3.1.1 #96.
+    </action>
+    <action type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">
+      Bump junit from 4.13 to 5.9.1 Vintage #44.
+    </action>
+    <action type="update" dev="ggregory" due-to="Dependabot">
+      Bump maven-pmd-plugin from 3.13.0 to 3.19.0 #69, #77, #80, #81.
+    </action>
+    <action type="update" dev="ggregory" due-to="Gary Gregory, Dependabot">
+      Bump commons-parent from 52 to 65 #83, #107, #111, #132.
+    </action>
+    <action type="update" dev="ggregory" due-to="Gary Gregory">
+      Bump japicmp-maven-plugin from 0.15.3 to 0.15.7.
+    </action>
+    <action type="update" dev="ggregory" due-to="Dependabot">
+      Bump maven-antrun-plugin from 3.0.0 to 3.1.0 #74.
+    </action>
+    <action type="update" dev="ggregory" due-to="Gary Gregory, Dependabot">
+      Bump commons-csv from 1.6 to 1.10.0 #118.
+    </action>
+    <action type="update" dev="ggregory" due-to="Gary Gregory">
+      Bump japicmp-maven-plugin from 0.15.7 to 0.16.0.
+    </action>
+    <action dev="ggregory" type="update" due-to="Gary Gregory">
+      Bump commons-logging:commons-logging from 1.2 to 1.3.0.
+    </action>
+  </release>
+  
+  <release version="1.7" date="2020-08-07" description="
+This is primarily a maintenance release.
+
+All projects are encouraged to update to this release of
+Apache Commons Validator.
+
+  Commons Validator requires Java 7 or later.
+
+
+ Main enhancements
+ =================
+
+
+ * CreditCard validation specification by numeric range
+ * DomainValidator instances can be created with instance overrides
+ * DomainValidator supports overrides of LOCAL TLDs
+
+
+ IMPORTANT NOTES
+ ===============
+
+
+ BREAKING CHANGES:
+
+
+ * Now requires Java 7
+ * N.B. Java 9 changed the way Locales are handled. This affects the output from some Date-related methods, and may cause some tests to break.
+
+
+ DEPENDENCIES
+ ============
+
+
+ * Updates Apache Commons BeanUtils dependency from 1.9.2 to 1.9.4.
+  This picks up BEANUTILS-482: Update commons-collections from 3.2.1 to 3.2.2 (CVE-2015-4852).
+
+  For the current list of dependencies, please see
+http://commons.apache.org/validator/dependencies.html
+  ">
+    <action type="update" dev="sebb">
+    Drop Clirr and Cobertura in favour of JApiCmp and JaCoCo
+    </action>
+    <action issue="VALIDATOR-474" type="add" dev="sebb">
+    DomainValidator should allow local overrides
+    </action>
+    <action issue="VALIDATOR-473" type="add" dev="sebb">
+    Allow Email- and UrlValidator to use specified DomainValidator
+    </action>
+    <action issue="VALIDATOR-403" type="fix" dev="sebb" due-to="Tanya">
+    Accept Discover cards of 17 digits long that start with 6011
+    </action>
+    <action issue="VALIDATOR-408" type="fix" dev="sebb" due-to="Raj Vaida">
+    DISCOVER Card Validation Patterns
+    </action>
+    <action issue="VALIDATOR-472" type="fix" dev="sebb">
+    UrlValidator should not be more lax than java.net.URI
+    </action>
+    <action issue="VALIDATOR-283" type="fix" dev="sebb" due-to="RC Johnson">
+    URLValidator should check for illegal Hex characters
+    </action>
+    <action issue="VALIDATOR-445" type="fix" dev="sebb" due-to="devson">
+    Inet6Address may also contain a scope id
+    </action>
+    <action issue="VALIDATOR-452" type="fix" dev="sebb" due-to="devson">
+    Validation of URL containing IPv4-mapped IPv6 address
+    </action>
+    <action issue="VALIDATOR-471" type="add" dev="sebb">
+    Allow DomainValidator overrides at run-time
+    </action>
+    <action issue="VALIDATOR-438" type="fix" dev="sebb" due-to="Simon Marti">
+    IBANValidator fails for El Salvador
+    Add definition
+    </action>
+    <action type="update" dev="sebb">
+    IANA TLD lists: Updated to Version 2020073100, Last Updated Fri Jul 31 07:07:01 2020 UTC
+    </action>
+    <action issue="VALIDATOR-423" type="add" dev="sebb">
+    Add ISINValidator
+    </action>
+    <action issue="VALIDATOR-428" type="update" dev="pschumacher" due-to="Matthew Zavislak">
+    Update commons digester to 2.1
+    </action>
+    <action issue="VALIDATOR-434" type="fix" dev="kinow" due-to="emopers">
+    Field does not synchronize iteration on synchronized list
+    </action>
+    <action issue="VALIDATOR-437" type="fix" dev="ggregory">
+    Update Apache Commons BeanUtils dependency from 1.9.2 to 1.9.3.
+    This picks up BEANUTILS-482: Update commons-collections from 3.2.1 to 3.2.2 (CVE-2015-4852).
+    </action>
+    <action issue="VALIDATOR-460" type="fix" dev="ggregory" due-to="Jeff Schram">
+    Update Apache Commons BeanUtils dependency from 1.9.3 to 1.9.4
+    This picks up BEANUTILS-520: Mitigate CVE-2014-0114.
+    </action>
+    <action issue="VALIDATOR-455" type="add" dev="sebb" due-to="Eugen Hanussek">
+    Add IBAN validator for VA – Vatican City State
+    </action>
+    <action issue="VALIDATOR-461" type="fix" dev="sebb" due-to="Nils Reischmann">
+    Generic .gmbh top level domain is considered invalid
+    </action>
+    <action issue="VALIDATOR-444" type="fix" dev="sebb" due-to="Martin Scholz">
+    LongValidator: numbers bigger than the maxvalue are Valid
+    </action>
+    <action issue="VALIDATOR-416" type="fix" dev="sebb">
+    CreditCardValidator default ctor disagrees with Javadoc
+    </action>
+    <action issue="VALIDATOR-446" type="add" dev="sebb" due-to="Alex">
+    ISSN Validator extract ISSN from EAN-13
+    </action>
+    <action issue="VALIDATOR-467" type="fix" dev="sebb" due-to="Ivan Larionov">
+    URL validator fails if path starts with double slash and has underscores
+    </action>
+    <action issue="VALIDATOR-464" type="fix" dev="sebb" due-to="Sebastian Choina">
+    UrlValidator says "file://bad ^ domain.com/label/test" is valid
+    </action>
+    <action issue="VALIDATOR-449" type="fix" dev="sebb" due-to="Frederic Boutin">
+    Leading and trailing spaces in EmailValidator should not be valid
+    </action>
+    <action issue="VALIDATOR-302" type="fix" dev="sebb" due-to="Guido Zockoll">
+    EMailValidator: Addresses with leading spaces must not be accepted
+    </action>
+    <action issue="VALIDATOR-468" type="fix" dev="sebb">
+    DomainValidator.getTLDArray does not synch mutable arrays
+    </action>
+  </release>
+
+  <release version="1.6" date="2017-02-21" description="
+This is primarily a maintenance release.
+
+All projects are encouraged to update to this release of
+Apache Commons Validator.
+
+  Commons Validator requires Java 1.6 or later.
+
+
+ Main enhancements
+ =================
+
+
+ * Modulus Ten Check Digit Implementation
+ * Generic CreditCard validation (syntax and checkdigit only; does not check IIN)
+ * CreditCard validation specification by numeric range
+
+
+ IMPORTANT NOTES
+ ===============
+
+
+ BREAKING CHANGES:
+
+   * NONE.
+
+
+ DEPENDENCIES
+ ============
+
+The dependencies for Validator have not changed since the 1.4 release.
+
+For the current list of dependencies, please see
+http://commons.apache.org/validator/dependencies.html
+  ">
+    <action issue="VALIDATOR-420" type="fix" dev="sebb" due-to="Marcin Gasior">
+    Query params validator shouldn't accept whitespaces
+    </action>
+    <action issue="VALIDATOR-419" type="fix" dev="sebb" due-to="Denis Iskhakov">
+    Invalid IPv6 addresses that are IPv4-mapped pass InetAddressValidator validation
+    </action>
+    <action issue="VALIDATOR-418" type="fix" dev="britter" due-to="Robert McGuigan">
+    UrlValidatorTest: testIsValid() does not run all tests
+    </action>
+    <action issue="VALIDATOR-415" type="add" dev="sebb">
+    Simplify building new CreditCard validators
+    </action>
+    <action issue="VALIDATOR-413" type="add" dev="sebb">
+    Generic CreditCard validation
+    </action>
+    <action issue="VALIDATOR-379" type="fix" dev="sebb">
+    CodeValidator unconditionally trim()s the input string - document the behavior
+    </action>
+    <action issue="VALIDATOR-387" type="fix" dev="sebb" due-to="Shumpei Akai">
+    Userinfo without colon should be valid in UrlValidator
+    </action>
+    <action issue="VALIDATOR-394" type="add" dev="sebb" due-to="Niall Pemberton">
+    General Modulus Ten Check Digit Implementation
+    </action>
+    <action issue="VALIDATOR-411" type="fix" dev="sebb">
+    UrlValidator accepts ports above max limit of 16-bit unsigned integer
+    </action>
+    <action type="update" dev="sebb">
+    IANA TLD lists: Updated to Version 2017020400, Last Updated Sat Feb  4 07:07:01 2017 UTC
+    </action>
+    <action type="update" dev="sebb">
+    Update to version 73 of SWIFT IBAN list: added BY (Belarus) and IQ (Iraq); fixed Santa Lucia format
+    </action>
+    <action issue="VALIDATOR-407" type="fix" dev="sebb">
+    Generic .shop top level domain is considered invalid
+    </action>
+    <action issue="VALIDATOR-405" type="fix" dev="sebb">
+    IBANValidator - Costa Rica entry has been updated in SWIFT docs
+    </action>
+    <action issue="VALIDATOR-401" type="fix" dev="britter">
+    IBANValidator fails for Seychelles and Ukraine
+    </action>
+    <action issue="VALIDATOR-391" type="fix" dev="sebb" due-to="Mark E. Scott, Jr. &amp; Jason Loomis">
+    UrlValidator.isValid throws exception for FILEURLs
+    Fixed code so it handles URLs with no authority field
+    </action>
+  </release>
+  <release version="1.5.1" date="2016-04-30" description="
+This is a maintenance release.
+
+All projects are encouraged to update to this release of
+Apache Commons Validator.
+
+  Commons Validator requires Java 1.6 or later.
+
+
+ IMPORTANT NOTES
+ ===============
+
+
+ BREAKING CHANGES:
+
+   * NONE.
+
+
+ DEPENDENCIES
+ ============
+
+The dependencies for Validator have not changed since the 1.4 release.
+
+For the current list of dependencies, please see
+http://commons.apache.org/validator/dependencies.html
+  ">
+    <action issue="VALIDATOR-392" type="fix" dev="sebb" due-to="Tim Deboer">
+    Mastercard Series 2 BIN ranges (active from October 2016) added to CreditCardValidator
+    To disable the new ranges, use option MASTERCARD_PRE_OCT2016 or validator MASTERCARD_VALIDATOR_PRE_OCT2016
+    </action>
+    <action issue="VALIDATOR-386" type="fix" dev="sebb" due-to="Auke van Leeuwen">
+    org.apache.commons.validator.routines.DomainValidator.ArrayType is not public
+    </action>
+    <action issue="VALIDATOR-359" type="fix" dev="sebb" due-to="Dora Kinghorn">
+    EmailValidator does not catch invalid email address like dora@.com
+    </action>
+    <action issue="VALIDATOR-384" type="fix" dev="sebb" due-to="Kris Babic">
+    EmailValidator does not support escaped quotes in a quoted string
+    </action>
+    <action issue="VALIDATOR-351" type="add" dev="sebb">
+    DomainValidator - allow access to internal arrays
+    </action>
+    <action type="update" dev="sebb">
+    Updated to TLD list Version 2016042500, Last Updated Mon Apr 25 07:07:01 2016 UTC
+    </action>
+  </release>
+  <release version="1.5.0" date="2015-11-24" description="
+This is a maintenance release.
+
+All projects are encouraged to update to this release of
+Apache Commons Validator.
+
+  Commons Validator requires Java 1.6 or later.
+
+
+ IMPORTANT NOTES
+ ===============
+
+
+ BREAKING CHANGES:
+
+   * NONE.
+
+
+ DEPENDENCIES
+ ============
+
+The dependencies for Validator have not changed since the 1.4 release.
+
+For the current list of dependencies, please see
+http://commons.apache.org/validator/dependencies.html
+  ">
+    <action issue="VALIDATOR-364" type="fix" dev="sebb" due-to="teo bran">
+    Email Validator does not support quoted/escaped character in the local part of the email address
+    </action>
+    <action issue="VALIDATOR-381" type="fix" dev="ggregory">
+    Update commons-collections from 3.2.1 to 3.2.2.
+    </action>
+    <action issue="VALIDATOR-363" type="fix" dev="sebb">
+    UrlValidator rejects path having two or more successive dots
+    </action>
+    <action issue="VALIDATOR-330" type="fix" dev="sebb">
+    IBANCheckDigit.isValid() returns True for some invalid IBANs
+    </action>
+    <action issue="VALIDATOR-380" type="fix" dev="sebb">
+    UrlValidator does not allow for optional port digits
+    </action>
+    <action issue="VALIDATOR-332" type="update" dev="sebb">
+    IIBANCheckDigit.calculate does not enforce initial checksum value
+    Checkdigit field is now unconditionally set to "00" to ensure correct generation
+    </action>
+    <action issue="VALIDATOR-353" type="update" dev="sebb">
+    UrlValidator does not allow for optional userinfo in the authority
+    </action>
+    <action issue="VALIDATOR-321" type="add" dev="sebb">
+    ISSN validator and converter to EAN-13
+    </action>
+    <action issue="VALIDATOR-325" type="add" dev="sebb">
+    Improve IBAN validation with format checks
+    </action>
+    <action issue="VALIDATOR-369" type="fix" dev="sebb">
+    DateValidatorTest.testCompare() fails with GMT-12
+    </action>
+    <action issue="VALIDATOR-372" type="add" dev="sebb">
+    Validate 19 digit VPay (VISA)
+    </action>
+    <action issue="VALIDATOR-375" type="fix" dev="sebb">
+    UrlValidator fails on IPv6 URL
+    </action>
+    <action issue="VALIDATOR-361" type="add" dev="sebb">
+    UrlValidator rejects new gTLDs with more than 4 characters
+    Added unit test to show that this has been fixed
+    </action>
+    <action issue="VALIDATOR-341" type="add" dev="sebb">
+    Make TLD list configurable;
+    both generic and country-code now support addition and removal
+    </action>
+    <action issue="VALIDATOR-374" type="fix">
+    Email Validator : .school domain is being rejected
+    Add Unit test to show it has been fixed
+    </action>
+    <action issue="VALIDATOR-376" type="fix" dev="rgoers">
+      Revert EmailValidator to handle top level domains to the behavior prior to VALIDATOR-273. Allow an optional
+      behavior to allow the behavior VALIDATOR-273 implemented. Note that this is a behavioral change for users
+      of version 1.4.1, but not for anyone upgrading from a release prior to that.
+    </action>
+    <action issue="VALIDATOR-371" type="remove">Drop the Javascript code entirely</action>
+    <action issue="VALIDATOR-362" dev="britter" type="fix" due-to="Teo Bran">
+      Local part of the email address should not be longer than 64 bytes
+    </action>
+    <action issue="VALIDATOR-356" dev="sebb" type="fix" >
+      IDN.toASCII drops trailing dot in Java 6 &amp; 7
+    </action>
+    <action issue="VALIDATOR-355" dev="britter" type="update" >
+      Update to Java 6
+    </action>
+  </release>
+
+  <release version="1.4.1" date="2014-01-13" description="1.4 Maintenance release">
+    <action issue="VALIDATOR-342" dev="sebb" type="fix" due-to="Donal Murtagh">
+     URLValidator returns false for http://example.rocks
+    </action>
+    <action issue="VALIDATOR-235" dev="sebb" type="fix" due-to="Brian Preuß">
+     UrlValidator rejects url with Unicode characters in domain label or TLD
+    </action>
+    <action issue="VALIDATOR-339" dev="sebb" type="fix" due-to="Alex Blume">
+     URLValidator fails validating domain names with a trailing period, which are valid.
+    </action>
+    <action issue="VALIDATOR-306" dev="sebb" type="fix" due-to="Jukka Timonen">
+     DomainValidator accepts labels longer than 63 chars and domain name lengths exceeding 255 chars
+    </action>
+    <action issue="VALIDATOR-349" dev="sebb" type="update">
+     TLD tables should be pre-sorted
+    </action>
+    <action issue="VALIDATOR-290" dev="sebb" type="update" due-to="Alexander Rytov">
+     Create new url validation using rfc3986 and IDN - added new test
+    </action>
+    <action issue="VALIDATOR-350" dev="sebb" type="fix">
+     Should "x.root" validate as a domain name?
+     Removed "root" from TLD list.
+     Also "um" and "yu" as they are currently "Not assigned"
+    </action>
+    <action issue="VALIDATOR-308" dev="sebb" type="fix" due-to="Til Boerner">
+      Logical errors in util.Flags affecting check of multiple flags as well as flag 64
+    </action>
+    <action issue="VALIDATOR-344" dev="sebb" type="fix" >
+      AbstractCheckDigit class does not fully test invalid strings
+      Fix up the testCalculateInvalid() invalid method to allow for
+      either invalid checksum or syntax (CheckDigitException) error
+      when testing the entries in the invalid array.
+    </action>
+    <action issue="VALIDATOR-297" dev="sebb" type="fix">
+      Punycode url is not valid
+      Top-level domain regex matching was wrong; did not allow embedded "-" as per RFC2396
+    </action>
+    <action issue="VALIDATOR-334" dev="sebb" type="update">
+      UrlValidator: isValidAuthority() returning true when supplied authority validator fails
+    </action>
+    <action issue="VALIDATOR-309" dev="sebb" type="fix" due-to="Rashid Rashidov">
+      UrlValidator does not validate uppercase URL schemes
+    </action>
+    <action issue="VALIDATOR-343" dev="sebb" type="fix" due-to="Sam Cooley">
+      Doc URL update for broken link
+    </action>
+    <action issue="VALIDATOR-346" dev="sebb" type="fix" >
+      SedolCheckDigit fails to reject invalid (non-numeric) check digits
+    </action>
+    <action issue="VALIDATOR-345" dev="sebb" type="fix" >
+      ISINCheckDigit fails to reject invalid (non-numeric) check digits
+    </action>
+    <action issue="VALIDATOR-336" dev="sebb" type="fix" >
+      CUSIPCheckDigit thinks invalid CUSIP is valid
+    </action>
+    <action issue="VALIDATOR-348" dev="sebb" type="update" >
+      Update TLD list to latest version (Version 2014123000)
+    </action>
+    <action issue="VALIDATOR-347" dev="sebb" type="fix" >
+      toLowerCase() method is Locale-sensitive and should not be used
+      Fixed 4 instances in DomainValidator
+    </action>
+    <action issue="VALIDATOR-307" dev="adrianc" type="update">
+      isValid checks if the given address is only IPV4 address and not IPV6
+    </action>
+    <action  issue="VALIDATOR-337" dev="britter" type="update" due-to="Ben Ripkens" >
+      Deprecate the JS part of commons validator
+    </action>
+    <action issue="VALIDATOR-266" dev="britter" type="fix" due-to="Bruce Collie" >
+      DomainValidator uses an O(n) method where an O(1) would be more appropriate
+    </action>
+    <action issue="VALIDATOR-273" dev="britter" type="fix" due-to="Chris Lee" >
+      EmailValidator does not support mailboxes at TLDs
+    </action>
+    <action  issue="VALIDATOR-317" dev="britter" type="fix" due-to="Arūnas Bendoraitis" >
+      DomainValidator missing sTLD - "xxx"
+    </action>
+    <action issue="VALIDATOR-327" dev="britter" type="fix" due-to="Arūnas Bendoraitis" >
+      Missing sx tld.
+    </action>
+    <action issue="VALIDATOR-305" dev="britter" type="fix" due-to="Arūnas Bendoraitis" >
+      Some TLDs are missing from DomainValidator
+    </action>
+    <action issue="VALIDATOR-331" dev="sebb" type="fix">
+      IBANCheckDigitTest.createInvalidCodes(String[] codes) uses wrong values
+    </action>
+  </release>
+
+  <release version="1.4.0" date="2012-02-03" description="JDK 1.4 (minimum)">
+    <action dev="simonetripodi" type="fix" issue="VALIDATOR-301" due-to="Jacob Zwiers">
+      CheckStyle and FindBug Issues - inner classes and key sets
+    </action>
+    <action dev="nick" type="fix" issue="VALIDATOR-293" due-to="Will Glass-Husain">
+      Email validation fails with dash or hyphen at end of local address
+    </action>
+    <action dev="nick" type="fix" issue="VALIDATOR-292">
+      @localhost and @localhost.localdomain email addresses aren't correctly detected as valid
+    </action>
+    <action dev="nick" type="fix" issue="VALIDATOR-289" due-to="GM">
+      UrlValidator.isValid does not properly validate *.travel domains
+    </action>
+    <action dev="niallp" type="update" issue="VALIDATOR-288" due-to="feroze daud">
+      UrlValidator does not validate URL with simple domains (eg: http://hostname )
+    </action>
+    <action dev="nick" type="fix" issue="VALIDATOR-286">
+      isValid method for EmailValidator should return false for domain with special characters only
+    </action>
+    <action dev="nick" type="fix" issue="VALIDATOR-282">
+      formatDate(String value, Locale locale) in GenericTypeValidator uses DateFormat.SHORT instead of DateFormat.DEFAULT
+    </action>
+    <action dev="nick" type="fix" issue="VALIDATOR-276">
+      isValidURL call returns false for file scheme/protocol when URL is correct
+    </action>
+    <action dev="nick" type="fix" issue="VALIDATOR-271" due-to="Ralf Hauser">
+      gmail testing addresses do not validate
+    </action>
+    <action dev="niallp" type="update" issue="VALIDATOR-275" due-to="Adam Gordon">
+      EmailValidator.isValid(String) follows RFC822 but violates RFC1034
+    </action>
+    <action dev="bspeakmon" type="update" issue="VALIDATOR-252" due-to="Makoto Uchino">
+      Performance improvement of DomainValidator by change the regular expression
+    </action>
+    <action dev="niallp" type="update" issue="VALIDATOR-251" due-to="Meenal Gupta">
+      url with brackets is not validated thru URLvalidator class.
+    </action>
+    <action dev="niallp" type="update" issue="VALIDATOR-250">
+      Banking CheckDigit implementations: ABA, CUSIP, IBAN, ISIN and Sedol
+    </action>
+    <action dev="niallp" type="update" issue="VALIDATOR-249">
+      Add Diners card validation to CreditCardValidator
+    </action>
+    <action dev="bspeakmon" type="update" issue="VALIDATOR-248" due-to="Sergey Nebolsin">
+      Add an option to allow 'localhost' as a valid hostname part in the URL
+    </action>
+    <action dev="niallp" type="update" issue="VALIDATOR-247" due-to="bspeakmon">
+      Move CreditCardValidator to routines package and refactor to use new CodeValidator
+    </action>
+    <action dev="bspeakmon" type="update" issue="VALIDATOR-242">
+      Move EmailValidator to routines package
+    </action>
+    <action dev="bspeakmon" type="update" issue="VALIDATOR-241" due-to="niallp">
+      New InetAdress Validator implementation
+    </action>
+    <action dev="niallp" type="update" issue="VALIDATOR-240" due-to="Webb Morris">
+      Support the 65 prefix for Discover Card
+    </action>
+    <action dev="niallp" type="update" issue="VALIDATOR-234" due-to="Paul Benedict">
+      Create 1.4 DTD
+    </action>
+    <action dev="niallp" type="update" issue="VALIDATOR-233" due-to="Paul Benedict">
+      Switch to using Version 0.4.3 of the Dojo Compressor from the maven repo
+    </action>
+    <action dev="bspeakmon" type="update" issue="VALIDATOR-232" due-to="Paul Benedict">
+      Add script attribute to control script generation
+    </action>
+    <action dev="nick" type="fix" issue="VALIDATOR-300" due-to="Jacob Zwiers">
+      clirr Report - EmailValidator.isValidIpAddress() argument type change
+    </action>
+    <action dev="niallp" type="fix" issue="VALIDATOR-226" due-to="Lian Ort">
+      Null-Stream input to ValidatorResources leads to MalformedURLExceptions
+    </action>
+    <action dev="niallp" type="update" issue="VALIDATOR-224" due-to="Hasan Turksoy">
+      validatorUtilities.js - replace colon characters in the function name (JSF/Shale)
+    </action>
+    <action dev="niallp" type="update" issue="VALIDATOR-223" due-to="Hasan Turksoy">
+      Move the trim() function from validateRequired.js to validateUtilities.js
+    </action>
+    <action dev="niallp" type="fix" issue="VALIDATOR-220" due-to="Adam Gordon">
+      EmailValidator fails with ArrayIndexOutOfBoundsException on domain names longer than 10 segments
+    </action>
+    <action dev="bspeakmon" type="fix" issue="VALIDATOR-218" due-to="Stephen Chu">
+      UrlValidator fail when path contains "(" / ")"
+    </action>
+    <action dev="bspeakmon" type="fix" issue="VALIDATOR-216" due-to="Kenji Matsuoka">
+      UrlValidator rejects top-level domains (TLDs) with more than 4 characters
+    </action>
+    <action dev="niallp" type="add" issue="VALIDATOR-215">
+      New generic CodeValidator that validates format, length and Check Digit for a code
+    </action>
+    <action dev="niallp" type="add" issue="VALIDATOR-214">
+      New Regular Expression validator using JDK 1.4's Regex
+    </action>
+    <action dev="niallp" type="add" issue="VALIDATOR-213">
+      Factor out Check Digit logic into separate implementations
+    </action>
+    <action dev="niallp" type="update" issue="VALIDATOR-211">
+      Upgrade to Digester 1.8
+    </action>
+    <action dev="bspeakmon" type="update" issue="VALIDATOR-203" due-to="bayard">
+      Refactor UrlValidator - especially the line 370-ish.
+    </action>
+    <action dev="niallp" type="update" issue="VALIDATOR-197">
+      Copy remaining Validation Routines to the new routines package
+    </action>
+    <action dev="bspeakmon" type="update" issue="VALIDATOR-193" due-to="Matthias Wessendorf">
+      Removing ORO dep. from GenericValidator
+    </action>
+    <action dev="niallp" type="update" issue="VALIDATOR-192" due-to="Matthias Wessendorf">
+      Adding ISBNValidator to GenericValidator
+    </action>
+    <action dev="niallp" type="update" issue="VALIDATOR-191" due-to="Matthias Wessendorf">
+      Remove the dependency on Jakarta ORO (move to JDK 1.4 regular expression support)
+    </action>
+    <action dev="niallp" type="update" issue="VALIDATOR-188" due-to="Gabriel Belingueres">
+      Extend ISBN validator to support smooth transition to ISBN-13 / EAN-13 standard
+    </action>
+    <action dev="niallp" type="update">
+      JDK 1.4 - change minimum dependency for validator to be JDK 1.4 (was 1.3). Primary reason
+      for this is to use JDK 1.4+ built in regular expression support and remove the dependency
+      on Jakarta ORO.
+    </action>
+  </release>
+
+  <release version="1.3.1" date="2006-11-28" description="1.3 Maintenance Release.">
+    <action dev="niallp" type="update">
+      Dependencies for Validator 1.3.1 are unchanged since the 1.3.0 release.
+      N.B. Jakarta ORO has now been marked as an optional dependency
+      in the project.xml as it is only required by the Email, URL and Regular Expression validations.
+    </action>
+    <action dev="niallp" type="fix" issue="VALIDATOR-208" due-to="Leo Asanov">
+    JavaScript function jcv_isFieldPresent() causes error in IE5 using "undefined".
+    </action>
+    <action dev="niallp" type="fix" issue="VALIDATOR-190">
+    EmailValidator allows control characters (ASCII 0-31 and 127).
+    <dueto name="Cott"/>
+    <dueto name="Gabriel Belingueres"/>
+    </action>
+    <action dev="niallp" type="fix" issue="VALIDATOR-210" due-to="Neil Sherman">
+    JavaScript Causes HTML Page to Contain Illegal HTML.
+    </action>
+    <action dev="niallp" type="update" issue="VALIDATOR-209" due-to="Craig McClanahan">
+    Additional constructor for ValidatorResources that takes URL["> instead of String[">.
+    </action>
+    <action dev="niallp" type="fix" issue="VALIDATOR-195" due-to="Vijay Pandey">
+    Fix loading of Digester rules for custom ValidatorResources implementations.
+    </action>
+    <action dev="niallp" type="fix" issue="VALIDATOR-19" due-to="Masahiro Honda">
+    Validator incorrectly storing itself under the FORM_PARAM key rather than
+    the Form.
+    </action>
+    <action dev="bayard" type="fix" issue="VALIDATOR-204" due-to="Ben">
+    Urlvalidator returns false for a valid URL containing an underscore.
+    </action>
+    <action dev="bayard" type="fix" issue="VALIDATOR-202" due-to="Ben">
+    Urlvalidator fails with an ArrayIndexOutOfBoundsException.
+    </action>
+    <action dev="niallp" type="fix" issue="VALIDATOR-199" due-to="Tim Mulligan">
+    The ant build.xml doesn't include validator_1_1_3.dtd in the jar.
+    </action>
+    <action dev="niallp" type="fix" issue="VALIDATOR-198" due-to="Matthias Fischer">
+    Example does not compile using ant build script.
+    </action>
+    <action dev="niallp" type="fix" issue="VALIDATOR-189" due-to="Thomas Bailey">
+    Validating indexed properties fails when null.
+    </action>
+    <action dev="martinc" type="fix" issue="VALIDATOR-89" due-to="Takayuki Kaneko">
+    Fix a thread safety issue in parameter initialization.
+    </action>
+  </release>
+
+  <release version="1.3.0" date="2006-03-24" description="1.3 Release - New 'routines' package plus Bug fixes for 1.2.0">
+    <action dev="niallp" type="fix" issue="VALIDATOR-49" due-to="bart vandendriessche">
+     ValidatorResult only contains last run dependency for the field.
+    </action>
+    <action dev="niallp" type="fix" issue="VALIDATOR-20" due-to="Rostislav Palivoda">
+     Validator argument - resource="false" ignored for arg0 - arg3.
+    </action>
+    <action dev="niallp" type="fix" issue="VALIDATOR-60" due-to="Yugandhar">
+     Change JavaScript validators to cater for disabled being undefined (an issue in Netscape 4.7).
+    </action>
+    <action dev="niallp" type="add">
+     <p>Add new routines package containing standard validations - first
+      step in the process of clearly separating standard validation
+      functions which can be used independently, from the framework
+      aspect of Commons Validator.</p>
+     <p>New validators added for Date, Time, Calendar, Byte, Short,
+      Integer, Long, Float, Double, BigInteger, BigDecimal,
+      Currency and Percent.</p>
+     <p>See <a href="apidocs/org/apache/commons/validator/routines/package-summary.html">
+      Routines Package Javadocs</a></p>
+    </action>
+    <action dev="niallp" type="add" issue="VALIDATOR-30">
+     Deprecate ValidatorResult's getActionMap() and add getActions()
+     method to provide an Iterator of the set of action names.
+    </action>
+    <action dev="niallp" type="add" issue="VALIDATOR-142" due-to="Michael Rush">
+     Use the Dojo/Rhino JavaScript compressor to created compressed
+     versions of the static JavaScript files. Additionally create single
+     file distros of all the static JavaScript in un-compressed and compressed
+     format. See Dojo/Rhino Compressor.
+    </action>
+    <action dev="niallp" type="fix">
+     Prefix remaining JavaScript utility methods with "jcv_" to reduce
+     the likelihood of clashes with other libraries - validator still
+     needs to be properly namespaced (as per Bug 38184).
+    </action>
+    <action dev="niallp" type="fix" issue="VALIDATOR-163">
+     Change JavaScript validators so that they don't fail when the
+     field is not present on the form.
+    <dueto name="Andrew Berridge"/>
+    <dueto name="Paul Benedict"/>
+    </action>
+    <action dev="niallp" type="fix" issue="VALIDATOR-25" due-to="Alan Olmanson">
+     Fix min/max length validation for different line endings.
+    </action>
+    <action dev="niallp" type="fix" issue="VALIDATOR-50" due-to="Stephanie Codron">
+     Fix email validator to not allow spaces at the end of the user
+     component or start of the domain component.
+    </action>
+    <action dev="niallp" type="add" issue="VALIDATOR-77" due-to="Neale">
+     Added validator_1_3_0.dtd and changed form rules so that a minimum
+     of one field is no longer required (i.e. changed (field+) to (field*)
+     for a form).
+    </action>
+    <action dev="niallp" type="fix" issue="VALIDATOR-109" due-to="Philippe Mouawad">
+     Resolve issue in JavaScript validation when the prototype library
+     is used.
+    </action>
+    <action dev="niallp" type="fix">
+     Re-factor JavaScript error handling into a common method and only
+     set focus on fields which are not 'hidden' type or hidden by CSS.
+    <fixes issue="VALIDATOR-97"/>
+    <fixes issue="VALIDATOR-81"/>
+    <dueto name="Matt Bathje"/>
+    <dueto name="Paul Benedict"/>
+    </action>
+    <action dev="niallp" type="fix">
+     Remove static Log instances to avoid problems if deployed via a shared
+     classloader in a container. See
+     <a href="http://wiki.apache.org/commons/Logging/StaticLog">here</a>
+     for more details.
+    </action>
+    <action dev="niallp" type="fix" issue="VALIDATOR-39">
+     Reverse change for to Credit Card Validator for visa card blue in France.
+    </action>
+    <action dev="niallp" type="fix" issue="VALIDATOR-18" due-to="Kristian L. Petersen">
+     Fix JavaScript validation for Internet Explorer 5.0.
+    </action>
+  </release>
+
+  <release version="1.2.0" date="2005-11-15"
+     description="1.2 Release - see http://wiki.apache.org/commons/ValidatorVersion120">
+    <action dev="dgraham" type="add" issue="VALIDATOR-145">
+    Added ISBNValidator for validating book numbers.
+    </action>
+    <action dev="dgraham" type="update">
+    Upgrade dependency versions to
+    <a href="http://commons.apache.org/beanutils/">Commons BeanUtils</a> 1.7.0,
+    <a href="http://commons.apache.org/digester/">Commons Digester</a> 1.6
+    and <a href="http://commons.apache.org/logging/">Commons Logging</a> 1.0.4.
+    Remove dependency on
+    <a href="http://commons.apache.org/beanutils/">Commons Collections</a>
+    (BeanUtils 1.7.0 has removed its dependency on Collections by including the
+     few Collections classes required in its distribution).
+    </action>
+    <action dev="husted" type="add" issue="VALIDATOR-135">
+    Add support for min or max numeric values.
+    </action>
+    <action dev="husted" type="add" issue="VALIDATOR-137">
+    Allow validators to register errors for multiple fields.
+    </action>
+    <action dev="husted" type="fix" issue="VALIDATOR-85">
+    Fixed EmailValidator failing on valid email addresses.
+    </action>
+    <action dev="rleland" type="add" issue="VALIDATOR-132">
+    Allow forms to inherit validation rules from other forms.
+    </action>
+    <action dev="niallp" type="add" issue="VALIDATOR-166">
+    Remove the need to specify an Arguement's position.
+    </action>
+    <action dev="dgraham" type="add" issue="VALIDATOR-185">
+    Deprecated all FastHashMap usage and provided protected get
+    methods that return generic Maps to be used by subclasses.
+    </action>
+    <action dev="mrdon" type="fix">
+    Handling of float and double should use the locale object.
+    Fixes <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=21282">21282</a>
+    <fixes issue="VALIDATOR-124"/>
+    </action>
+    <action dev="mrdon" type="update" issue="VALIDATOR-181">
+    More informative Exception message when validation method not found.
+    </action>
+    <action dev="mrdon" type="fix" issue="VALIDATOR-148">
+    Client-side required validation inconsistent with server-side.
+    </action>
+    <action dev="mrdon" type="fix" issue="VALIDATOR-101">
+    EmailValidator allows apostrophes in domain name.
+    </action>
+    <action dev="mrdon" type="fix">
+    Changing the strategy for locating form name/id, now use a common utility
+    function which works in both IE and Firefox.
+    Fixes <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=35127">35127</a>
+    and <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=35127">32760</a>
+    </action>
+    <action dev="mrdon" type="fix">
+    Validation fails when "name" attribute in form not specified.
+    <fixes issue="VALIDATOR-80"/>
+    <fixes issue="VALIDATOR-73"/>
+    </action>
+    <action dev="mrdon" type="fix" issue="VALIDATOR-27">
+    UrlValidator fails http://www.google.com.
+    </action>
+    <action dev="mrdon" type="fix">
+    Email: inexisting dashes and TLD erroneously accepted.
+    <fixes issue="VALIDATOR-114"/>
+    <fixes issue="VALIDATOR-44"/>
+    </action>
+    <action dev="mrdon" type="fix" issue="VALIDATOR-1">
+    Float validator can't validate the string with several dot.
+    </action>
+    <action dev="mrdon" type="fix" issue="VALIDATOR-39">
+    CreditValidator does not handle Visa correctly.
+    </action>
+    <action dev="mrdon" type="fix" issue="VALIDATOR-32">
+    datePattern not supported by JavaScript.
+    </action>
+    <action dev="mrdon" type="fix" issue="VALIDATOR-6">
+    validateRequired on a single radio button.
+    </action>
+    <action dev="mrdon" type="fix" issue="VALIDATOR-158">
+    Field.validate() cannot be invoked from user-defined code.
+    </action>
+    <action dev="mrdon" type="fix">
+    Locale validation doesn't validate all fields.
+    <fixes issue="VALIDATOR-61"/>
+    <fixes issue="VALIDATOR-179"/>
+    </action>
+    <action dev="mrdon" type="fix" issue="VALIDATOR-161">
+    XML file included into validation.xml via entity reference not found.
+    </action>
+    <action dev="niallp" type="fix" issue="VALIDATOR-117">
+    Update maven build to Include DTDs and xdocs in the source distribution.
+    </action>
+    <action dev="niallp" type="fix">
+    Remove logging of exceptions when the Date validation fails (correctly) with
+    an invalid date.
+    </action>
+    <action dev="niallp" type="fix">
+    Add version 1.1.3 of the DTD from the VALIDATOR_1_1_2_BRANCH and change
+    digester rules so that the old arg0-arg3 values are not ignored for
+    versions of the DTD prior to 1.2.0.
+    </action>
+    <action dev="niallp" type="add" issue="VALIDATOR-108">
+    Add 'resource' and 'bundle' elements to the 1.2.0 DTD.
+    </action>
+    <action dev="niallp" type="add" issue="VALIDATOR-172">
+    Provide access to the result object in ValidatorResult.
+    </action>
+    <action dev="niallp" type="fix" issue="VALIDATOR-75">
+    Validation breaks on multiple validation.xml (eg. with Struts 1.3).
+    </action>
+    <action dev="niallp" type="fix" issue="VALIDATOR-86">
+    GenericTypeValidator does not accept negative Floats/Doubles.
+    </action>
+    <action dev="niallp" type="fix" issue="VALIDATOR-48">
+    correct UrlValidator Javadoc.
+    </action>
+    <action dev="niallp" type="add" issue="VALIDATOR-3">
+    Search the locale 'hierarchy' of formsets for a Form.
+    </action>
+    <action dev="niallp" type="fix" issue="VALIDATOR-59">
+     Int validation in Java and Javascript have different semantics.
+    </action>
+    <action dev="niallp" type="fix" issue="VALIDATOR-33">
+     Javascript Validation currently uses unsupported DOM method getAttributeNode().
+    </action>
+  </release>
+
+  <release version="1.1.4" date="2004-11-12" description="1.1 Maintenance Release.">
+    <action dev="niallp" type="add" issue="VALIDATOR-175">
+    Added getMessage(key) and getMessages() methods to Field
+    </action>
+    <action dev="niallp" type="add">
+    Added resource property (including getter/setter) to Msg to support
+    the 'resource' attribute specified in the DTD.
+    </action>
+  </release>
+
+  <release version="1.1.3" date="2004-08-25" description="1.1 Release">
+    <action dev="dgraham" type="fix" issue="VALIDATOR-16">
+    Fixed javascript file reading in Java WebStart environment.
+    </action>
+    <action dev="mrdon" type="fix" issue="VALIDATOR-54">
+    Fixed javascript email domain length limited to 2 or 3 chars.
+    </action>
+  </release>
+
+  <release version="1.1.2 (alpha)" date="2004-04-03" description="1.1 Alpha">
+    <action dev="rleland" type="fix" issue="VALIDATOR-24">
+    Javascript validation doesn't work if a form field is
+    called "name".
+    </action>
+    <action dev="rleland" type="update">
+    Allow multiple forms to be on the same page by
+    generating a unique variable name based on form name.
+    Fixes <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=17667">17667</a>
+    </action>
+    <action dev="rleland" type="add" issue="VALIDATOR-152">
+    Validate file extensions for file uploads.
+    </action>
+    <action dev="rleland" type="add" issue="VALIDATOR-183">
+    Add Support for hidden fields in javascript
+    validations.
+    </action>
+    <action dev="dgraham" type="update" issue="VALIDATOR-14">
+    The framework will convert checked exceptions into
+    ValidatorExceptions so any ValidatorException thrown out
+    of the framework indicates a 'system' exception that
+    stops validation processing. If a pluggable validation
+    method throws a ValidatorException it will be rethrown
+    and passed out of the framework. Any other exception from
+    a pluggable validation method is still considered a validation
+    failure rather than a system exception to maintain backwards
+    compatibility.
+    </action>
+    <action dev="dgraham" type="add" issue="VALIDATOR-174">
+    Added a more flexible card validation system that doesn't
+    require CreditCardValidator to support every brand of
+    credit card.
+    </action>
+    <action dev="dgraham" type="update">
+    Throw RuntimeException if clone fails instead of InternalError.
+    </action>
+    <action dev="dgraham" type="add">
+     Added Flags.clear().
+    </action>
+  </release>
+
+  <release version="1.1.1 (alpha)" date="2003-12-15" description="1.1 Alpha">
+    <action dev="rleland" type="add">
+    Add javadoc to javascript, and use
+    <a href="http://jsdoc.sf.net"> jsdoc</a> to process it.
+    </action>
+    <action dev="rleland" type="fix">
+    Ignore validation criteria when field is disabled for all field types.
+    </action>
+    <action dev="rleland" type="add">
+    Add required check for single checkbox.
+    </action>
+    <action dev="rleland" type="add">
+    Let max/min length also cover passwords fields. Don't use
+    these for checking login pages, only when the user is
+    modifying the password.
+    </action>
+    <action dev="dgraham" type="add">
+    Added Field.getArgs(String) to make it easier to retrieve
+    all of the Args for a given validator.
+    </action>
+    <action dev="rleland" type="fix">
+    Modify javascript to honor datapattern option.
+    </action>
+    <action dev="rleland" type="add">
+    Add ability of required to handle checkboxes, radio, select-one,
+    and select-multiple field types.
+    </action>
+    <action dev="rleland" type="add">
+    Add ability to use required condition on array types like checkboxes.
+    </action>
+  </release>
+
+  <release version="1.1.0 (alpha)" date="2003-08-26" description="1.1 Alpha">
+    <action dev="dgraham" type="update">
+    Move Digester rule configuration to XML file and remove
+    ValidatorResourcesInitializer. ValidatorResources now
+    knows how to initialize itself.
+    </action>
+    <action dev="dgraham" type="update">
+    Clean up scopes of methods and variables.
+    </action>
+    <action dev="dgraham" type="update">
+    Make Arg system more flexible to allow any number of
+    args in a message.
+    </action>
+    <action dev="dgraham" type="update">
+    Validate validation.xml files while initializing a Validator
+    to alert developers to configuration errors.
+    </action>
+    <action dev="dgraham" type="add">
+    Refactored <code>GenericValidator</code> methods into reusable
+    objects.  These include: CreditCardValidator, EmailValidator,
+    DateValidator, and UrlValidator.
+    </action>
+    <action dev="dgraham" type="update">
+    <p><strong>Backwards Incompatible Changes</strong></p>
+    <ul>
+      <li>
+        &lt;msg&gt;'s name and key attributes are now required.  The Validator code was
+        enforcing this constraint so now it's formally defined in the DTD.
+      </li>
+    </ul>
+    </action>
+    <action dev="dgraham" type="remove">
+      <p>Deprecated items; see the javadoc for details and replacements.</p>
+    <ul>
+      <li>
+         The &lt;arg0-3&gt; elements have been replaced with a single &lt;arg&gt; element
+         with a new <code>position</code> attribute.  Setting position to 0 is the equivalent
+         of an &lt;arg0&gt; element.
+      </li>
+      <li>
+         <code>Arg.getResource()</code>
+      </li>
+      <li>
+         <code>CreditCardValidator.isValidPrefix()</code>
+      </li>
+      <li>
+         <code>Field.ARG_DEFAULT</code>
+      </li>
+      <li>
+         <code>Field.hDependencies</code>
+      </li>
+      <li>
+         <code>Field.hArg0 - Field.hArg3</code>
+      </li>
+      <li>
+         <code>Field.addArg0() - Field.addArg3()</code>
+      </li>
+      <li>
+         <code>Field.getArg0() - Field.getArg3()</code>
+      </li>
+      <li>
+         <code>Field.addVarParam()</code>
+      </li>
+      <li>
+         <code>Field.process()</code>
+      </li>
+      <li>
+         <code>Field.processMessageComponents()</code>
+      </li>
+      <li>
+         <code>Field.getDependencies()</code>
+      </li>
+      <li>
+         <code>Form.getFieldMap()</code>
+      </li>
+      <li>
+         <code>Form.process()</code>
+      </li>
+      <li>
+         <code>FormSet.addConstant()</code>
+      </li>
+      <li>
+         <code>FormSet.addConstantParam()</code>
+      </li>
+      <li>
+         <code>FormSet.getForm(Object)</code>
+      </li>
+      <li>
+         <code>FormSet.process()</code>
+      </li>
+      <li>
+         <code>GenericValidator.REGEXP_DELIM</code>
+      </li>
+      <li>
+         <code>GenericValidator.validateCreditCardLuhnCheck()</code>
+      </li>
+      <li>
+         <code>GenericValidator.validateCreditCardPrefixCheck()</code>
+      </li>
+      <li>
+         <code>GenericValidator.getDelimittedRegExp()</code>
+      </li>
+      <li>
+         <code>Validator.BEAN_KEY</code>
+      </li>
+      <li>
+         <code>Validator.VALIDATOR_ACTION_KEY</code>
+      </li>
+      <li>
+         <code>Validator.FIELD_KEY</code>
+      </li>
+      <li>
+         <code>Validator.VALIDATOR_KEY</code>
+      </li>
+      <li>
+         <code>Validator.LOCALE_KEY</code>
+      </li>
+      <li>
+         <code>Validator.hResources</code>
+      </li>
+      <li>
+         <code>Validator.addResource()</code>
+      </li>
+      <li>
+         <code>Validator.getResource()</code>
+      </li>
+      <li>
+         <code>ValidatorAction.process()</code>
+      </li>
+      <li>
+         <code>ValidatorAction.getDependencies()</code>
+      </li>
+      <li>
+         <code>ValidatorResources.put()</code>
+      </li>
+      <li>
+         <code>ValidatorResources.addConstant()</code>
+      </li>
+      <li>
+         <code>ValidatorResources.addConstantParam()</code>
+      </li>
+      <li>
+         <code>ValidatorResources.get()</code>
+      </li>
+      <li>
+         <code>ValidatorResources.processForms()</code>
+      </li>
+      <li>
+         <code>ValidatorResourcesInitializer</code>
+      </li>
+      <li>
+         <code>ValidatorResult.getValid()</code>
+      </li>
+      <li>
+         <code>ValidatorResults.empty()</code>
+      </li>
+      <li>
+         <code>ValidatorResults.get()</code>
+      </li>
+      <li>
+         <code>ValidatorResults.properties()</code>
+      </li>
+      <li>
+         <code>ValidatorUtil</code>
+      </li>
+    </ul>
+    </action>
+  </release>
+
+  <release version="1.0.2" date="2003-04-17" description="1.0 Maintenance Release">
+    <action dev="turner" type="fix" issue="VALIDATOR-93" due-to="Scott Clasen">
+    GenericValidaor.isEmail bug.
+    </action>
+    <action dev="dgraham" type="fix" issue="VALIDATOR-94" due-to="Jeremy Tan">
+    NPE in Validator.java after upgrading to Struts 1.1b3.
+    </action>
+    <action dev="turner" type="fix" issue="VALIDATOR-62" due-to="Jeremy Tan">
+    i18n issue, variant not being picked up by Validator.
+    </action>
+    <action dev="turner" type="fix" issue="VALIDATOR-53" due-to="Thomas Jacob">
+    isEmail accepts Umlauts and other non-ASCII characters.
+    </action>
+    <action dev="dgraham" type="fix" issue="VALIDATOR-104" due-to="Erik Hatcher">
+    Email address validation incorrectly accepts commas.
+    </action>
+    <action dev="dgraham" type="fix" issue="VALIDATOR-36" due-to="Didier Romelot">
+    unknown host when loading app.
+    </action>
+  </release>
+
+  <release version="1.0.1" date="2002-12-16" description="1.0 Maintenance Release">
+    <action dev="martinc" type="fix" issue="VALIDATOR-84" due-to="Pierre Chardin">
+    Serialization problem with org.apache.commons.validator.ValidatorResult$ResultStatus.
+    </action>
+    <action dev="turner" type="fix" issue="VALIDATOR-68" due-to="Bjorn-H. Moritz">
+    ValidatorResources.get-method not working properly.
+    </action>
+  </release>
+
+  <release version="1.0" date="2002-11-01" description="1.0 Release">
+    <action type="add">
+      First Release.
+    </action>
+  </release>
+
+  </body>
+</document>