DATAMONGO-799 - Fix failing test in MongoTemplateTests on MongoDB 2.5.x.

Generalized exception message matching to reflect the changed exception message in MongoDB 2.5.x that also works with previous versions of MongoDB.

Original pull request: #97.
DATAMONGO-726 - Fixed classname references in namespace XSDs.

Original pull request: #100.
DATAMONGO-806 - No property _id found for type com.entity.User.

Added test case to reproduce the issue.
DATAMONGO-806 - Fixed invalid rendering of id field references.

Tweaked the rendering of projection operations to always use the field based reference lookup to make sure the reference gets rendered aliased. Moved value calculation logic into FieldReference.

Original pull request: #101.
DATAMONGO-799 - Refer to next version of build parent and Spring Data Commons.
DATAMONGO-808 - Improve ServerAddressPropertyEditor to support IPv6 addresses.

Improved parsing of ServerAddress to be able to handle IPv6 addresses correctly. We now use the actor ServerAddress(InetAddress) to be able to pass an IPv6 address. The constructor which takes a String as the hostname can't deal with IPv6 addresses directly because it tries to extract a port at the wrong location of such an address.

This change should not change the behavior too much, since the constructor ServerAddress(String, int) already calls InetAddress.getByName(...) internally.

Original pull request: #103.
DATAMONGO-813 - Improve handling for non-existing resources in GridFSTemplate.

We now return null for a non-existing resource instead of throwing a NPE.

Original pull request: #106.
DATACMNS-414 - Adapted to removed generics in AuditingHandler API.
DATAMONGO-824 - Added contribution guidelines.

Linked to the actual contribution guidelines maintained in the Spring Data Build project.
DATAMONGO-805 - Excluding DBRef field in a query causes a MappingException.

Previously we tried to convert all DBRef associations into appropriate DBRef structures even if they were to be ignored. We now ignore excluded properties in DBRef associations correctly.

Original pull request: #102.
DATAMONGO-816 - Improve query handling in MongoTemplate.executeQuery().

We now process the given query with the queryMapper before passing it on to the executeQueryInternal(…) in order to deal with potentially required query modifications, e.g. enum value conversions.

Original pull request: #108.
DATAMONGO-778 - Improved support for geospatial indexing with @GeoSpatialIndexed.

We now support to create geospatial indices of type 2D sphere and geoHaystack using the @GeospatialIndexed annotation on fields.

Original pull request #82, #104.
DATAMONGO-811 - UpdateFirst and updateMulti should increase version.

Version of documents are increased when updated via MongoTemplate.updateFirst and MongoTemplate.updateMulti just as it is done when calling MongoTemplate.save(...).

Original pull request #109
DATAMONGO-826 - Polished poms.

Removed Spring dependency versions and fixed repository declarations.
DATAMONGO-686 - Fixed potential race-condition in QueryMapper.

We now create a new a new DBObject in QueryMapper#getMappedValue() instead of replacing them in the original objects in order to prevent the original query object being manipulated.

Added test case to verify that the original DBObject is not manipulated.

Original pull request: #111.
DATAMONGO-822 - Enable CDI repositories to be instantiated eagerly.

From the CDI extension we now use the callback newly introduced in Spring Data Commons to enable it to trigger eager initialization.

See also: DATACMNS-416.
DATAMONGO-790 - Ensure compatibility with Spring Framework 4.0.

The GenericApplicationContext doesn't refresh automatically in Spring 4.x we thus we have to call refresh manually. Also the test for the custom application listener registration fails on 4.0, so I adapted it to run on both versions.
DATAMONGO-823 - Add bucket attribute to <mongo:gridFsTemplate />.

Original pull request: #114.
DATAMONGO-807 - findAndModify(…) now retains type information.

Using findAndUpdate(…) did not retain type information when used to update a whole nested type instead of single fields within the type. We now use the UpdateMapper instead of QueryMapper in doFindAndModify(…).

Original pull request: #110.
DATAMONGO-407 - Fixed query mapping for updates using collection references.

When an update clause contained a collection element reference (….$.…) we failed to write the type information of the target value object as the key was not translated into a correct property path correctly. We now strip the reference literals and re-apply them when the mapped key is generated.