@ Version 0.8.4
New features:
* Add ability to set metadata programmatically on properties, which match certain predicates (for example all which are of specified types; for details see BeanClassMetadata.forMatchedProperties).
* Add ability to specify on source properties which change types will be skipped on destination properties (see AbstractBeanPropertyMetadata.skipPropertyChangesOnDest and new annotation @SkipPropertyChangesOnDest).
* Now in object creator, type converter and property converter it is possible to know in which context corresponding operation is happened (see OperationContextInfo class). This information can be usefull in some cases.
* Now it is possible to set CLEAN_COLLECTION_INSTEAD_REMOVE in Configuration to 'true', to cleaning all collections instead of removing them. Can be usefull with hibernate collections.
* Saving resulting destination object in every diff node. This important additional information can be usefull if you need to postprocess diff after it was created.
* Now it is possible to return from TypeConverter or PropertyConverter marker object EQUAL_TO_DESTINATION_MARKER. It will be treated by mapper as equal to destination object. And as result - protect destination object from being changed.
Minor changes:
* Bugfixes
* Small refactorings
* Improve javadocs.
@ Version 0.8.3
New features:
* Inheritance of metadata which is added programmatically. So, if, for example, you set from code some metadata for your interface IEntity, then it will be used by all beans which implemented IEntity.
* Overriding metadata of superclasses by subclasses.
* All bean class metadata added programmatically now overrides metadata from annotations! -> removed checking conflicts of metadata between annotations and programmatic metadata.
* Useful methods to perform batch operations of changing metadata on properties.
* Ability to mark on the level of properties what changes will be skipped during apply of diff. This can be done from annotations (@SkipPropertyChanges, @SkipContainerEntryChanges) or from code.
Minor changes:
* Fix mapping of array of beans to array of beans when arrays are root objects.
* Small performance optimizations.
* MergingContext.getBeanClassMetadata was renamed to MergingContext.forBeansOfClass.
@ Version 0.8.2
New feature:
* Ability to make local copy of merging context to be able to configure it for some special cases, then make mapping, and then "forget" all changes.
Minor changes:
* Improve/simplify configuration of beans metadata from code.
* Improve, fixed typos in javadocs.
* Fix critical bugs when mapping empty collection to null, and vise versa. Fixed mapping on array.
* Fixed other small bugs.
@ Version 0.8.1
New features:
* Ability to configure of beans metadata not only by annotation but programmatically as well (from code or from spring).
* Ability to map collection with creation of proxy objects. For example from "books" to "authorToBooks.book" where authorToBooks - collection of conjunctive proxy objects. Dozer can't do this.
Minor changes:
* Fixed bugs.
* Some execution performance optimizations.
@ Version 0.8
Features:
* Classes for merge/map not required to be the same - they should have only similar structure.
* Strong support of mapping configuration using annotations.
* Developed in mind to be easy configured via Spring IoC.
* Able to find diff between objects, and represent it in human readable form.
* Support parametrized type converters and property converters.
* Many type converters are used by default: for example for conversion between dates, primitive types and wrappers, implicit conversion of numeric types etc.
* Support parametrized bean finders (for example to find beans in database).
* Support registering listeners on main merge/map events.
* Support concept of bean identifier, to associate source bean with correct destination bean. - Main internal classes could be extended and changed. But by default all should work just as you expected!
* Library depends only from 'commons-beanutils'.
* All functionality is covered with unit tests.