<?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.8.0" date="2023-12-02" description="">
    <!-- 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>
