DATAMONGO-633 - Upgraded to Querydsl 3.0.0.

Adapted custom APT serializer implementation to the new API.
DATAMONGO-631 - Explictly reject Order instances with ignore-case flag.
DATAMONGO-632 - Removed schemaLocation attribute from namespace references.
DATAMONGO-634 - Expand scope of CDI bean to application scope.

We simply inherit the application scope from the parent implementation.
DATAMONGO-635 - Fixed some Sonar warnings.
DATAMONGO-633 - Upgraded to Querydsl APT plugin 1.0.8.
DATAMONGO-636 - Added support for countBy in derived queries.

We now change the query execution to a count execution in case a derived query has the PartTree.isCountProjection() set to true or a query defined in @Query has the newly introduced count() attribute set to true.

As the native Mongo count() returns a long we use a default ConversionService to potentially massage the query result into other numerical types.
DATAMONGO-637 - Fixed typo in Query.query(…).

Correcting mispelled "critera". Polished JavaDoc a little.
DATAMONGO-629 - Fixed QueryMapper not to massage queries without type information.

So far the QueryMapper applied the id massaging (especially interpreting the default id keys) even if there was no persistence metadata available to do so. This caused e.g. queries handed into MongoTemplate.count(Query, String) to get keys of "id" massaged into "_id" which shouldn't be the case as we cannot assume anything about the documents and the keys contained in them.

So we now only apply the defaults if there is at least persistence metadata present. This means that for methods on MongoOperations that don't take type information of any kind the queries have to be defined in terms of the document, not the object model as we cannot refer to it.
DATAMONGO-638 - MappingContext does not create PersistentEntities for AbstractMaps.
DATAMONGO-607 - Introduced FieldNamingStrategy SPI interface.

MongoMappingContext can now get a FieldNamingStrategy configured to allow the customization of field names used to persist property values to in case *no manual mapping is defined* (e.g. through @Field). The default strategy will simply use the property name as it did before.

We now also expose a abbreviate-field-names attribute on the <mongo:mapping-context /> XML namespace element to transparently register a CamelCaseAbbreviatingFieldNamingStrategy which abbreviates the property's name to the first letters of its camel-case structure. A property fooBar would then be persisted to a field named fb. If you're not using the XML namespace simply configure the strategy on your MongoMappingContext instance.

To avoid field name mapping ambiguities being introduced through a custom FieldNamingStrategy (imagine the camel-case strategy just mentioned and two properties lastname and level which would both map to l) the PersistentEntity implementation verifies the mapping metadata and throws an exception in case an ambiguity is found.
DATAMONGO-603 - Expose abbreviate field names flag in JavaConfig.

We're now exposing a abbreviateFieldNames() flag in AbstractMongoConfiguration to allow easy enablement of field abbreviation.
DATAMONGO-140, DATAMONGO-628 - Namespace elements for MongoTemplate and GridFsTemplate.
DATAMONGO-628 - Allow dependency of config layer to GridFS.

Updated Sonargraph architecture description to allow a dependency form the configuration layer to the GridFS layer. Dependency was introduced by c5a99b5b5e703bfa3948def48d8f7c8b1b69f20e.
DATAMONGO-641 - Reformatting to prepare fix.
DATAMONGO-641 - Fixed potential NullPointerException in MongoLog4jAppender.

Log4j appender now only closes Mongo instance if available.
DATAMONGO-642 - MongoChangeSetPersister now considers mapped collection.

So far the change set persister has used the plain domain type name to persist data. We now consider the collection name defined by the object mapping (through @Document(collection = "…")).
DATAMONGO-648 - Replaced XSD ids with XSD strings.

This change allows usage of Spring Data MongoDB XML namespace elements with <bean /> element using a profile. This scenario creates the case of e.g. two <mongo:db-factory /> declarations in the same XML file.
DATAMONGO-650 - Added snapshot repository to resolve Spring Data Commons.
DATAMONGO-571 - Fixed setting null values during update of versioned entities.

In case of updating a versioned object,the Update object is now constructed from plain key value pairs, not using $set anymore. This will correctly set the null values in the updated document.