$Id: RELEASE-NOTES.txt,v 1.11.2.2 2004/07/27 21:39:28 rdonkin Exp $

   Copyright 2001-2004 The Apache Software Foundation

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


                          Commons BeanUtils Package
                             Version 1.7.0
                               Release Notes

INTRODUCTION:
============

Beanutils 1.7.0 is a service release aimed at providing compatibility
with both the commons collections 2.x series of releases 
and the commons collections 3.x series of releases

TODO: Release notes will be provided for the actual release.

CHANGES:
========

Upgraded License To Apache License 2.0
--------------------------------------
Beanutils is now released under the Apache License 2.0. 
See http://www.apache.org/licenses/LICENSE-2.0.

Beanification
-------------
Creation of objects to back the static utility classes. These object are 
per-context-classloader pseudo-singletons. Each web or enterprise application 
is therefore isolated from changes made to the state of others suing the
static facades. Greater flexibility of implementation is encourage since users
can subclass and then set their own implementations. Calls to the static facades 
will then be passed to that implementation.

Removal Of Commons Collections Dependency
-----------------------------------------
The commons collections dependency is in the process of being removed
from core beanutils. This will reduce the number of dependencies for
the core beanutils and also will allow beanutils to used with both
collection 2.x and collection 3.x releases.

Documentation Improvements
--------------------------
Many thanks to all those kind souls who've contributed documentation :)

 
ENHANCEMENTS:
=============

BeanAccessLanguageException & NestNullException
-----------------------------------------------
Added new subclasses of RuntimeException so that bean access language
exceptions can be trapped by users.

BeanComparator
--------------
Added no-argument constructor for use in bean-centric environments.

ConvertUtilsBean
----------------
Added a File converter and registered the File and URL converters by default


BUG REPORTS ADDRESSED:
=====================
   #14848 Converted localized versions of beanutils and convert utils to use 
          delegated singletons. Now instances with the functionality in these 
          classes can be created.  
          Added public constructors for the utility objects (BeanUtilsBean, 
          PropertyUtilsBean and ConvertUtilsBean). Add public accessor properties
          for the ConvertUtilsBean and PropertyUtilsBean instances used by a 
          BeanUtilsBean. This allows BeanUtilsBean objects to be created with 
          independent registered converters and independent caches.  Also added
          test cases. 
   #17663 Made BeanUtils.getArrayProperty conversions use ConvertUtils 
          (rather than just toString)
   #18918 This bug prevented converters from being correctly deregistered
   #19850 Now cloneBean will deal successfully with DynaBeans.

