<!--
   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.
-->
$Id: RELEASE-NOTES.txt 1236877 2012-01-27 20:36:39Z sebb $

                 Commons Validator Package
                     Version 1.4.0
                     Release Notes

INTRODUCTION
============

This is a maintenance release with improvements. New projects are encouraged to
use this release of Commons Validator.

IMPORTANT NOTES
================

BREAKING CHANGES:

 * NONE.
 
DEPENDENCIES
=============

The dependencies for Validator 1.4 have only one change since the 1.3.1 
release, in that the Jakarta ORO dependency has been removed (VALIDATOR-193).

For the current list of dependencies, please see
http://commons.apache.org/validator/dependencies.html

BUGS FROM PREVIOUS RELEASE
===========================

 * [VALIDATOR-216] - UrlValidator rejects top-level domains (TLDs) with
                     more than 4 characters
 * [VALIDATOR-218] - UrlValidator fail when path contains "(" / ")"
 * [VALIDATOR-220] - EmailValidator fails with ArrayIndexOutOfBoundsException
                     on domain names longer than 10 segments
 * [VALIDATOR-223] - Move the trim() function from validateRequired.js to
                     validateUtilities.js
 * [VALIDATOR-271] - gmail testing addresses do not validate
 * [VALIDATOR-276] - isValidURL call returns false for file scheme/protocol
                     when URL is correct
 * [VALIDATOR-282] - formatDate(String value, Locale locale) in
                     GenericTypeValidator uses DateFormat.SHORT instead of
                     DateFormat.DEFAULT
 * [VALIDATOR-286] - isValid method for EmailValidator should return false
                     for domain with special characters only
 * [VALIDATOR-289] - UrlValidator.isValid does not properly validate *.travel
                     domains
 * [VALIDATOR-292] - @localhost and @localhost.localdomain email addresses
                     aren't correctly detected as valid
 * [VALIDATOR-293] - Email validation fails with dash or hyphen at end of
                     local address

IMPROVEMENTS OVER PREVIOUS RELEASE
===================================

 * [VALIDATOR-188] - Extend ISBN validator to support smooth transition to
                     ISBN-13 / EAN-13 standard
 * [VALIDATOR-191] - Remove the dependency on Jakarta ORO (move to JDK 1.4
                     regular expression support)
 * [VALIDATOR-192] - Adding ISBNValidator to GenericValidator
 * [VALIDATOR-193] - Removing ORO dep. from GenericValidator
 * [VALIDATOR-203] - Refactor UrlValidator - especially the line 370-ish.
 * [VALIDATOR-211] - Upgrade to Digester 1.8
 * [VALIDATOR-213] - Factor out Check Digit logic into separate
                     implementations
 * [VALIDATOR-214] - New Regular Expression validator using JDK 1.4's Regex
 * [VALIDATOR-215] - New generic CodeValidator that validates format, length
                     and Check Digit for a code
 * [VALIDATOR-224] - validatorUtilities.js - replace colon characters in the
                     function name (JSF/Shale)
 * [VALIDATOR-226] - Null-Stream input to ValidatorResources leads to
                     MalformedURLExceptions
 * [VALIDATOR-232] - Add script attribute to control script generation
 * [VALIDATOR-233] - Switch to using Version 0.4.3 of the Dojo Compressor
                     from the maven repo
 * [VALIDATOR-234] - Create 1.4 DTD
 * [VALIDATOR-240] - Support the 65 prefix for Discover Card
 * [VALIDATOR-241] - New InetAdress Validator implementation
 * [VALIDATOR-242] - Move EmailValidator to routines package
 * [VALIDATOR-247] - Move CreditCardValidator to routines package and
                     refactor to use new CodeValidator
 * [VALIDATOR-248] - Add an option to allow 'localhost' as a valid hostname
                     part in the URL
 * [VALIDATOR-249] - Add Diners card validation to CreditCardValidator
 * [VALIDATOR-250] - Banking CheckDigit implementations: ABA, CUSIP, IBAN,
                     ISIN and Sedol
 * [VALIDATOR-251] - url with brackets is not validated thru URLvalidator
                     class.
 * [VALIDATOR-252] - Performance improvement of DomainValidator by change
                     the regular expression
 * [VALIDATOR-275] - EmailValidator.isValid(String) follows RFC822 but
                     violates RFC1034
 * [VALIDATOR-288] - UrlValidator does not validate URL with simple domains
                     (eg: http://hostname )
 * [VALIDATOR-300] - clirr Report - EmailValidator.isValidIpAddress() argument
                     type change
 * [VALIDATOR-301] - CheckStyle and FindBug Issues - inner classes and key sets

DEPRECATIONS
============

 * Most of the org.apache.commons.validator classes have been deprecated,
   in favour of the new org.apache.commons.validator.routines classes.

OTHER NOTES
============

Users should be aware of the following potential issues with migration:

 * The protected method validator.EmailValidator.isValidIpAddress() previously
   exposed a Jakarta ORO class via its signature.  The signature has been
   modified to accept a a java.lang.String and is not therefore not compatible.
   However, this class is deprecated and clients should use the equivalent
   class in the validator.routines package.

* Invocations of the method GenericValidator.matchRegexp() should be inspected
  for semantic differences between Jakarta ORO and Java regular expressions.
