General dependency and plugin version upgrades.

Upgraded to JUnit 4.10. Move to junit-dep dependency to allow cleaning up hamcrest dependencies. Use hamcrest-library ins tread of hamcrest-all. Upgrade to Mockito 1.9.0, use mockito-core instead of mockito-all. Upgrade to Spring Data Core 1.3.1.BUILD-SNAPSHOT. Upgraded to Querydsl 2.6.0. Upgraded compiler and Surefire plugin.
DATAMONGO-458 - Read empty collections are modifiable now.

So far we've read empty collections and populated the property value of the Java object being created with Collections.emptySet(). This returns an unmodifiable Set so that further modifications fail with an UnsupportedOperationException. We now simply use new HashSet<Object>().
DATAMONGO-447 - Fixed broken log output in debug level.

The debug output now uses the already mapped query object when concatenating the log string. Improved applying the id after save operations by inspecting whether the object already has the id set before trying to set it. This could have caused problems in case you use a complex id and don't provide a custom converter as it can be serialized out of the box. Fixed minor glitch in MappingMongoConverter which was not really a bug as another path through the code has covered the scenario later on. Introduced SerializationUtils class that provides a method to safely serialize objects to pseudo JSON. Pseudo in the sense that it simply renders a complex object as { $java : object.toString() }. This is useful for debug output before the DBObject was mapped into Mongo-native types.
DATAMONGO-450 - Log output uses mapped query for debug logging.
DATAMONGO-460 - Improvements to Querydsl repository implementation.

Internalized setup of MongodbSerializer which makes the constructors of SpringDataMongodbQuery much simpler.
DATAMONGO-424 - Don't resolve DBRefs eagerly if property type is DBRef.

So far we have resolved DBRef values eagerly without inspecting the actual property type the would have to be assigned eventually. Now we simply skip the recursive resolve process if the property type (or component type, map value type) is DBRef actually.
DATAMONGO-428 - Fixed parsing of output collection for complex MapReduce result.

The raw result for a map-reduce operation might contain a complex element containing the output collection in case the original request configured an output database as option. Adapted the parsing of the output collection to accommodate both scenarios (plain String value as well as DBObject wrapper).
DATAMONGO-462 - Added custom converters for URL.

So far URL instances were treated as entities and serialized as nested document. As there was no custom converter registered to re-instantiate the objects and URL does not contain a no-arg constructor, reading the instances back in resulted in an ugly exception in ReflectionEntityInstantiator. We now register a custom Converter to serialize URL instances as their plain toString() representation. This causes the reading working out of the box as the StringToObjectConverter registered by default uses the constructor taking a String on URL accidentally. To make sure this still works we added an explicit StringToURLConverter to implement symmetric conversions.
DATAMONGO-378 - Fixed potential ClassCastException for MapReduceResults and upcoming MongoDB release.

The type of the value returned for the total field of the timing map in map-reduce results has changed from Integer to Long as of MongoDB version 2.1.0 apparently. Changed MapReduceResults to accommodate either Integer or Long types.
DATAMONGO-454 - Improvements to ServerAddressPropertyEditor.

ServerAddressPropertyEditor now only eventually fails if none of the configured addresses can be parsed correctly. Strengthened the parsing implementation to not fail for host-only parsing or accidental double commas.
Cleaned up integration tests for replica set configuration.
DATAMONGO-455 - Documentation mentions BasicQuery.
DATACMNS-186, DATACMNS-185 - Upgrade to Spring Data Commons 1.3.2.BUILD-SNAPSHOT.

Use the new initialize() method in test cases for MappingContext. Benefit from rejection of multiple id properties.
DATAMONGO-466 - QueryMapper now only tries id conversion for top level document.

So far the QueryMapper has tried to map id properties of nested documents to ObjectIds which it shouldn't do actually.
DATAMONGO-464 - Fixed resource synchronization in MongoDbUtils.

MongoDbUtils now correctly returns DB instances for others than the first one bound. So far the lookup for an alternate database resulted in the first one bound to be returned. Polished log statements a bit.
DATAMONGO-467 - Fix identifier handling for Querydsl.

As we try to massage the value of the id property into an ObjectId if possible we need to do so as well when mapping the Querydsl query. Adapted SpringDataMongoDbSerializer accordingly.
DATAMONGO-470 - Implemented equals(…) and hashCode() for Query and Criteria.
DATAMONGO-469 - Fixed parsing of And keyword in derived queries.
DATAMONGO-469 - Polishing in MongoQueryCreator.
DATAMONGO-477 - Change upper bound of Guava dependency to 14.
DATAMONGO-475 - Fixed debug output in map-reduce operations.

Using SerializationUtils.serializeToJsonSafely(…) instead of plain toString() as this might cause SerializationExceptions for complex objects.