<?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.


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>

  <body>

  <release version="1.4.0" date="in SVN" 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 <i>regular expression</i> 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">
    <p>
      <strong>Dependencies:</strong> <a href="dependencies.html">dependencies</a>
      for Validator 1.3.1 are unchanged since the 1.3.0 release.
    </p>
    <p>
      <strong>N.B.</strong><a href="http://jakarta.apache.org/oro/">Jakarta ORO</a>
      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.
    </p>
    </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 <code>null</code>.
    </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 <i>disabled</i> being 
     <i>undefined</i> (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 independantly, 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 <a href="http://dojotoolkit.org/docs/compressor_system.html">
     Dojo/Rhino Compressor</a>.
    </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>
