$Id: RELEASE-NOTES.txt,v 1.5 2002/04/29 16:36:32 craigmcc Exp $ Commons BeanUtils Package Version 1.3 Release Notes INTRODUCTION: ============ This document contains the release notes for this version of the Commons BeanUtils package, and highlights changes since the previous version. NEW FEATURES: ============ DynaBeans: --------- DynaBeans are a very simple API that allows applications to construct "bean like" classes dynamically at runtime, and then get and set property values by name, rather than requiring compiled-in accesses to specific getter and setter methods. The key interfaces are: * org.apache.commons.beanutils.DynaBean - Property access methods for a DynaBean. Simple, indexed, and mapped properties are supported. * org.apache.commons.beanutils.DynaClass - The DynaBeans equivalent of java.lang.Class, which maintains a list of the properties (names and types) that are valid for DynaBeans that "implement" that DynaClass. * org.apache.commons.beanutils.DynaProperty - The DynaBeans equivalent of java.beans.PropertyDescriptor, which describes the name and Java type of a specific property of a DynaBean. The DynaBean and DynaClass APIs are interfaces, which can be implemented in a large variety of ways. To get you started, two implementations are included in the commons-beanutils package: * BasicDynaBean / BasicDynaClass - Supports creation of a BasicDynaClass that has a specific set of properties (passed into the constructor), plus a factory to create DynaBean instances that support this set of properties. * WrapDynaBean / WrapDynaClass - Each WrapDynaBean instance wraps a standard JavaBean so that its properties can be accessed via the DynaBean interface methods, consistent with the way any other DynaBean is accessed. Logging: ------- All components of the commons-beanutils package now use the commons-logging package for logging, which means that the BeanUtils classes will transparently adapt to whatever logging implementation your application is using. Set the logging detail level to DEBUG or TRACE to receive debugging output. The following log names are utilized (named after the calling class): org.apache.commons.beanutils.BeanUtils org.apache.commons.beanutils.ConvertUtils org.apache.commons.beanutils.MethodUtils org.apache.commons.beanutils.PropertyUtils BeanUtils Enhancements: ---------------------- The populate() method now has full support for setting simple, indexed, mapped, and nested properties. This support works transparently on both standard JavaBeans and DynaBean implementations. ConvertUtils Enhancements: ------------------------- You can now register custom implementations of the new Converter interface, so that your application can define its own String->Object conversion methodology. A standard set of converters is supplied (in the org.apache.commons.beanutils.converters package) and registered for all of the following data types: * java.lang.Boolean (and boolean primitives) * java.lang.Byte (and byte primitives) * java.lang.Character (and char primitives) * java.lang.Double (and double primitives) * java.lang.Float (and float primitives) * java.lang.Integer (and int primitives) * java.lang.Long (and long primitives) * java.lang.Short (and short primitives) * java.lang.String - identity conversion * java.math.BigDecimal * java.math.BigInteger * java.sql.Date * java.sql.Time * java.sql.Timestamp MethodUtils Enhancements: ------------------------ An additional mechanism for matching the actual method to be called searches for parameter lists that are compatible with, rather than exactly matching, the types specified in the call. This more closely matches the method matching semantics that the Java compiler supports when determining which method should be called. PropertyUtils Enhancements: -------------------------- Elements of properties whose underlying data type is a java.util.List may now be retrieved and set via the getIndexedProperty() and setIndexedProperty() methods, even though this usage was not defined in the JavaBeans Specification. All of the property getter and setter methods transparently support operations on DynaBeans, as well as standard JavaBeans. However, the methods to retrieve PropertyDescriptors (and related information) about DynaBeans have not been implemented. BUG REPORTS ADDRESSED: ===================== 4895 Populate method doesn't work for an indexed setter for arrays 5407 NullPointerException in BeanUtils.java when submission of form with