DATAMONGO-989 - MatchOperation should accept CriteriaDefinition.

We replaced the constructor that accepted a Criteria with one that accepts a CriteriaDefinition to not force clients to extends Criteria. 
Original pull request: #206.
DATAMONGO-987 - Avoid creation of lazy-loading proxies for null-values.

We now avoid creating a lazy-loading proxy if we detect that the property-value in the backing DbObject for a @Lazy(true) annotated field is null.

Original pull request: #207.
DATAMONGO-987 - Some polishing in MappingMongoConverter.

Let getValueInternal(…) use the provided SpELExpressionEvaluator instead of relying on the MongoDbPropertyValueProvider to create a new one. Removed the obsolete constructor in MongoDbPropertyValueProvider.
DATAMONGO-420 - Improve support of quote handling for custom query parameters.

Introduced ParameterBindingParser which exposes parameter references in query strings as ParameterBindings. This allows us to detect whether a parameter reference in a query string is already quoted avoiding wrongly double-quoting the parameter value.

Original pull request: #185.
DATAMONGO-996 - Fixed boundary detection in pagination.

The fix for DATAMONGO-950 introduced a tiny glitch so that retrieving pages after the first one was broken in the repository query execution. We now correctly use the previously detected number of elements to detect whether the Pageable given is out of scope.

Related ticket: DATAMONGO-950.
DATAMONGO-995 - Improve support of quote handling for custom query parameters.

Introduced ParameterBindingParser which exposes parameter references in query strings as ParameterBindings. This allows us to detect whether a parameter reference in a query string is already quoted avoiding wrongly double-quoting the parameter value.

Original pull request: #185.
Related ticket: DATAMONGO-420.
DATAMONGO-1002 - Update.toString() now uses SerializationUtils.

A simple call of toString() on a DBObject might result in an exception if the DBObject contains objects that are non-native MongoDB types (i.e. types that need to be converted prior to persistence).

We now use SerializationUtils.serializeToJsonSafely(…) to avoid exceptions.
DATAMONGO-1001 - Fix saving lazy loaded object.

We now resolve the target type for CGLib-proxied objects and initialize lazy loaded ones before saving. As it turns out CustomConversions already knows how to deal with proxies correctly. Ee added an explicit test to assert that.

Original pull request: #208.
DATAMONGO-1001 - Renamed LazyLoadingProxy.initialize() to getTarget().

Original pull request: #208.
DATAMONGO-1009 - Adapt to new multi-store configuration detection.

We now consider repositories managing domain types annotated with @Document MongoDB specific ones.

Related ticket: DATACMNS-526.
DATAMONGO-1008 - Added repository type based checks to strict matching algorithm.

Repositories extending MongoRepository are now considered strict matches as well.

Related ticket: DATACMNS-526.
DATAMONGO-1008 - DefaultIndexOperations no considers 2dsphere, too.

We now also check for 2dsphere when inspecting index keys and create an geo IndexField in that case.

Original pull request: #210.
DATAMONGO-1008 - Polishing.

Slightly changed the implementation of the 2dsphere check, Minor refactorings in the test case.

Original pull request: #210.
DATAMONGO-1015 - Migrate reference documentation from Docbook to Asciidoctor.
DATAMONGO-973 - Add support for deriving full-text queries.

Added support to execute full-text queries on repositories. Query methods now can have a parameter of type TextCriteria which will be triggering a text search clause for the property annotated with @TestScore.

Retrieving document score and sorting by score is only possible if the entity holds a property annotated with @TextScore. If present, any find execution will be enriched so that it asserts loading of the according { $meta : textScore } field. The sort object will only be mapped in case the existing sort property already exists - in that case we replace the existing expression for the property with its $meta representation.

This allows for example the following:

TextCriteria criteria = TextCriteria.forDefaultLanguage().matching("term");

repository.findAllBy(criteria, new Sort("score"));
repository.findAllBy(criteria, new PageRequest(0, 10, Direction.DESC, "score"));
repository.findByFooOrderByScoreDesc("foo", criteria);

For more details and examples see the "Full text search queries" section in the reference manual.
DATAMONGO-1015 - Fixed link to Spring Data Commons reference docs.
DATAMONGO-1019 - Corrected examples in reference documentation.

Examples were not properly converted. One table got dropped, so I added it back. Fix IMPORTANT notes.

Original pull requests: #214.
DATAMONGO-1017 - Add support for custom implementations in CDI repositories.

Original pull request: #215.
DATAMONGO-1005 - Improve cycle-detection for DbRef's.

Introduced ObjectPath that collects the target objects while converting a DBObject to a domain object. If we detect that a potentially nested DBRef points to an object that is already under construction we simply return a reference to that object in order to avoid StackOverFlowErrors.

Original pull request: #209.
DATAMONGO-1005 - Polishing introduction of ObjectPath.

Simplified implementation of ObjectPath to use a static root instance and hand the path further down until final resolution in MappingMongoConverter.readValue(…). This removes a bit of boxing and unboxing code both in ObjectPath and the converter.

Introduced ObjectPath.getPathItem(…) to internalize the iteration to find a potentially already resolved object.

Renamed parameters and fields of type ObjectPath to path consistently. Removed obsolete method in MappingMongoConverter.

Original pull request: #209.