Release Notes
5.5.1 2014-04-22
5.4.0 2012-12-01
Bug Fixes
-
Mapping null values within List to List mapping causes NPE link
-
Multiple superclass mappings, fields mapped over and over link
-
Deep index mapping for untyped Collection link
-
Iterate mapping with more than one hint fails link
-
Inheritance problems with custom-converters on fields link
-
Fix for generic introspection issues link
-
Does not swallow InterruptedException link
Feature Requests
5.3.2 2011-02-15
Bug Fixes
-
NullPointerException when mapping single field to List link
-
StackOverFlow when using MapperAware Custom Converters link
-
ClassMappings get wrong ClassMap in polymorphism case link
-
Mapping of XMLGregorianCalendar not working link
-
Thread hang during initialization link
-
Add ability to define is-accessible at the type level link
-
one-way doesn’t work at the mapping level link
-
Mapping String collections with "iterate" fails link
Feature Requests
5.3.1 2010-11-15
Bug Fixes
-
DozerBeanMapper initialization is not thread safe link
-
Collection Generic type not resolved on field levelhttps://sourceforge.net/tracker/?func=detail&aid=3066742&group_id=133517&atid=727368[link]
Feature Requests
-
Apache Camel Integration Improvement link
5.3.0 2010-10-10
Bug Fixes
-
ReflectionUtils.findAMethod can escape by returning null link
-
Unnecessary call to a method link
-
XMLGregorianCalendar instantiation fails link
-
DateFormat instantiation fails link
-
Mixed-type values in Map are incorrectly converted link
-
Fail to map an object graph correctly link
-
Semi-undocumented dependency on XMLBeans link
-
Bug with Javassist link
-
Bug in TypeResolver with generics/inheritance link
-
Remove-orphans is not handled when mapping java.util.Map link
-
Hard to use XML config when mapping from/to java.util.Map link
-
Deep property mapping and is-accesssible=true incompatible link
Feature Requests
5.2.2 2010-06-09
Bug Fixes
-
CustomConverterContainer puts null results in cache link
-
NPE in SimpleElementReader link
-
DozerConverter fails on primitive to primitive map link
-
T extends Enum<StatisticType> link
-
Statistics are not thread safe link
-
Copy-by-reference ignored when object is in a Set link
-
ConcurrentModificationException on the first map link
-
Mapping primitive List → primitive array does not work link
Feature Requests
5.2.1 2010-04-28
Bug Fixes
Feature Requests
5.2.0 2010-01-24
Bug Fixes
-
Failing Top Level Mapping (this → this) link
-
NPE on Missing Getter link
-
Exception Message Imrovement link
-
Iterate Mapping does not Check Previously Mapped Objects link
-
Stack Overflow on Recursive Object Graphs link
-
Race Condition in Statistics Area link
-
Date to Calendar Convertation link
-
Stored References to Generated Classes link
-
Fail on null Value in Set link
-
Exception on Mapping of XMLGregorianCalendar link
-
Non-Standard getter/setter names and deep-mapping issue link
-
Fix for null Element in Array link
Feature Requests
5.1 2009-08-25
Bug Fixes
-
JAXBBeanFactory can not create bean for nested type link
-
Mapping definition of super interface is ignored link
-
Inheritance mapping with proxy object link
-
Processing Map with Null entry fails link
-
Date Format is not used for collection elements link
-
Memory Leak on Web Container reload when using JMX Beans link
-
Hints does not work for inherited classes link
-
Null values are not copied to destination Map link
-
Map with List entries is mapped incorrectly link
-
NPE when missing one of the class names in mapping definition link
Feature Requests
5.0 2009-03-03
Migration Guide
Change Description | New - Dozer 5.0 | Old - Dozer 4.4.1 |
---|---|---|
Increased minimum JDK requirements |
Requires JDK 1.5+ |
Required JDK 1.4+ |
Repackaged Dozer classes |
org.dozer |
net.sf.dozer.util.mapping |
Maven group id |
net.sf.dozer |
net.sf.dozer |
Added Generics to public api |
A dest = mapper.map(b, A.class) |
A dest = (A) mapper.map(b, A.class) |
Switched to XSD instead of DTD |
beanmapping.xsd |
dozerbeanmapping.dtd |
Renamed some public Interfaces |
BeanFactory |
BeanFactoryIF |
CustomFieldMapper |
CustomFieldMapperIF |
|
Mapper |
MapperIF |
|
Repackaged some public Interfaces |
org.dozer.CustomConverter |
net.sf.dozer.util.mapping.converters.CustomConverter |
org.dozer.ConfigurableCustomConverter |
net.sf.dozer.util.mapping.converters.ConfigurableCustomConverter |
|
org.dozer.DozerEventListener |
net.sf.dozer.util.mapping.event.DozerEventListener |
|
Upgraded 3rd party dependencies |
commons-collections 3.2.1 |
commons-collections 3.1 |
commons-beanutils 1.8.0 |
commons-beanutils 1.7.0 |
|
commons-lang 2.4 |
commons-lang 2.2 |
|
commons-logging 1.1.1 |
commons-logging 1.0.3 |
|
junit 4.5 |
junit 3.8 |
+
Bug Fixes and Patches
Feature Requests
4.4 2008-12-27
Bug Fixes and Patches
-
Global Configuration is Ignored link
-
Throw exception if more than one global configuration found link
-
Problem loading Dozer bean mapper from Spring link
-
Error in loading mapping files located in jar file link
-
NullPointerException link
-
Problem with Java 1.5 enum and inheritance link
-
Deep Index Custom Converter Problem link
-
Bug fix not indexed properties (List - Vector) link
-
Deep index patch link
-
Collection deep index issue link
-
Deep Mapping with custom setter method does not work when default setter exists link
-
Improve an exception message link
Feature Requests
-
Reorganize test mapping and config files in src tree link
4.3 2008-12-03
Bug Fixes
-
Class hierarchies are not mapped in descending order link
-
Map-backed properties are not copied using deep mapping link
-
Mapping with remove-orphans changes the mapped list order link
-
Mapping with remove-orphans should call remove() on the list link
-
Bug in ReflectionUtils.getInterfacePropertyDescriptors() link
-
Classloading approach is not recommended link
-
NullPointerException when mapping a map link
-
Subclasses are not recognized link
-
Mapping with parent-child relation does not work link
-
Missing destination read method throws NPE link
-
MappingProcessor does not use hints from DestHintContainer link
Feature Requests
4.2 2007-12-16
Bug Fixes
-
Update spring custom converter documentation 1841449
-
Trim Strings issue with data type conversion 1841448
-
Orphans not removed from Sets 1822421
-
TimeZone not copied when mapping Calendar 1815199
-
Problem when getters and setters are on different interfaces 1814758
-
Unexpected exception in LogMsgFactory 1797808
-
Map-backed mapping with map-id 1796344
-
Custom converter called on null source field 1792048
-
Patch for determining source field type 1823435
4.1 2007-09-22
Bug Fixes
-
Inheritance issue(s) with proxied data objects 1777357
-
Array mapping with XMLBeans throws NoSuchMehtod exception 1773425
-
Mapping Started Event Not firing on mapping 1768660
-
Inheritance mapping not working correctly - Part Deux 1757573
-
Test Cases section not diplaying correctly in web site docs 1657562
Feature Requests
-
Update inheritance mapping doc’s 1778316
-
Repackage functional/e2e tests 1777076
-
Using multiple instances of CustomConverter 1770440
-
Dozer vs. XmlBeans generated primitive types 1764916
-
DozerEvent - sourceObject always null. 1762642
-
Path to ResourceLoader to accept any URL 1757321
-
Run existing tests in both unproxied and cglib proxied mode 1756584
-
Removal of orphans in destination collection 1755838
-
Allow global configuration of relationship-type 1750158
4.0 2007-07-15
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 2007-05-19
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
3.3.1 2007-04-28
Bug Fixes
-
Remove Spring runtime dependency. Revert back to using Apache Commons to get Property Descriptors 1709117
3.3 2007-04-26
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
3.2.1 2007-04-08
Feature Requests
3.2 2007-04-03
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 2007-03-25
Patches
-
Bi-direction is-accessible 1664865
Bug Fixes
-
Dramatic Performance Degradation with Interfaces 1684237
Feature Requests
3.0 2007-02-08
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 2006-10-14
Bug Fixes
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 2006-09-01
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 2006-04-29
-
Request Implement Event Listening Model RFE 1470590
-
Request Remove Hydrate and Dehydrate mapping code RFE 1474422
-
Request Remove mapping with just source object RFE 1474413
-
Request Mapping XmlBean to JavaBeans Objects RFE 1468926
-
Request DozerBeanMapper extensibility RFE 1470425
-
Request field-exclude does not support type one-way RFE 1474440
-
Fixed Duplicate Class Mapping Found Issue 1477786
-
Fixed custom converter(s) and primitive matching Issue 1474216
-
Fixed CGLIB Source Class - object not instance of declaring class Issue 1427982
-
Added JMX integration and hooks. RFE 1475229
-
Added runtime Statistics support. RFE 1475228
-
Added support for Dozer configuration via properties file. RFE 1475232
-
Cleaned up project documentation. RFE 1470452
2.1.1 2006-04-18
-
Fixed performance degradation.
2.1 2006-03-15
-
Refactored the code extensively to support a more flexible property descriptor model
-
Request Index based mappings http://sourceforge.net/tracker/index.php?func=detail&aid=1468873&group_id=133517&atid=727371[RFE 1468873. Thank you Kiersztyn Wojtek and Peciuch Dominic for your code contribution!
-
Request Make 'this' keyword functionality bi-directional RFE 1456490
-
Request Support for write only (set) or read only (get) objects RFE 1459057
-
Fixed Superclass reflection issue Issue 1468980
-
Fixed Wrong field mapped when an instance is passed in. Issue 1456513
-
Fixed No tranformation from a Map attribute to source value Issue 1431086
-
Fixed CGLIB Source Class - object not instance of declaring class Issue 1427982
2.0.2 2006-02-29
-
Added PDF Users Guide
-
Request for more log.dubug statements to help diagnosing mapping problems RFE 1445372
-
Fixed log.error when an exception is thrown and stop on errors is true RFE 1445376
2.0.1 2006-02-02
-
Request for allow override to exclude mapping of null src field value RFE 1413480
-
Request for allow override to exclude mapping of "" src field value RFE 1417170
-
Request check mapping file for duplicate entries RFE 1416905
-
Fixed Hint is not used for Array to List Issue 1413429
-
Fixed Context Based Mapping and Nested Context based mapping does not work unless a Map Issues 1413443 and 1413451
-
Fixed LinkedHashMap not compatible with JDK 1.3 Issues 1419357
-
Fixed NPE when sourceFieldValue is null in logFieldMappingError() method
2.0 2006-01-16
-
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 2005-12-08
-
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 2005-11-29
-
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 2005-11-15
-
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 2005-10-30
-
<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 2005-10-13
-
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 2005-09-20
1.5.3 2005-09-16
1.5.2 2005-09-14
-
Added support for multiple source and destination hints in Collection and Array mapping
-
Fixed Mapping inheritance issue(s)
-
Iterate type methods can now return an Iterator for their get() method.
1.5.1 2005-09-07
-
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 2005-08-31
-
Fixed ClassLoader issue
1.5.0 2005-08-30
-
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 2005-08-19
-
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 2005-08-18
1.4.4 2005-08-16
-
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 2005-08-15
-
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 2005-08-10
-
Support for JDK 1.3
1.4.1 2005-07-28
-
Deep field output for logging arrays
-
Field-deep tag now supports sourceTypeHint and destinationTypeHints
1.4 2005-07-11
-
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 2005-06-07
-
Added Getting Started section to documentation
-
Fixed bug inability to locate mapping file in a jar file at runtime
1.3.2 2005-06-03
-
Fixed bug 1214291 NullPointerException when no fields
-
Changed license to Apache, Version 2.0
1.3.1 2005-06-02
-
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 2005-06-01
-
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 2005-05-03
-
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 2005-04-06
-
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