Release Notes

4.2.1 6/22/2008

Bug Fixes

4.2 12/16/2007

Bug Fixes

  • Update spring custom converter documentation1841449
  • Trim Strings issue with data type conversion1841448
  • Orphans not removed from Sets1822421
  • TimeZone not copied when mapping Calendar1815199
  • Problem when getters and setters are on different interfaces1814758
  • Unexpected exception in LogMsgFactory1797808
  • Map-backed mapping with map-id1796344
  • Custom converter called on null source field1792048
  • Patch for determining source field type1823435

4.1 09/22/2007

Bug Fixes
  • Inheritance issue(s) with proxied data objects1777357
  • Array mapping with XMLBeans throws NoSuchMehtod exception1773425
  • Mapping Started Event Not firing on mapping1768660
  • Inheritance mapping not working correctly - Part Deux1757573
  • Test Cases section not diplaying correctly in web site docs1657562
Feature Requests
  • Update inheritance mapping doc's1778316
  • Repackage functional/e2e tests1777076
  • Using multiple instances of CustomConverter1770440
  • Dozer vs. XmlBeans generated primitive types1764916
  • DozerEvent - sourceObject always null.1762642
  • Path to ResourceLoader to accept any URL1757321
  • Run existing tests in both unproxied and cglib proxied mode1756584
  • Removal of orphans in destination collection1755838
  • Allow global configuration of relationship-type1750158

4.0 07/15/2007

Bug Fixes
  • Field custom converter bug with Map data types 1749982
  • Prob w/ map-get-method and date-format 1733793
  • Global custom converters missing in default ClassMap 1728385
  • Copy Reference mapping instructions ignored for subclasses 1728159
  • mvn eclipse:eclipse does not get all dependencies 1727717
  • Prob w/ map-get-method and CustomConverter 1724104
Feature Requests
  • Misc code cleanup and refactoring 1754179
  • Refactor/Clean Up Dest Bean Creator 1752379
  • Mapping deep level field in Indexed structure 1752329
  • Add map-id to field mapping debug output 1750157
  • Push mapping value hierarchy down to ClassMap and FieldMap 1749805
  • Add bidirectional relationship between FieldMap and ClassMap 1749804
  • Don't expose DozerField and DozerClass objects 1749802
  • Remove *PRIME* feature from the docs 1736864
  • Major refactor of Map backed properties 1734665
  • Repackage ClassMap.java 1734228
  • Load classes consistently 1734163
  • Cleanup of internal exception handling 1734161
  • Add config support for auto trimming of strings 1707034
  • Mapping deep level field in Indexed structure 1473800

3.4 05/19/2007

Bug Fixes
  • Incorrectly recognizing JDK 6.0 1717547
  • Null pointer on MappingProcessor at Line 282 1717318
  • Change the way we determine JDK Version 1715819
  • Lost and Duplicated Objects 1715496
  • Fix Map VO with no custom mappings 1713550
  • Propagate exceptions while parsing allowed-exceptions xml 1713242
  • NPE when Date String when no date format specified 1711580
  • inappropriate subclass mappings applied 1674199
  • Inheritance mapping not working correctly 1486105
  • bidirectionnal mapping with sets subclasses 1664984
Feature Requests
  • Change util classes to static 1713604
  • Add PMD and Findbugs reports 1712886
  • Remove NotFoundException and DozerRuntimeExceptions 1712513
  • Add class level javadoc for classes missing it 1696636

3.3.1 04/28/2007

Bug Fixes
  • Remove Spring runtime dependency. Revert back to using Apache Commons to get Property Descriptors 1709117

3.3 04/26/2007

Bug Fixes
  • Throw exception if map-id cannot be resolved 1706291
  • When adding default field mappings, skip getter's w/params 1705525
  • When discovering default field mappings require corresponding get/set method 1704085
  • Global Bean Factory not applied to default mappings 1700448
  • Non-Cumulative mapping issues 1698069
Feature Requests
  • Use Spring's BeanUtils.getPropDescriptors() instead of jakarta 1707014
  • When auto registering mbeans check if mbean is already reg'd 1697294
  • Recursive object mapping not working with interfaces 1658168
  • Improve collection handling, esp. non-cumulative mapping 1482749

3.2.1 04/08/2007

Feature Requests
  • Boolean to number auto converstion 1695408
  • Added statistics for custom converter mappings 1695380
  • Small performance improvement for jdk1.5 users 1694734

3.2 04/03/2007

Bug Fixes
  • 3.1 Release not backwards compatible with JDK 1.3 1692620
  • Destination Value always null in CustomConverter 1679996
  • Indexed Mapping broke when is-accessible is true 1673152
  • Allowed Exceptions not working for default mappings 1658569
  • Remove is-accessible option from configuration and mapping sections in the DTD 1692603
  • Set mapping problem when field starts in upper case in mapping xml file 1549738
Feature Requests
  • Auto register Dozer JMX MBeans with the platform mbean server 1690327
  • Private constructor support when creating new instances of data objects 1690298
  • Create quick reference page for mapping xml options 1657611
  • Set/get method for last field in deep-chaing 1456486
  • Add documentation for existing custom converter support of Array types 1691021

3.1 03/25/2007

Patches
  • Bi-direction is-accessible 1664865
Bug Fixes
  • Dramatic Performance Degradation with Interfaces 1684237
Feature Requests
  • Transparent Java 5 enums support 1685083
  • Move dozer to subversion 1684934
  • Maven 2 Repo 1677946
  • Resolve collection hints from Java 5 generic type information 1677376

3.0 02/08/2007

Bug Fixes
  • Fixed custom converter cache 1644966
  • Fixed wildcard mapping not working with interface inheritance 1636354
  • Fixed inherited setters not found with interface inheritances 1637106
  • Fixed mapping from object to array 1616229
  • Fixed ClassMapFinder does not find ClassMap for interfaces 1615377
  • Added Spring FactoryBean 1613791
  • Fixed is-accessible problem with abstract super classes 1599457
  • Fixed ClassMap not found for interface mapping 1554793
  • Fixed issue with custom converters not being invoked for null values 1563795
Feature Requests
  • Upgrade build infrastructure to Maven2 1651498
  • Removed dependency on log4j 1644537
  • Misc performance improvements 1645687
  • Cleaned up indexed logic and custom converter logic 1620589
  • Prevent infinite loop for bi-directional data object relationships 1596766
  • Added support for custom converters at field level 1476780
  • Modified custom converting matching logic 1481357
  • Added support for custom field mappers 1654784

2.4 10/14/2006

Bug Fixes
  • Added ability to load custom mapping files from outside of classpath 1563130
  • Runtime exceptions no longer wrapped in MappingException 1561837
  • Fixed primitive array to List mapping issue 1561184
  • Fixed ConcurrentModificationException 1550275
  • Fixed Proxy/Hibernate Lazy Init Object Issues 1572949
Feature Requests
  • Request for passing up RuntimeException when stop on error is set to false 1513128
  • Request for JAXB object factory 1572996
  • Request for allowing alternate declaration of mapping files 1480372
  • Request for proper null conversion for "proxy" mappings 1471808
  • Request for Mapping deep level field in Indexed structure 1473800

2.3 09/01/2006

Bug Fixes
  • Fixed String to indexed Set using a destination hint 1543202
  • Fixed duplicate map-id's found 1539461
  • Fixed unable to map SortedSet subinterface 1538441
  • Fixed source property desciptor caching 1537668
  • Fixed isAccessible not being able to find private fields 1503670
  • Fixed index mapping with Set 1480666
  • Attempted to fix ConcurrentModificationException 1550275
Feature Requests
  • Request for new logging category for startup/init information 1475235
  • Request for bypass of set dest value when the dest value already equals src value 1481427
  • Request to use static map of threadsafe primitive + wrapper converters 1481500
  • Request to make DozerBeanMapper.getMappingProcessor() protected 1470425
  • Request for improve testability/readability of the code base 1543302
  • Request to remove SourceField, DestinationField classes 1480804
  • Request to remove SrcClass, DestClass, SrcHint, DestHint, and Hydrate classes 1539455
  • Request to move duplicate assemble key logic to common place 1481505
  • Request to add more unit testing around JMX controller classes 1481538
  • Request to make map-id more intuitive from a coding perspective 1484397
  • Request to clean up PMD errors 1539639
  • Request to add more comments to the code base 1543264

2.2 04/29/2006

2.1.1 04/18/2006

  • Fixed performance degradation.

2.1 03/15/2006

2.0.2 02/29/2006

  • Added PDF Users Guide
  • Request for more log.dubug statements to help diagnosing mapping problemsRFE 1445372
  • Fixed log.error when an exception is thrown and stop on errors is trueRFE 1445376

2.0.1 02/02/2006

  • Request for allow override to exclude mapping of null src field valueRFE 1413480
  • Request for allow override to exclude mapping of "" src field valueRFE 1417170
  • Request check mapping file for duplicate entriesRFE 1416905
  • Fixed Hint is not used for Array to ListIssue 1413429
  • Fixed Context Based Mapping and Nested Context based mapping does not work unless a MapIssues 1413443 and 1413451
  • Fixed LinkedHashMap not compatible with JDK 1.3Issues 1419357
  • Fixed NPE when sourceFieldValue is null in logFieldMappingError() method

2.0 01/16/2006

  • Request for create dozer 1.x - 2.x migration documentation.RFE 1397121
  • Request for increase performance 4X - 8X.RFE 1381246
  • Request for XML tags more consistent.RFE 1381249
  • Request for custom create methods.RFE 1386770
  • Request for remove static BeanMapper.RFE 1381248
  • Fixed exclude-field doesn't work on an indexed property Issue 1404944
  • Fixed Better error message for null top level src object Issue 1386663
  • Fixed OO domain objs to flat VO obj w/ interface issue Issue 1391777
  • Fixed Default ClassMap not getting CustomConverters Issue 1384887

1.5.8.1 12/08/2005

  • Request for ability to have overloaded set() methods. RFE 1375559
  • Request for upgrade to commons-lang-2.1. RFE 1375457
  • Request for ability to map field w/out get() set() Methods. This is a partial implementation.RFE 1373285
  • Request for if no destination for List, Set, Map inst. source class when appropriate. RFE 1373219
  • Request for enhanced ability to copy map to map. RFE 1372011
  • Request for Set to Array, Array to Set, Set to List, List to Set. RFE 1370482
  • Fixed compatibility with JDK 1.3. At one point we had this...and then reverted back by using LinkedHashSet.
  • Fixed Null Value in String Array causes NPE Issue 1373824
  • Fixed Deep property mapping and Inheritance Issue 1372000

1.5.8 11/29/2005

  • Request for enhancement remove dependency on Castor. RFE 1369801
  • Request for enhancement ability to Initialize DozerBeanMapper. RFE 1367803
  • Request for ability to inject custom converters. RFE 1363361
  • Request for enhancement for making CustomConverters global to all mapping files. RFE 1363358
  • Fixed InterFace isAssignableFrom Class Issue 1365701
  • Fixed Iterator to Array/List Issue 1364373
  • Fixed Array to Array mapping Issue 1361105

1.5.7 11/15/2005

  • Added support to map to/from a Map or Struts *like* DynaActionForm object. Dozer now supports mapping to/from any Map backed property. It can implement the Map Interface or be a custom map object: Forum Thread 452530
  • Request for enhancement declare a class as copy-by-reference RFE 1345821
  • Request for enhancement No way to reference self (this) in field mapping RFE 1277096
  • Request for enhancement for Collapse <field-deep> tag into <field> tag. All <field-deep> tags need to be replaced with <field> tags. RFE 1347953
  • Applied patch for Spring bean factory injection: Patch 1349799
  • Fixed Configuration Overrides Not Working Issue 1352438
  • Fixed multiple levels of custom mapping processed in wrong order Issue 1346370
  • Fixed regression on finding most specific destination mapping Issue 1346342
  • Fixed ExcludeFieldMap not inherited Issue 1345816

1.5.6 10/30/2005

  • <field-deep> enhancements: Support for copy-by-reference and type (one-way) attributes.
  • Added News section on home page. Latest release number is now on left-hand side navigation column.
  • Added support for copying an object by reference: Forum Thread
  • Request for enhancement for Custom Bean Creation Factories: RFE 1325412
  • Applied patch for MappingProcessor exception handling refactoring: Patch 1333634
  • Applied patch for finding most specific mapping: Patch 1325524
  • Fixed Empty String value is getting lost during mapping Issue 1342611
  • Fixed one-way overriden by default field mappings Issue 1339074
  • Fixed Using an Interface for a Custom Converter Class Issue 1342127
  • Fixed wrong destination object for list of custom converted object Issue 1332606
  • Fixed custom convertor not associated with hints Issue 1321647

1.5.5 10/13/2005

  • Fixed incorrect set mapping for existing destination set Issue
  • Fixed Use of Default ClassMap with date formatting Issue
  • If the destination object was mapped and is NULL, we now map it.
  • When mapping Array -> Array or List -> Array do not need hints anymore. This does not apply to Object Arrays.
  • Fixed Another Hydrate and Non-Cumulative Issue
  • Fixed DTD has field-method and field-iterate methods Issue
  • Fixed Field-Deep String to List Error Issue

1.5.4 09/20/2005

  • Added ability to Map the destination object to Interfaces, Abstract Classes, or Super Classes. See this thread for more information
  • Fixed the Hydrate and Non-Cumulative Issue
  • Removed samples folder until we can make it more up-to-date.

1.5.3 09/16/2005

  • Fixed Custom Mapping and made the interface cleaner issue
  • Fixed blank string conversion bug 1292080

1.5.2 09/14/2005

  • Added support for multiple source and destination hints in Collection and Array mapping
  • Fixed Mapping iheritance issue(s)
  • Iterate type methods can now return an Iterator for their get() method.

1.5.1 09/07/2005

  • Added <field> level one-way mapping. i.e. <field type="one-way">
  • Removed <field-method> and <field-iterate-method> and now use the <field> in combination with attributes. See this thread for more information. This has also been updated in the documentation.
  • DTD validation was disabled. It is now working.
  • Thanks to Seb :) the ClassLoader issues have been put to bed.

1.5.0.1 08/31/2005

1.5.0 08/30/2005

  • Fixed map by reference defect 1264347
  • Integrated with Spring. Dozer can be used statically and as a bean
  • Fixed a global wildcard bug.
  • Upgraded to caster 0.9.6 to fix for allowing whitespace in the XML files
  • Addressed adding vs. updating List. We were not truly updating the list

1.4.6 08/19/2005

  • Addressed adding vs. updating List objects
  • Added GenericFieldMap which extends FieldMap so we can have custom behavior on simple field mappings.
  • Finally :) fixed ClassLoader bug 1263159
  • Dozer now supports overriding getter() and setter() method names
  • Addressed Cloneable VS SerializationUtils.clone() issue

1.4.5 08/18/2005

  • Addressed the ClassLoader defect issue
  • Addressed the Pass By Reference issue
  • Addressed the field exclude getter() setter() issue

1.4.4 08/16/2005

  • Added one-way mapping at mapping level into DTD
  • Added unit test for one-way mapping
  • <field> level tag source and destination hint functionality did not work unless it was an array or list. This has been fixed.

1.4.3 08/15/2005

  • Moved to DTD validation from XSD validation per defect ID 1256049
  • Added <field-exclude> tag.
  • Fixed bug where branch and lower level objects which were on the source and already been instantiated were being new()ed up on conversion back to the source.
  • If a Java Bean did not have a getter() or setter() method we would throw NPE. We now throw a MappingException with description.

1.4.2 08/10/2005

  • Support for JDK 1.3

1.4.1 07/28/2005

  • Deep field output for logging arrays
  • Field-deep tag now supports sourceTypeHint and destinationTypeHints

1.4 07/11/2005

  • Removed test data retrieval from Spring
  • MapperException is now a RuntimeException
  • Fields in a base class can now be mapped in the mapping file and all of the corresponding sub-classes will not have to specify those fields
  • Multiple mapping files can be added to the dozerContext.xml file.

1.3.3 06/07/2005

  • Added Getting Started section to documentation
  • Fixed bug inability to locate mapping file in a jar file at runtime

1.3.2 06/03/2005

  • Fixed bug 1214291 NullPointerException when no fields
  • Changed license to Apache, Version 2.0

1.3.1 06/02/2005

  • Fixed incorrect error message stating that beanmapping.xml was not in the classpath
  • Fixed documentation so that images appear offline
  • Added note about using log4j.properties file

1.3 06/01/2005

  • Fixed deep field mapping logic
  • Renamed castormappings.xml to dozercastormappings.xml
  • Changed default dozer mappings file to dozerBeanMapping.xml. beanmapping.xml is still supported for backwards compatability.
  • Allow override of default mapping file that will get loaded by using system property. -Ddozer.configuration=myBeanMapping.xml
  • Resolved some of the pmd errors
  • Added a validate method to Mapping Reader. We need to add more.
  • Apply top level configuration props to children during initialization process. Removed double checking in the code
  • Apply top level configuration props to default class map in processor.
  • Added some todos to working doc.
  • Added deep mapping examples to samples
  • XSD Schema validation
  • XSD Schema is now on the website

1.2 05/03/2005

  • Created a dozer-full.jar file which includes all of the run-time dependency classes needed
  • Mappings file can now be empty except for begin and end mappings tag
  • Added global configuration XML to contain settings for wildcard, dateformat, error handling, and custom converters
  • changes to allow each mapping element override global settings, and some even at the field level
  • added a check for infinite loops during mapping
  • user can specify whether or not Dozer throws exceptions or eats exceptions
  • added the ability to specify custom converter objects to handle special mapping/conversion cases
  • created a mapping processor object to allow the use of local variables. Mapper class methods are still static for ease of use.
  • Added more unit tests, as always

1.1 04/06/2005

  • fixed mapping bug with methodMap and methodDehydrate where it would transform but not convert
  • many infrastructure changes: moved beanmapping.xml parsing to castor
  • fixed bug where bogus data conversion from String to Wrapper would not produce any errors
  • The code was changed to get the default mappings after it loads the custom mappings
  • String conversions to a Date object based on a date format
  • beanmapping.xml file now has field-deep, field-hydrate, field-dehydrate, field-method, and field-iterate-method elements
  • Added more unit tests