I have the below mapping:
<mappings>
<mapping map-id="RemoteFoo">
<class-a>com.example.Foo</class-a>
<class-b>com.example.RemoteFoo</class-b>
<field>
<a>bar</a>
<b>barPrime</b>
</field>
</mapping>
<mapping map-id="RemoteSearchResults-RemoteFoo">
<class-a>com.example.SearchResults</class-a>
<class-b>com.example.RemoteSearchResults</class-b>
<field map-id="RemoteFoo">
<a>results</a>
<b>results</b>
<a-hint>com.example.Foo</a-hint>
<b-hint>com.example.RemoteFoo</b-hint>
</field>
</mapping>
</mappings>
When I use a mapper with the above configuration to map Foo<-->RemoteFoo without specifying the map-id, the mapping above ("RemoteFoo") isn't used. Instead the object is mapped as if "RemoteFoo" didn't exist.
feature not a bug. Not too well documented though.
http://dozer.sourceforge.net/documentation/contextmapping.html