<?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/xsd/changes-1.0.0.xsd">
  <properties>
    <title>Release Notes</title>
  </properties>
  <body>

    <release version="1.9.3" date="2016-09-21" description="Bug fix release, now builds with Java 8">
      <action issue="BEANUTILS-433" dev="ggregory" type="update" due-to="Benedikt Ritter, Gary Gregory">
        Update dependency from JUnit 3.8.1 to 4.12.
      </action>
      <action issue="BEANUTILS-465" dev="oheger" type="fix" due-to="Daniel Atallah">
        Indexed List Setters no longer work
      </action>
      <action issue="BEANUTILS-469" dev="ggregory" type="update" due-to="Gary Gregory">
        Update commons-logging from 1.1.1 to 1.2.
      </action>
      <action issue="BEANUTILS-470" dev="oheger" type="fix" due-to="Tommy Tynj&#228;">
        Precision lost when converting BigDecimal
      </action>
      <action issue="BEANUTILS-474" dev="ggregory" type="update" due-to="Michael Grove">
        FluentPropertyBeanIntrospector does not use the same naming algorithm as DefaultBeanIntrospector.
      </action>
      <action issue="BEANUTILS-477" dev="oheger" type="fix">
        Changed log level of warnings from FluentPropertyBeanIntrospector; exceptions are no longer logged with level WARN.
      </action>
      <action issue="BEANUTILS-482" dev="ggregory" type="update" due-to="Gary Gregory">
        Update commons-collections from 3.2.1 to 3.2.2. (CVE-2015-4852)
      </action>
      <action issue="BEANUTILS-490" dev="ggregory" type="update" due-to="Gary Gregory">
        Update Java requirement from Java 5 to 6.
      </action>
      <action issue="BEANUTILS-492" dev="stain" type="update" due-to="Stian Soiland-Reyes">
        IndexedPropertyDescriptor not supported for List in Java 8
      </action>
      <action issue="BEANUTILS-493" dev="stain" type="fix" due-to="Bernhard Seebass">
        Exception when setting indexed properties: "Default conversion to ArrayList failed"
      </action>
      <action issue="BEANUTILS-495" dev="stain" type="update" due-to="Stian Soiland-Reyes">
        DateConverterTestBase fails on M/d/yy in Java 9
      </action>
      <action issue="BEANUTILS-496" dev="stain" type="update" due-to="Stian Soiland-Reyes">
        testGetDescriptorInvalidBoolean fails on Java 9
      </action>
    </release>

    <release version="1.9.2" date="2014-05-29"
      description="Added a new BeanIntrospector for addressing a potential class loader vulnerability">
      <action dev="oheger" type="add" issue="BEANUTILS-463">
        Class loader vulnerability in DefaultResolver ()
      </action>
      <action dev="oheger" type="fix" issue="BEANUTILS-458" due-to="Manuel Dominguez Sarmiento ">
        BaseLocaleConverter.checkConversionResult() fails with
        ConversionException when result is null when it should not
      </action>
    </release>

    <release version="1.9.1" date="2014-01-11" description="Bug fix for 1.9.0">
      <action dev="oheger" type="fix" issue="BEANUTILS-456">
        Write methods for PropertyDescriptors created during custom introspection are lost
      </action>
    </release>

    <release version="1.9.0" date="2013-12-11" description="Upgrade to Java 5 including generics where possible">
      <action dev="oheger" type="add" issue="BEANUTILS-455">
        WrapDynaBeans always use the default PropertyUtilsBean instance
      </action>
      <action dev="oheger" type="update" issue="BEANUTILS-454">
        BeanUtilsBean.copyProperties() throws conversion exception for null Date
      </action>
      <action dev="oheger" type="update" issue="BEANUTILS-452">
        Add generics
      </action>
      <action dev="oheger" type="update" issue="BEANUTILS-449">
        LocaleConverters do not take the target type into account
      </action>
      <action dev="oheger" type="update" issue="BEANUTILS-448">
        LocaleConverters do not check their default value
      </action>
      <action dev="oheger" type="update" issue="BEANUTILS-447">
        LazyDynaList.toArray() is not conform to the contract defined by the
        Collection interface
      </action>
      <action dev="oheger" type="update" issue="BEANUTILS-446">
        Some of the converters ignore the passed in target type
      </action>
      <action dev="oheger" type="update" issue="BEANUTILS-445">
        Converters can return an invalid result object if a default value is set
      </action>
      <action dev="oheger" type="update" issue="BEANUTILS-441" due-to="Samir Kerroumi">
        Replace UnmodifiableSet.decorate with Collections.unModifiableSet
      </action>
      <action dev="britter" type="update" issue="BEANUTILS-436">
        Replace package.html with package-info.java
      </action>
      <action dev="britter" type="update" issue="BEANUTILS-438">
        Add @Deprecated and @Override Annotations
      </action>
      <action dev="britter" type="update" issue="BEANUTILS-437">
        Replace Date and Revision SVN keywords with Id
      </action>
      <action dev="britter" type="update" issue="BEANUTILS-431">
        Remove @author tags and move missing authors to pom.xml
      </action>
      <action dev="britter" type="update" issue="BEANUTILS-432">
        Switch to Java 1.5
      </action>
      <action dev="oheger" type="add" issue="BEANUTILS-428">
        Provide a BeanIntrospector implementation which supports properties in a fluent API
      </action>
      <action dev="oheger" type="add" issue="BEANUTILS-425">
        Support customization of introspection mechanism
      </action>
      <action dev="britter" type="fix" issue="BEANUTILS-411" due-to="Marcus Zander">
        BeanUtilsBean.setProperty throws IllegalArgumentException if getter of nested property returns null
      </action>
      <action dev="britter" type="update" issue="BEANUTILS-429">
        Delete trailing white spaces and white spaces on empty lines from all files
      </action>
      <action dev="britter" type="update" issue="BEANUTILS-427">
        Configure Checkstyle to check for trailing white spaces and white spaces on empty lines
      </action>
      <action dev="britter" type="fix" issue="BEANUTILS-408">
        MethodUtils.invokeMethod() throws NullPointerException when args==null
      </action>
      <action dev="britter" type="fix" issue="BEANUTILS-426">
        ConstructorUtils.invokeConstructor(Class klass, Object arg) throws
        NullPointerException when arg==null
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-380" due-to="Brendan Nolan">
        BeanMap methods should initialize the root cause of exceptions that are thrown
        when running on JDK 1.4+
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-379">
        Remove copied Collection classes.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-378" due-to="Christian Schneider">
        BeanMap does not work in osgi (fixed by BEANUTILS-379)
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-381" due-to="Todd Nine">
        MethodUtils getMatchingAccessibleMethod() does not correctly handle inheritance
        and method overloading.
      </action>
    </release>

    <release version="1.8.3" date="2010-03-28" description="Bug fix for 1.8.2">
      <action dev="niallp" type="fix" issue="BEANUTILS-373" due-to="Andrew Sunde">
        MethodUtils is not thread safe because WeakFastHashMap which uses WeakHashMap is not thread-safe
        (duplicate of BEANUTILS-318 which was not fixed properly in BeanUtils 1.8.0).
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-371" due-to="David Tonhofer">
        Add constructors which have useColumnLabel parameter to ResultSetDynaClass and RowSetDynaClass.
      </action>
    </release>

    <release version="1.8.2" date="2009-11-13" description="Bug fix for 1.8.1">
      <action dev="niallp" type="fix" issue="BEANUTILS-368" due-to="Peter Fassev">
        NullPointerException in BeanUtilsBean .setProperty()
      </action>
    </release>

    <release version="1.8.1" date="2009-10-20" description="Bug fixes for 1.8.0">
      <action dev="niallp" type="fix" issue="BEANUTILS-300" due-to="Henri and Sebb">
        NPE in LazyDynaList
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-327" due-to="Sascha Riemann">
        JDBCDynaClass throws class not found exception under java6
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-336" due-to="Sebb">
        MappedPropertyDescriptor#reLoadClass() possible NPE / odd code; also swallows Throwable
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-339" due-to="Alan Escreet">
        BeanUtilsBean.setProperty throws IllegalArgumentException if value is null
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-345" due-to="Simone Riccucci">
        BeanUtilsBean.setProperty does not handle some kind of nested properties
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-347" due-to="Eickvonder">
        MappedPropertyDescriptor throws an exception after method reference has been garbage collected
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-349" due-to="Eivind Tagseth">
        copyProperties throws NullPointerException if an IllegalArgumentException is thrown due to a null value parameter for a primitive
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-351" due-to="Lucian Chirita">
        FloatLocaleConverter cannot parse 0
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-354" due-to="Anders Wallgren">
        Type in BooleanConverter: "Cna't convert value"
      </action>
      <action dev="niallp" type="update" issue="BEANUTILS-333" due-to="Lukasz Lenart">
        Avoid calling setAccessible() if not needed
      </action>
      <action dev="niallp" type="update" issue="BEANUTILS-344" due-to="Viral">
        Method createDynaProperty of JDBCDynaClass should first look for column label instead of column name in ResultSetMetadata
        object..
      </action>
      <action dev="niallp" type="update" issue="BEANUTILS-350" due-to="rodrigo hernandez">
        change visibility of method "evaluateValue" belongs to the class BeanPropertyValueEqualsPredicate to "protected".
      </action>
    </release>

    <release version="1.8.0" date="2008-09-01" description="Converter improvements, Plugable expression Resolver and bug fixes for 1.7.0">
      <action dev="niallp" type="fix" issue="BEANUTILS-265" due-to="Tom Schindl and Romain Muller">
        Allow access to non public class's public methods from a public sub-classes.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-291" due-to="Clebert Suconic ">
        Circular Reference on WeakHashMap.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-294" due-to="Stephen Leung">
        BeanUtilsBean.setProperty() does not support nested map.
      </action>
      <action dev="bayard" type="fix" issue="BEANUTILS-295" due-to="Stefan Wohlgemuth">
        Unnecessary Garbage Objects in Class PropertyUtilsBean.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-297" due-to="Alex Tkachev">
        ConvertingWrapDynaBean hides cause exceptions.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-298" due-to="Roman Mukhin">
        MethodUtils.getAccessibleMethod(Method method) could not find right public method.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-302" due-to="Martin Bartlett">
        NPE in ArrayConverter when converting a non-quoted string with underscores to a string array.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-306" due-to="Lucian Chirita">
        LocaleConvertUtilsBean.convert throws NPE on null Locale when debug logging is enabled.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-318" due-to="Sylvain Legault">
        Fix WeakHashMap is not thread safe in MethodUtils using new FastWeakHashMap.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-319" due-to="Erik Erskine">
        PropertyUtils.getPropertyType fails for DynaBeans contained within a normal bean.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-326" due-to="Vladimir Orlov">
        Iterating by a Map' key/value pairs in BeanUtilsBean and PropertyUtilsBean.
      </action>
    </release>

    <release version="1.8.0-BETA" date="2007-08-04" description="Trial Beta release">
      <action dev="niallp" type="add" issue="BEANUTILS-259">
        Add plugable property name expression Resolver.
      </action>
      <action dev="niallp" type="update" issue="BEANUTILS-258">
        General Converter implementation improvements: New AbstractConverter which provides
        a basic structure for Converter implementations and new NumberConverter implementation.
      </action>
      <action dev="niallp" type="add" issue="BEANUTILS-242">
        Add new generic ArrayConverter implementation.
      </action>
      <action dev="niallp" type="add" issue="BEANUTILS-255">
        Add new generic DateTimeConverter implementation.
      </action>
      <action dev="vgritsenko" type="update" issue="BEANUTILS-239" due-to="Rafael Afonso">
        Better implementation of SqlDateConverter. Modified SqlDateConverter,
        SqlTimeConverter and SqlTimestampConverter to accept java.util.Date
        and Calendar object instances. Added tests.
      </action>
      <action dev="niallp" type="add" issue="BEANUTILS-286">
        New Facade converter implementation - hide non-Converter public APIs.
      </action>
      <action dev="skitching" type="update" issue="BEANUTILS-229">
        Add "t/f" to BooleanConverter.
      </action>
      <action dev="niallp" type="update" issue="BEANUTILS-43" due-to="Firepica and Thomas Jacob">
        Support Mapped property inside a mapped property.
      </action>
      <action dev="niallp" type="update" issue="BEANUTILS-113" due-to="Firepica and Ludwig Wensauer">
        Support Indexed property inside a mapped property.
      </action>
      <action dev="niallp" type="update" issue="BEANUTILS-247" due-to="Christian Poitras, Thomas Jacob and scott sadlo">
        Support Arrays with multiple dimension.
      </action>
      <action dev="bayard" type="update" issue="BEANUTILS-207" due-to="Erik Meade">
        Include bean class in the message of PropertyUtilsBean exceptions.
      </action>
      <action dev="bayard" type="update" issue="BEANUTILS-224" due-to="Ralf Hauser">
        Provide better error message for "argument type mismatch".
      </action>
      <action dev="bayard" type="update" issue="BEANUTILS-30" due-to="Barry Kaplan">
        Improved messages for unknown properties.
      </action>
      <action dev="bayard" type="update" issue="BEANUTILS-193" due-to="Nestor Boscan">
        MethodUtils.invoke for static methods.
      </action>
      <action dev="niallp" type="update" issue="BEANUTILS-266" due-to="Brian Ewins and Commons HttpClient">
        Log or throw exception in PropertyUtilsBean.
        Added mechanism to initialize the "cause" on an Exception using reflection for JDK 1.4+
        (copied from Commons HttpClient).
      </action>
      <action dev="niallp" type="add" due-to="Vic Cekvenich">
        Add lazyDynaList.
      </action>
      <action dev="niallp" type="add" issue="BEANUTILS-185" due-to="Gabriel Belingueres">
        Provide a Map decorator for a DynaBean (enables DynaBean to be used with other teechnologies such as JSTL).
      </action>
      <action dev="niallp" type="update" issue="BEANUTILS-233" due-to="Russell">
        Implement equals() and hashCode() methods for DynaProperty.
      </action>


      <action dev="niallp" type="fix" issue="BEANUTILS-243" due-to="Henri Yandell">
        BeanUtils's tests fail to compile under JDK 1.6
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-49" due-to="Jesper Richter-Reichhelm">
        Lock in BeanUtilsBean.getInstance(
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-157" due-to="Thorbjorn Ravn Andersen">
        Beanutils's describe() method cannot determine reader methods for anonymous class.
      </action>
      <action dev="rdonkin" type="fix" issue="BEANUTILS-158">
        Added warning about describe behaviour to the javadocs.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-249" due-to="Brad">
        BeanUtilsBean's setProperty() does not convert objects using custom converters properly.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-17" due-to="Matthew Sgarlata and Corey Scott">
        Fix javadoc - IllegalArgumentException in BeanUtils.copyProperties
        when property types don't match.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-68" due-to="Dmitry Platonoff">
        Writing to a mapped property requires a setter for a map, but never uses it.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-110" due-to="Etienne Bernard">
        BeanUtilsBean.getArrayProperty() does not use ConvertUtils.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-6" due-to="Sam Ruby">
        MappedPropertyDescriptor - replace copied code.
      </action>
      <action dev="skitching" type="fix">
        MappedPropertyDescriptor: Add comments re: * use of static variable safe in shared
        classloader * memory leak possible on webapp undeploy.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-69" due-to="Chris Audley">
        MappedPropertyDescriptor doesn't recognize boolean property accessor.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-163">
        Add test for MappedPropertyDescriptor with different types on get/set methods.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-140" due-to="Marco La Porta">
        LocaleBeanUtils setProperty does not work on nested property.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-87" due-to="YOKOTA Takehiko">
        Package scope implementation of a public interface for mapped property fails
        (fixed by changes to MappedPropertyDescriptor associated with BEANUTILS-6)
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-33" due-to="Eoin Curran">
        PropertyUtils incosistency - can't use "dot" in mapped properties for setProperty
        or getPropertyDescriptor (fixed by the changes for BEANUTILS-259
        Plugable Property Name Expression Resolver).
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-273" due-to="Marcelo Liberato">
        Public methods overriden in anonymous or private subclasses are not recognized by PropertyUtils.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-88" due-to="Chuck Daniels">
        PropertyUtilsBean's isReadable() / isWriteable() always return false for mapped properties.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-61" due-to="Brian Ewins">
        PropertyUtilsBean isReadable() and isWriteable() methods do not work correctly for WrapDynaBean.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-18" due-to="Maarten Coene">
        PropertyUtils.isReadable() and PropertyUtils.getProperty() not consistent.
      </action>
      <action dev="bayard" type="fix" issue="BEANUTILS-92" due-to="Will Pugh">
        PropertyUtilsBean.copyProperties does not catch NoSuchMethodException
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-256" due-to="Torsten Feig">
        PropertyUtilsBean.getIndexedProperty()'s javadoc should indicate
        IndexOutOufBoundsException can be thrown rather than just
        ArrayIndexOutOufBoundsException.
      </action>
      <action dev="skitching" type="fix" issue="BEANUTILS-162">
        Create new methods getPropertyOfMapBean and setPropertyOfMapBean that the existing
        setNestedProperty and getNestedProperty methods now call when they discover the bean
        they are accessing implements Map. This makes it much easier for users to subclass
        and customise this behaviour of PropertyUtilsBean, eg in order to restore pre-1.5 behaviour.
        This patch also causes an exception to be thrown when the propertyName passed to
        getPropertyOfMapBean or setPropertyOfMapBean has MAPPED_DELIM or INDEXED_DELIM chars in
        it. This never worked as expected before (the whole string was treated literally as the
        propertyName), so throwing an exception here should not break any existing code. It should
        be of help to future developers who make this mistake though...
      </action>
      <action dev="skitching" type="fix">
        Ignore simple properties on java.util.Map objects -
        Map methods are always used on a Map object. Reverts BEANUTILS-144.
        See BEANUTILS-162 for discussion.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-262">
        Correct getPropertyDescriptor() and setNestedProperty() methods to throw
        a NestedNullException rather than just IllegalArgumentException (consistent
        with the getNestedProperty() method).
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-97">
        Problems on indexed property with JDK 1.4.
      </action>
      <action dev="skitching" type="update">
        BooleanArrayConverter: Use new AbstractArrayConverter constructors and
        Convert strings to booleans by invoking a BooleanConverter rather than
        hard-wiring the conversion.
      </action>
      <action dev="skitching" type="update" due-to="Eric Rizzo">
        BooleanConverter: Add facility for user to override the default set
        of true and false string definitions and provide ability to pass special
        NO_DEFAULT object as the "defaultValue" constructor parameter.
      </action>
      <action dev="skitching" type="update">
        AbstractArrayConverter: provide ability to pass special NO_DEFAULT object as the
        "defaultValue" constructor parameter.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-78" due-to="Stefan Lotscher">
        DecimalLocaleConverter and subClasses never throw a ConversionException.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-44" due-to="Paul Jenkins">
        FloatLocaleConverter cannot parse negative values.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-263" due-to="Alex Albu">
        Improve ClassConverter robustness.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-271" due-to="Nico Hoogervorst">
        DateLocaleConverter does not always throw an Exception for invalid dates.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-288">
        Don't try parsing values that are already Dates/Numbers in Date/Number locale Converters.
      </action>
      <action dev="skitching" type="fix">
        WrapDynaClass: Added comment re potential memory leak, and safety when using
        shared classloader
      </action>
      <action dev="niallp" type="fix">
        Make WrapDynaBean Serializable.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-36" due-to="Jack">
        WrapDynaBeanTestCase failing with jikes/kaffe because of static List in TestBean.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-23" due-to="Aslak Hellesoy">
        Misleading error message in ConvertingWrapDynaBean.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-24" due-to="Roi Ares">
        LazyDynaBean: don't try and instantiate properties of type Object.class.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-133" due-to="Masoud Omidvar">
        LazyDynabean JavaDoc corrections.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-250">
        LazyDynaClass can create a DynaProperty with a "null" type.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-289">
        JDBCDynaClass "lowerCase" option causes problems in RowSetDynaClass and ResultSetIterator.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-142" due-to="Li Zhang">
        RowSetDynaClass fails to copy ResultSet to DynaBean with Oracle 10g JDBC driver.
      </action>
      <action dev="bayard" type="fix" issue="BEANUTILS-241" due-to="Chris Hyzer">
        Fix BeanComparator throws wrong exception and hides cause.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-112" due-to="Simon Kitching">
        Deprecate the public static defaultTransformers HashMap and make it unmodifiable.
      </action>

      <action dev="niallp" type="update" issue="BEANUTILS-290">
        Merge Bean-Collections back into core BeanUtils and remove Bean-Collections sub-project.
      </action>
      <action dev="bayard" type="fix" issue="BEANUTILS-287">
        Fixi the build to include all the tests and change the build.properties.sample so it's easier
        to use for the default maven user (ie: it looks by default in the .maven repository)
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-217" due-to="Carlos Sanchez">
        Improvements to maven build.
      </action>
      <action dev="niallp" type="fix" issue="BEANUTILS-54" due-to="Pascal Grange">
        Add Implementation-Vendor-Id entry to jar's manifest.
      </action>
      <action dev="bayard" type="fix" issue="BEANUTILS-121" due-to="Chris Tilden">
        Resolve compiler warnings: Unused imports, un-read local variables,
        field hiding, empty block, improperly used statics, uncessary semi
        colons, unnecessary casts.
      </action>
      <action dev="skitching" type="fix">
        Replace use of static Log objects with instance or local variables. It isn't safe
        to use static Log objects in code that might be deployed via a shared classloader
        as they will bind to the Log object from the context classloader in use when the
        first use happens.
      </action>
      <action dev="scolebourne" type="fix" due-to="Dimiter Dimitrov" issue="COLLECTIONS-22">
        BeanMap: Fix internal variable to not include non-existant write methods.
        - ported from Commons Collections.
      </action>
      <action dev="rdonkin" type="update" due-to="Steve Cohen">
        Change MethodUtils to make getMatchingAccessibleMethod() method selection more
        rational.
      </action>
    </release>

    <release version="1.7.0" date="2004-08-02">
      <action type="update">
        See href="http://commons.apache.org/beanutils/commons-beanutils-1.7.0/RELEASE-NOTES.txt
      </action>
    </release>

    <release version="1.6.1" date="2003-02-18">
      <action type="update">
        See http://commons.apache.org/beanutils/commons-beanutils-1.6.1/RELEASE-NOTES.txt
      </action>
    </release>

    <release version="1.6" date="2003-01-21">
      <action type="update">
        See http://commons.apache.org/beanutils/commons-beanutils-1.6/RELEASE-NOTES.txt
      </action>
    </release>

    <release version="1.5" date="2002-10-23">
      <action type="update">
        See http://commons.apache.org/beanutils/commons-beanutils-1.5/RELEASE-NOTES.txt
      </action>
    </release>

    <release version="1.4.1" date="2002-08-28">
      <action type="fix">
        See http://commons.apache.org/beanutils/commons-beanutils-1.4.1/RELEASE-NOTES.txt
      </action>
    </release>

    <release version="1.4" date="2002-08-13">
      <action type="update">
        See http://commons.apache.org/beanutils/commons-beanutils-1.4/RELEASE-NOTES.txt
      </action>
    </release>

    <release version="1.3" date="2002-04-29">
      <action type="update">
        See http://commons.apache.org/beanutils/commons-beanutils-1.3/RELEASE-NOTES.txt
      </action>
    </release>

    <release version="1.2" date="2001-12-24">
      <action type="update">
        See http://commons.apache.org/beanutils/commons-beanutils-1.2/RELEASE-NOTES.txt
      </action>
    </release>

    <release version="1.1" date="2001-09-22">
      <action type="update">Version 1.1</action>
    </release>

    <release version="1.0" date="2001-07-14" description="Initial Release">
      <action type="add">Initial Release</action>
    </release>

  </body>
</document>
