<commit_before>$Id$

   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.


                          Commons BeanUtils Package
                               Version 1.8.0
                               Release Notes

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

This document contains the release notes for this version of the Commons
BeanUtils package, and highlights changes since the previous version.

For more information on Commons BeanUtils, see
o http://commons.apache.org/beanutils/

Compatibility with 1.7.0
========================
BeanUtils 1.8.0 is binary compatible release with Beanutils 1.7.0,
containing a number of bug fixes and enhancements.

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

Expression Resolver
-------------------
Prior versions of BeanUtils duplicated the logic required to "resolve"
expressions and suffered from inconsistency as a result. A new plugable Resolver
has been introduced in BeanUtils 1.8.0 which removes that duplication, makes
all expression resolution consistent and allows different expression syntax
flavours to be plugged in. As well as this BeanUtils now has improved support
for nested Map and indexed properties.

Conversion
----------
The converter implementations have been significantly improved in this release:

1) Arrays: A new "generic" ArrayConverter has been introduced which delegates
           the individual component conversion to an appropriate Converter for
           the component type.
2) Numbers: All numeric Converters now handle conversion between numeric types
           and have improved conversion facilities to and from Strings
           based on formats and/or a specified Locale.
3) Dates: Improvements to the existing SQL Date, Time and Timestamp converters
          now handle conversion between Date/Calendar types and have improved
          conversion facilities to and from Strings based on formats and/or
          a specified Locale. New java.util.Date and Calendar converter
          implementations have been added.

Prior versions of BeanUtils delegated all conversion to String to the registered
String Converter. All Converter implementations provided by BeanUtils can now handle
conversion to String (as well as from) for their type. New ConvertUtils lookup/convert
methods have been added which delegate conversion to String appropriately. However
existing convert methods work as before to retain compatibility, but can be switched
to the new behaviour by configuring the BeanUtilsBean2 / ConvertUtilsBean2 implementations.


Errors
------
Exception messages have been improved, providing more information relating to
where the failure occured. For JDK 1.4+ where BeanUtils catches exceptions
and throws new ones - the cause is now being intialized.

The following is a list of the enhancements in this release, with their Jira issue number:

  * [BEANUTILS-259] - Plugable Property Name Expression Resolver
  * [BEANUTILS-258] - Improve Converter Implementations
  * [BEANUTILS-242] - Add general array type conversion
  * [BEANUTILS-255] - Date and Calendar Converter implementations
  * [BEANUTILS-239] - Better implementation of SqlDateConverter
  * [BEANUTILS-286] - New Facade converter implementation - hides non-Converter public APIs
  * [BEANUTILS-229] - Add "t/f" to BooleanConverter
  * [BEANUTILS-43]  - Support Mapped property inside a mapped property
  * [BEANUTILS-113] - Support Indexed property inside a mapped property
  * [BEANUTILS-247] - Support Arrays with multiple dimensions
  * [BEANUTILS-207] - Include bean class in the message of PropertyUtilsBean exceptions.
  * [BEANUTILS-224] - Provide better error message for "argument type mismatch".
  * [BEANUTILS-30]  - Improve message for "Unknown property"
  * [BEANUTILS-193] - MethodUtils.invoke for static methods
  * [BEANUTILS-266] - Log or throw exception in PropertyUtilsBean. Added mechanism to
                      initialize the "cause" on an Exception using reflection for JDK 1.4+
  * [BEANUTILS-185] - Map decorator for DynaBeans to allow BeanUtils to operate with technologies such as JSTL
  * [BEANUTILS-233] - Implement equals() and hashCode() methods for DynaProperty

BUG REPORTS ADDRESSED:
=====================

The following is a list of the bugs fixed in this release, with their Jira issue number:

  * [BEANUTILS-243] - BeanUtils fails to compile under 1.6
  * [BEANUTILS-49]  - Lock in BeanUtilsBean.getInstance
  * [BEANUTILS-157] - Beanutils's describe() method cannot determine reader methods for anonymous class
  * [BEANUTILS-158] - Beanutils's - added warning about describe behaviour to the javadocs
  * [BEANUTILS-249] - Beanutils's setProperty() does not convert objects using custom converters properly
  * [BEANUTILS-274] - BeanUtils cannot set property of type Long with value of Double
  * [BEANUTILS-168] - BeanUtils's copyProperties(List, List) does not work - add warning about this
  * [BEANUTILS-17]  - BeanUtils's copyProperties - IllegalArgumentException when property types don't match<commit_msg>Update release notes for 1.8.0<commit_after>$Id$

   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.


                          Commons BeanUtils Package
                               Version 1.8.0
                               Release Notes

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

This document contains the release notes for this version of the Commons
BeanUtils package, and highlights changes since the previous version.

For more information on Commons BeanUtils, see
o http://commons.apache.org/beanutils/

Compatibility with 1.7.0
========================
BeanUtils 1.8.0 is binary compatible release with Beanutils 1.7.0,
containing a number of bug fixes and enhancements.

Compatibility with 1.8.0-BETA
=============================
There are a number of incompatible changes with the BeanUtils 1.8.0-BETA release:
 - AbstractConverter - constructor signatures are different and getDefaultType() method is now abstract
 - DateTimeConverter - now an abstract class and constructor signatures are different
 - NumberConverter - now an abstract class and constructor signatures are different

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

Expression Resolver
-------------------
Prior versions of BeanUtils duplicated the logic required to "resolve"
expressions and suffered from inconsistency as a result. A new plugable Resolver
has been introduced in BeanUtils 1.8.0 which removes that duplication, makes
all expression resolution consistent and allows different expression syntax
flavours to be plugged in. As well as this BeanUtils now has improved support
for nested Map and indexed properties.

Conversion
----------
The converter implementations have been significantly improved in this release:

1) Arrays: A new "generic" ArrayConverter has been introduced which delegates
           the individual component conversion to an appropriate Converter for
           the component type.
2) Numbers: All numeric Converters now handle conversion between numeric types
           and have improved conversion facilities to and from Strings
           based on formats and/or a specified Locale.
3) Dates: Improvements to the existing SQL Date, Time and Timestamp converters
          now handle conversion between Date/Calendar types and have improved
          conversion facilities to and from Strings based on formats and/or
          a specified Locale. New java.util.Date and Calendar converter
          implementations have been added.

Prior versions of BeanUtils delegated all conversion to String to the registered
String Converter. All Converter implementations provided by BeanUtils can now handle
conversion to String (as well as from) for their type. New ConvertUtils lookup/convert
methods have been added which delegate conversion to String appropriately. However
existing convert methods work as before to retain compatibility, but can be switched
to the new behaviour by configuring the BeanUtilsBean2 / ConvertUtilsBean2 implementations.


Errors
------
Exception messages have been improved, providing more information relating to
where the failure occured. For JDK 1.4+ where BeanUtils catches exceptions
and throws new ones - the cause is now being intialized.

The following is a list of the enhancements in this release, with their Jira issue number:

  * [BEANUTILS-259] - Plugable Property Name Expression Resolver
  * [BEANUTILS-258] - Improve Converter Implementations
  * [BEANUTILS-242] - Add general array type conversion
  * [BEANUTILS-255] - Date and Calendar Converter implementations
  * [BEANUTILS-239] - Better implementation of SqlDateConverter
  * [BEANUTILS-286] - New Facade converter implementation - hides non-Converter public APIs
  * [BEANUTILS-229] - Add "t/f" to BooleanConverter
  * [BEANUTILS-43]  - Support Mapped property inside a mapped property
  * [BEANUTILS-113] - Support Indexed property inside a mapped property
  * [BEANUTILS-247] - Support Arrays with multiple dimensions
  * [BEANUTILS-207] - Include bean class in the message of PropertyUtilsBean exceptions.
  * [BEANUTILS-224] - Provide better error message for "argument type mismatch".
  * [BEANUTILS-30]  - Improve message for "Unknown property"
  * [BEANUTILS-193] - MethodUtils.invoke for static methods
  * [BEANUTILS-266] - Log or throw exception in PropertyUtilsBean. Added mechanism to
                      initialize the "cause" on an Exception using reflection for JDK 1.4+
  * [BEANUTILS-185] - Map decorator for DynaBeans to allow BeanUtils to operate with technologies such as JSTL
  * [BEANUTILS-233] - Implement equals() and hashCode() methods for DynaProperty
  * [BEANUTILS-310] - Provide facility to configure and clear MethodUtils cache

BUG REPORTS ADDRESSED:
=====================

The following is a list of the bugs fixed since the 1.8.0-BETA release, with their Jira issue number:
  * [BEANUTILS-291] - Circular Reference on WeakHashMap
  * [BEANUTILS-294] - BeanUtilsBean.setProperty() does not support nested map
  * [BEANUTILS-295] - Unnecessary Garbage Objects in Class PropertyUtilsBean
  * [BEANUTILS-297] - ConvertingWrapDynaBean hides cause exceptions
  * [BEANUTILS-298] - MethodUtils.getAccessibleMethod(Method method) could not find right public method
  * [BEANUTILS-302] - NPE in ArrayConverter when converting a non-quoted string with underscores to a string array
  * [BEANUTILS-306] - LocaleConvertUtilsBean.convert throws NPE on null Locale when debug logging is enabled

The following is a list of the bugs fixed since the 1.7.0 release, with their Jira issue number:

  * [BEANUTILS-243] - BeanUtils fails to compile under 1.6
  * [BEANUTILS-49]  - Lock in BeanUtilsBean.getInstance
  * [BEANUTILS-157] - Beanutils's describe() method cannot determine reader methods for anonymous class
  * [BEANUTILS-158] - Beanutils's - added warning about describe behaviour to the javadocs
  * [BEANUTILS-249] - Beanutils's setProperty() does not convert objects using custom converters properly
  * [BEANUTILS-274] - BeanUtils cannot set property of type Long with value of Double
  * [BEANUTILS-168] - BeanUtils's copyProperties(List, List) does not work - add warning about this
  * [BEANUTILS-17]  - BeanUtils's copyProperties - IllegalArgumentException when property types don't match
{'fraction_non_alphanumeric': 0.0664407313997478, 'fraction_numerical': 0.018994325346784365, 'mean_word_length': 3.7846907993966816, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '869103', 'n_tokens_mistral': 3418, 'n_tokens_neox': 3126, 'n_words': 1521}