Spring Data Commons Changelog
=============================

Changes in version 1.13.8.RELEASE (2017-10-11)
----------------------------------------------
* DATACMNS-1193 - Typo in documentation and JavaDoc of PageableDefaults.
* DATACMNS-1182 - Java 6 compatibility broken in QueryExecutionConverters in post Ingalls SR7 snapshots.
* DATACMNS-1177 - Parameter.isDynamicProjectionParameter() does not handle wrapper types properly.
* DATACMNS-1172 - Too excessive component scanning for repository implementation fragments causing slow bootstrap.
* DATACMNS-1166 - Upgrade to Vavr 0.9.1.
* DATACMNS-1163 - Aggregate event publishing should prefer parameters instead of returned values from save(…).
* DATACMNS-1155 - Release 1.13.8 (Ingalls SR8).
* DATACMNS-901 - Potential deadlock in AbstractMappingContext when creating bean while application event is being fired.


Changes in version 2.0.0.RELEASE (2017-10-02)
---------------------------------------------
* DATACMNS-1184 - QuerydslPredicateExecutor Javadoc allows null predicates.
* DATACMNS-1179 - Adapt to changed Spring Framework 5 documentation structure.
* DATACMNS-1177 - Parameter.isDynamicProjectionParameter() does not handle wrapper types properly.
* DATACMNS-1175 - EntityInstantiators deallocate params required for instantiation of parent object.
* DATACMNS-1173 - AnnotationRevisionMetadata throws ClassCastException.
* DATACMNS-1172 - Too excessive component scanning for repository implementation fragments causing slow bootstrap.
* DATACMNS-1171 - PreferredConstructorDiscoverer attempts constructor discovery on synthetic Kotlin class.
* DATACMNS-1170 - PreferredConstructor discovery fails for Kotlin types without primary constructor.
* DATACMNS-1168 - QuerydslPredicateBuilder must not return null for empty predicate.
* DATACMNS-1167 - Add explicit automatic module name for Java 9.
* DATACMNS-1166 - Upgrade to Vavr 0.9.1.
* DATACMNS-1165 - Add support for using Streamable as return type in repository methods.
* DATACMNS-1163 - Aggregate event publishing should prefer parameters instead of returned values from save(…).
* DATACMNS-1162 - Improve AbstractAggregateRoot to support immutable aggregates.
* DATACMNS-1161 - Rename PersistentProperty.getPersistentEntityType() to a plural name since it returns an Iterable..
* DATACMNS-1159 - Upgrade to OpenWebBeans 2.0.1.
* DATACMNS-1157 - Enforce nullable/non-null API constraints on repository query methods.
* DATACMNS-1156 - Release 2.0 GA (Kay).


Changes in version 2.0.0.RC3 (2017-09-11)
-----------------------------------------
* DATACMNS-1153 - Remove unreachable assertion in XmlRepositoryConfigurationSource.
* DATACMNS-1152 - Jackson configuration is not used by ProjectingJackson2HttpMessageConverter.
* DATACMNS-1150 - Support parameters in @Value-backed methods of projection interfaces.
* DATACMNS-1148 - Return primitive boolean in PartTree.isExistsProjection(...).
* DATACMNS-1147 - @NoRepositoryBean interfaces are considered as fragment interfaces.
* DATACMNS-1144 - @JsonPath should support multiple paths.
* DATACMNS-1143 - Improve design of AbstractAggregateRoot.
* DATACMNS-1141 - Add missing NonNullApi annotations.
* DATACMNS-1140 - Open up Query by Example to allow extension in module implementations.
* DATACMNS-1139 - AbstractPersistentProperty.getRawType() does not consider generics.
* DATACMNS-1138 - Invalid generics resolution for locally declared wildcard and fully resolved target type.
* DATACMNS-1136 - Update reference documentation for composite repositories.
* DATACMNS-1135 - Incorrect generic type resolution for multiply nested types of same wrapper.
* DATACMNS-1130 - Release 2.0 RC3 (Kay).
* DATACMNS-1126 - Assert compatibility with Kotlin classes using default constructor arguments.
* DATACMNS-1080 - Inject generated property accessor classes via ReflectUtils.defineClass(…).
* DATACMNS-1077 - Remove RxJava1CrudRepository and RxJava1SortingRepository interfaces.
* DATACMNS-1011 - Improve documentation for projections.


Changes in version 1.13.7.RELEASE (2017-09-11)
----------------------------------------------
* DATACMNS-1153 - Remove unreachable assertion in XmlRepositoryConfigurationSource.
* DATACMNS-1152 - Jackson configuration is not used by ProjectingJackson2HttpMessageConverter.
* DATACMNS-1151 - Generated property accessors fail to load when using with signed jars.
* DATACMNS-1145 - @JsonPath value lookups should return null for non-existent paths.
* DATACMNS-1143 - Improve design of AbstractAggregateRoot.
* DATACMNS-1139 - AbstractPersistentProperty.getRawType() does not consider generics.
* DATACMNS-1138 - Invalid generics resolution for locally declared wildcard and fully resolved target type.
* DATACMNS-1135 - Incorrect generic type resolution for multiply nested types of same wrapper.
* DATACMNS-1131 - Release 1.13.7 (Ingalls SR7).


Changes in version 1.13.6.RELEASE (2017-07-26)
----------------------------------------------
* DATACMNS-1127 - Release 1.13.6 (Ingalls SR6).


Changes in version 2.0.0.RC2 (2017-07-25)
-----------------------------------------
* DATACMNS-1129 - PartTree for empty predicate should be empty iterable.
* DATACMNS-1128 - Release 2.0 RC2 (Kay).


Changes in version 2.0.0.RC1 (2017-07-25)
-----------------------------------------
* DATACMNS-1124 - Upgrade to Javaslang 2.0.6.
* DATACMNS-1123 - Make sure XmlBeamHttpMessageConverter still works on XmlBeam > 1.4.10.
* DATACMNS-1122 - PersistentEntity.getRequiredPersistentProperty() does not report property name.
* DATACMNS-1121 - Avoid unnecessary proxy creation if target instance already implements projection interface.
* DATACMNS-1120 - Introduce caching for PropertyPath.
* DATACMNS-1119 - Switch to ConcurrentReferenceHashMap for ClassTypeInformation caching.
* DATACMNS-1118 - Inherit Project Reactor version from dependency management.
* DATACMNS-1117 - RepositoryFactoryBeanSupport.getRepositoryInformation() does not set up RepositoryComposition correctly.
* DATACMNS-1116 - Cache PersistentPropertyPath instances in AbstractMappingContext.
* DATACMNS-1115 - RepositoryBeanNameGenerator fails to resolve bean names for custom implementations detected via Spring's component index.
* DATACMNS-1114 - Introduce nullable annotations.
* DATACMNS-1113 - API polishing in MappingContext.
* DATACMNS-1112 - Cache instances of ReturnedType to avoid inspection overhead on creation.
* DATACMNS-1110 - Introduce StreamUtils.createStreamFromIterator(CloseableIterator) to avoid instance of check.
* DATACMNS-1109 - Allow any TemporalAccessor to be used as last modified date in auditing.
* DATACMNS-1107 - Cache ProjectionInformation instances created.
* DATACMNS-1106 - Remove deprecations in ProjectionFactory.
* DATACMNS-1104 - Degraph dependency has wrong scope.
* DATACMNS-1102 - Avoid superfluous recreation of DefaultConversionService in ResultProcessor.
* DATACMNS-1101 - Improve mapping performance caused by overuse of Optional and Stream.
* DATACMNS-1097 - Move classes to better matching packages.
* DATACMNS-1096 - Remove references to Spring's converter from domain package.
* DATACMNS-1095 - ClassGeneratingEntityInstantiator never gets used as ObjectInstantiator is not visible.
* DATACMNS-1091 - Sporadic test failures in tests for JSR-310 conversions.
* DATACMNS-1090 - Release 2.0 RC1 (Kay).
* DATACMNS-1085 - Small documentation improvements.


Changes in version 1.13.5.RELEASE (2017-07-24)
----------------------------------------------
* DATACMNS-1124 - Upgrade to Javaslang 2.0.6.
* DATACMNS-1123 - Make sure XmlBeamHttpMessageConverter still works on XmlBeam > 1.4.10.
* DATACMNS-1121 - Avoid unnecessary proxy creation if target instance already implements projection interface.
* DATACMNS-1115 - RepositoryBeanNameGenerator fails to resolve bean names for custom implementations detected via Spring's component index.
* DATACMNS-1102 - Avoid superfluous recreation of DefaultConversionService in ResultProcessor.
* DATACMNS-1095 - ClassGeneratingEntityInstantiator never gets used as ObjectInstantiator is not visible.
* DATACMNS-1087 - Converting to Vavr Option fails for present value.
* DATACMNS-1085 - Small documentation improvements.
* DATACMNS-1084 - Release 1.13.5 (Ingalls SR5).


Changes in version 2.0.0.M4 (2017-06-14)
----------------------------------------
* DATACMNS-1089 - Prepare upgrade to AssertJ 3.8.
* DATACMNS-1082 - Synthetic constructors should not be considered persistence constructors.
* DATACMNS-1079 - ClassGeneratingPropertyAccessorFactory fails on Java 9.
* DATACMNS-1076 - Deprecate RxJava1CrudRepository and RxJava1SortingRepository interfaces.
* DATACMNS-1074 - Avoid hidden exceptions from Lookup.unreflectSpecial(…) in default method invocations.
* DATACMNS-1071 - Redundant <S extends Sort> on findAll().
* DATACMNS-1067 - EventPublishingRepositoryProxyPostProcessor tries to call clearing method on plain method argument.
* DATACMNS-1066 - AccessControlException from ClassGeneratingPropertyAccessorFactory.
* DATACMNS-1065 - Add support for Vavr (successor of Javaslang).
* DATACMNS-1064 - Remove obsolete Travis build profiles.
* DATACMNS-1063 - Accept Publisher instead of Mono in findById(…), existsById(…) and deleteById(…).
* DATACMNS-1062 - Make sure Travis builds always use fresh dependencies.
* DATACMNS-1060 - Release 2.0 M4 (Kay).
* DATACMNS-1059 - QuerydslPredicateExecutor.findOne should return Optional<T>.
* DATACMNS-1058 - QueryByExampleExecutor.find one should return Optional<S>.
* DATACMNS-1026 - ExtensionAwareEvaluationContextProvider should return all overloaded methods as functions.
* DATACMNS-995 - Create ReactiveQueryByExampleExecutor allowing reactive query by example.
* DATACMNS-991 - Update DefaultMethodInvokingMethodInterceptor to Java 9 compatible method handle invocation.
* DATACMNS-822 - Provide a simple way to customize configuration of default pageable and sort resolvers.
* DATACMNS-764 - Disambiguate custom repository implementation for implementations with same name in different packages.
* DATACMNS-102 - Allow Repositories to be composed of an arbitrary number of implementation classes.


Changes in version 1.13.4.RELEASE (2017-06-08)
----------------------------------------------
* DATACMNS-1082 - Synthetic constructors should not be considered persistence constructors.
* DATACMNS-1074 - Avoid hidden exceptions from Lookup.unreflectSpecial(…) in default method invocations.
* DATACMNS-1067 - EventPublishingRepositoryProxyPostProcessor tries to call clearing method on plain method argument.
* DATACMNS-1066 - AccessControlException from ClassGeneratingPropertyAccessorFactory.
* DATACMNS-1065 - Add support for Vavr (successor of Javaslang).
* DATACMNS-1062 - Make sure Travis builds always use fresh dependencies.
* DATACMNS-1047 - Release 1.13.4 (Ingalls SR4).


Changes in version 1.12.11.RELEASE (2017-06-07)
-----------------------------------------------
* DATACMNS-1082 - Synthetic constructors should not be considered persistence constructors.
* DATACMNS-1074 - Avoid hidden exceptions from Lookup.unreflectSpecial(…) in default method invocations.
* DATACMNS-1062 - Make sure Travis builds always use fresh dependencies.
* DATACMNS-1046 - Release 1.12.11 (Hopper SR11).


Changes in version 2.0.0.M3 (2017-05-09)
----------------------------------------
* DATACMNS-1057 - Remove Optionals from Querydsl SingleValueBinding.
* DATACMNS-1056 - QueryExecutionResultHandler erroneously re-wraps Optional result sources.
* DATACMNS-1053 - EntityInformation should expose getRequiredId(…).
* DATACMNS-1052 - Sort should implement Streamable.
* DATACMNS-1050 - Introduce Bound value object for Range.
* DATACMNS-1043 - Slice/Page should expose Pageable.
* DATACMNS-1042 - Self Link created by PagedResourcesAssembler should have pagination request parameters.
* DATACMNS-1040 - Remove exclusion for Commons Logging.
* DATACMNS-1037 - Release 2.0 M3 (Kay).
* DATACMNS-1035 - Extract CustomConversions from MongoDB, Couchbase and Cassandra.
* DATACMNS-1021 - Add Order.asc(…) and Order.desc(…) factory methods.
* DATACMNS-1014 - Remove support for JodaTime's deprecated DateMidnight.
* DATACMNS-993 - Clean up class loader hacking in tests.
* DATACMNS-944 - Move to better naming scheme of methods in repository interfaces.


Changes in version 1.12.10.RELEASE (2017-04-19)
-----------------------------------------------
* DATACMNS-1045 - Release 1.12.10 (Hopper SR10).


Changes in version 1.13.3.RELEASE (2017-04-19)
----------------------------------------------
* DATACMNS-1044 - Release 1.13.3 (Ingalls SR3).


Changes in version 1.12.9.RELEASE (2017-04-19)
----------------------------------------------
* DATACMNS-1042 - Self Link created by PagedResourcesAssembler should have pagination request parameters.
* DATACMNS-1008 - Custom implementation of CrudRepository.save(…) not called if generics not declared exactly.
* DATACMNS-1006 - SimpleTypeHolder should consider java.lang types simple ones.
* DATACMNS-1004 - Release 1.12.9 (Hopper SR9).
* DATACMNS-993 - Clean up class loader hacking in tests.


Changes in version 1.13.2.RELEASE (2017-04-19)
----------------------------------------------
* DATACMNS-1042 - Self Link created by PagedResourcesAssembler should have pagination request parameters.
* DATACMNS-1008 - Custom implementation of CrudRepository.save(…) not called if generics not declared exactly.
* DATACMNS-1006 - SimpleTypeHolder should consider java.lang types simple ones.
* DATACMNS-1005 - Javaslang collections cannot be returned from paginating query methods.
* DATACMNS-1003 - Release 1.13.2 (Ingalls SR2).
* DATACMNS-993 - Clean up class loader hacking in tests.


Changes in version 2.0.0.M2 (2017-04-04)
----------------------------------------
* DATACMNS-1027 - Adapt to API changes in AssertJ 3.6.
* DATACMNS-1024 - RootObjectInformation.getFunctions(…) fails with overloaded methods.
* DATACMNS-1020 - Improvements to revision package.
* DATACMNS-1018 - Reinstantiate ability to customize repository factory bean through annotation and XML namespace.
* DATACMNS-1015 - Introduce IdentifierAccessor.getRequiredIdentifier().
* DATACMNS-1008 - Custom implementation of CrudRepository.save(…) not called if generics not declared exactly.
* DATACMNS-1007 - Add IsEmpty and IsNotEmpty keywords to query derivation.
* DATACMNS-1006 - SimpleTypeHolder should consider java.lang types simple ones.
* DATACMNS-1005 - Javaslang collections cannot be returned from paginating query methods.
* DATACMNS-1000 - Typo in reference documentation about domain events.
* DATACMNS-999 - Improve resource extensive error message concatenation.
* DATACMNS-989 - CustomRepositoryImplementationDetector ignores excludeFilters.
* DATACMNS-988 - Provide RxJava 2 Repository interfaces.
* DATACMNS-987 - SpringDataWebConfiguration now forces an application to have Jackson on the classpath if it uses JSON Path.
* DATACMNS-985 - Remove references to single-argument assertion methods of Spring.
* DATACMNS-981 - AnnotationBasedPersistentProperty does not consider @AliasFor with own, revised annotations.
* DATACMNS-977 - Introduce support for component index creation in Spring 5.
* DATACMNS-975 - Aggregate event publication should happen after the interaction with the repository.
* DATACMNS-974 - Update project documentation with the CLA tool integration.
* DATACMNS-973 - Migrate ticket references in test code to Spring Framework style.
* DATACMNS-972 - NullPointerException in ProjectingJackson2HttpMessageConverter.
* DATACMNS-967 - Default accessors on projection interfaces must not be considered input properties.
* DATACMNS-963 - ReturnedType.getInputProperties() does not guarantee distinct properties.
* DATACMNS-962 - Doc spelling mistake 'walking thought'.
* DATACMNS-961 - Upgrade to a newer JDK version on TravisCI.
* DATACMNS-960 - RevisionRepository should extend Repository.
* DATACMNS-959 - Register repository interceptor to allow detecting a surrounding transaction.
* DATACMNS-958 - Use ExposeInvocationInterceptor.ADVISOR over the advice instance.
* DATACMNS-957 - Persist fails on entity without id and version field if @EnableAuditing.
* DATACMNS-956 - Ensure consistent usage of ClassTypeInformation.from(…).
* DATACMNS-953 - GenericPropertyMatchers.exact() should use exact matching.
* DATACMNS-952 - Switch to less expensive lookup of Spring Data web support configuration.
* DATACMNS-951 - Add Converters for JSR-310 Duration and Period.
* DATACMNS-947 - Adopt ReactiveTypeDescriptor changes.
* DATACMNS-943 - Redeclared save(Iterable) results in wrong method overload to be invoked eventually.
* DATACMNS-942 - Release 2.0 M2 (Kay).
* DATACMNS-941 - QuerydslBindings not working with inheritance.
* DATACMNS-940 - Support for Javaslang collection types as query method return values.
* DATACMNS-934 - BasicPersistentEntity.addAssociations(…) must not add null values to the collection of associations.
* DATACMNS-928 - Support for exposing domain events from aggregate roots as Spring application events.
* DATACMNS-867 - Upgrade to Java 8 and adapt APIs.
* DATACMNS-776 - ProxyingHandlerMethodArgumentResolver handles interfaces not intended for projection.


Changes in version 1.12.8.RELEASE (2017-03-02)
----------------------------------------------
* DATACMNS-999 - Improve resource extensive error message concatenation.
* DATACMNS-989 - CustomRepositoryImplementationDetector ignores excludeFilters.
* DATACMNS-985 - Remove references to single-argument assertion methods of Spring.
* DATACMNS-979 - Release 1.12.8 (Hopper SR8).


Changes in version 1.13.1.RELEASE (2017-03-02)
----------------------------------------------
* DATACMNS-1000 - Typo in reference documentation about domain events.
* DATACMNS-999 - Improve resource extensive error message concatenation.
* DATACMNS-989 - CustomRepositoryImplementationDetector ignores excludeFilters.
* DATACMNS-987 - SpringDataWebConfiguration now forces an application to have Jackson on the classpath if it uses JSON Path.
* DATACMNS-985 - Remove references to single-argument assertion methods of Spring.
* DATACMNS-980 - Release 1.13.1 (Ingalls SR1).


Changes in version 1.12.7.RELEASE (2017-01-26)
----------------------------------------------
* DATACMNS-967 - Default accessors on projection interfaces must not be considered input properties.
* DATACMNS-964 - Release 1.12.7 (Hopper SR7).
* DATACMNS-957 - Persist fails on entity without id and version field if @EnableAuditing.
* DATACMNS-776 - ProxyingHandlerMethodArgumentResolver handles interfaces not intended for projection.


Changes in version 1.13.0.RELEASE (2017-01-26)
----------------------------------------------
* DATACMNS-975 - Aggregate event publication should happen after the interaction with the repository.
* DATACMNS-974 - Update project documentation with the CLA tool integration.
* DATACMNS-973 - Migrate ticket references in test code to Spring Framework style.
* DATACMNS-972 - NullPointerException in ProjectingJackson2HttpMessageConverter.
* DATACMNS-967 - Default accessors on projection interfaces must not be considered input properties.
* DATACMNS-965 - Release 1.13 GA (Ingalls).
* DATACMNS-957 - Persist fails on entity without id and version field if @EnableAuditing.
* DATACMNS-776 - ProxyingHandlerMethodArgumentResolver handles interfaces not intended for projection.


Changes in version 1.12.6.RELEASE (2016-12-21)
----------------------------------------------
* DATACMNS-963 - ReturnedType.getInputProperties() does not guarantee distinct properties.
* DATACMNS-962 - Doc spelling mistake 'walking thought'.
* DATACMNS-958 - Use ExposeInvocationInterceptor.ADVISOR over the advice instance.
* DATACMNS-956 - Ensure consistent usage of ClassTypeInformation.from(…).
* DATACMNS-953 - GenericPropertyMatchers.exact() should use exact matching.
* DATACMNS-943 - Redeclared save(Iterable) results in wrong method overload to be invoked eventually.
* DATACMNS-939 - Static interface methods should not be considered query methods.
* DATACMNS-934 - BasicPersistentEntity.addAssociations(…) must not add null values to the collection of associations.
* DATACMNS-932 - Release 1.12.6 (Hopper SR6).


Changes in version 1.13.0.RC1 (2016-12-21)
------------------------------------------
* DATACMNS-963 - ReturnedType.getInputProperties() does not guarantee distinct properties.
* DATACMNS-962 - Doc spelling mistake 'walking thought'.
* DATACMNS-961 - Upgrade to a newer JDK version on TravisCI.
* DATACMNS-960 - RevisionRepository should extend Repository.
* DATACMNS-959 - Register repository interceptor to allow detecting a surrounding transaction.
* DATACMNS-958 - Use ExposeInvocationInterceptor.ADVISOR over the advice instance.
* DATACMNS-956 - Ensure consistent usage of ClassTypeInformation.from(…).
* DATACMNS-953 - GenericPropertyMatchers.exact() should use exact matching.
* DATACMNS-952 - Switch to less expensive lookup of Spring Data web support configuration.
* DATACMNS-951 - Add Converters for JSR-310 Duration and Period.
* DATACMNS-943 - Redeclared save(Iterable) results in wrong method overload to be invoked eventually.
* DATACMNS-941 - QuerydslBindings not working with inheritance.
* DATACMNS-940 - Support for Javaslang collection types as query method return values.
* DATACMNS-939 - Static interface methods should not be considered query methods.
* DATACMNS-937 - Support for Javaslang's Option as return type of query methods.
* DATACMNS-934 - BasicPersistentEntity.addAssociations(…) must not add null values to the collection of associations.
* DATACMNS-929 - PageableHandlerMethodArgumentResolver.isFallbackPageable() throws NullPointerException if default is configured to be null.
* DATACMNS-928 - Support for exposing domain events from aggregate roots as Spring application events.
* DATACMNS-925 - Improve memory consumption of Parameter and Parameters.
* DATACMNS-923 - Remove obsolete code in DefaultRepositoryInformation.
* DATACMNS-921 - ResultProcessor should create approximate collection instead of exact one.
* DATACMNS-920 - Expose minInclusive and maxInclusive of org.springframework.data.domain.Range.
* DATACMNS-918 - Provide interfaces for Pageable and Sort method argument resolvers.
* DATACMNS-917 - Query methods returning Maps shouldn't return null if no result is present.
* DATACMNS-916 - Generated PropertyAccessor fails lookup of setter accepting a primitive type.
* DATACMNS-912 - Unable to write custom implementation of CRUD method with generic parameters.
* DATACMNS-910 - Remove Spring 4.2 build profile for Travis.
* DATACMNS-909 - Exclude decoratedClass from JSON links, created from Projection and received with Spring @RestController.
* DATACMNS-908 - Allow creating an Order with a different property name.
* DATACMNS-903 - Fix typo in reference documentation.
* DATACMNS-902 - Fix attribute name in example showing how to define a custom repository base class.
* DATACMNS-900 - ExampleMatcher.PropertySpecifiers does not implement equals/hashCode.
* DATACMNS-899 - ParameterizedTypeInformation.getMapValueType for non-map types causes StackOverflowError.
* DATACMNS-896 - ClassTypeInformation computes incorrect TypeVariable mappings for recursive generics.
* DATACMNS-892 - Expose repository interface via attribute on bean definition for repository factory beans.
* DATACMNS-891 - Switch constructor injection of the repository interface for repository factory beans.
* DATACMNS-889 - Release 1.13 RC1 (Ingalls).
* DATACMNS-888 - Add dedicated RevisionSort to easily capture the desire to sort by revision number.
* DATACMNS-875 - Add support for exists projection in repository query derivation.


Changes in version 2.0.0.M1 (2016-11-23)
----------------------------------------
* DATACMNS-939 - Static interface methods should not be considered query methods.
* DATACMNS-937 - Support JavaSlang and other custom wrappers as return types of query methods.
* DATACMNS-935 - Avoid hard dependency on Project Reactor in reactive support.
* DATACMNS-933 - Release 2.0 M1 (Kay).
* DATACMNS-919 - Remove DomainClassPropertyEditorRegistrar.
* DATACMNS-836 - Add components to support reactive repositories.
* DATACMNS-168 - Allow customizing the bean name for repository beans.


Changes in version 1.12.5.RELEASE (2016-11-03)
----------------------------------------------
* DATACMNS-929 - PageableHandlerMethodArgumentResolver.isFallbackPageable() throws NullPointerException if default is configured to be null.
* DATACMNS-925 - Improve memory consumption of Parameter and Parameters.
* DATACMNS-924 - Release 1.12.5 (Hopper SR5).


Changes in version 1.12.4.RELEASE (2016-09-29)
----------------------------------------------
* DATACMNS-923 - Remove obsolete code in DefaultRepositoryInformation.
* DATACMNS-921 - ResultProcessor should create approximate collection instead of exact one.
* DATACMNS-917 - Query methods returning Maps shouldn't return null if no result is present.
* DATACMNS-914 - Release 1.12.4 (Hopper SR4).


Changes in version 1.11.6.RELEASE (2016-09-29)
----------------------------------------------
* DATACMNS-923 - Remove obsolete code in DefaultRepositoryInformation.
* DATACMNS-922 - Release 1.11.6 (Gosling SR6).
* DATACMNS-917 - Query methods returning Maps shouldn't return null if no result is present.


Changes in version 1.11.5.RELEASE (2016-09-20)
----------------------------------------------
* DATACMNS-913 - Release 1.11.5 (Gosling SR5).
* DATACMNS-912 - Unable to write custom implementation of CRUD method with generic parameters.
* DATACMNS-909 - Exclude decoratedClass from JSON links, created from Projection and received with Spring @RestController.
* DATACMNS-903 - Fix typo in reference documentation.
* DATACMNS-902 - Fix attribute name in example showing how to define a custom repository base class.
* DATACMNS-899 - ParameterizedTypeInformation.getMapValueType for non-map types causes StackOverflowError.
* DATACMNS-896 - ClassTypeInformation computes incorrect TypeVariable mappings for recursive generics.
* DATACMNS-892 - Expose repository interface via attribute on bean definition for repository factory beans.
* DATACMNS-866 - Provide more descriptive error message in BasicPersistentEntity.getPropertyAccessor(…).
* DATACMNS-863 - Query method Parameter should return element type for wrapper ones (e.g. Optional).
* DATACMNS-858 - JavaDoc of CrudMethods states wrong preferences of selected delete methods.
* DATACMNS-856 - DomainClassConverter throws erroneous exception in matches.
* DATACMNS-855 - Missing equals(…) and hashCode() in SyntheticParamterizedType are causing a memory leak.
* DATACMNS-854 - Custom implementation of repository fails when overriding methods containing generics.
* DATACMNS-844 - Remove LenientAssignableTypeFilter in RepositoryConfigurationDelegate.
* DATACMNS-843 - Raise log level of repositories that get dropped in strict configuration mode to INFO.
* DATACMNS-831 - AbstractMappingContext.getPersistentEntity sometimes returns an empty entity when called by multiple threads.
* DATACMNS-829 - Projecting a Map with a null value causes an exception.
* DATACMNS-826 - JavaDoc of GeoModule class broken.
* DATACMNS-812 - Confusing message generated by  PageImpl.toString().
* DATACMNS-743 - Optimisation CPU consumption.
* DATACMNS-685 - ConversionMatchAbbreviationException being thrown from ToEntityConverter.matches(…).


Changes in version 1.12.3.RELEASE (2016-09-20)
----------------------------------------------
* DATACMNS-912 - Unable to write custom implementation of CRUD method with generic parameters.
* DATACMNS-909 - Exclude decoratedClass from JSON links, created from Projection and received with Spring @RestController.
* DATACMNS-903 - Fix typo in reference documentation.
* DATACMNS-902 - Fix attribute name in example showing how to define a custom repository base class.
* DATACMNS-900 - ExampleMatcher.PropertySpecifiers does not implement equals/hashCode.
* DATACMNS-899 - ParameterizedTypeInformation.getMapValueType for non-map types causes StackOverflowError.
* DATACMNS-896 - ClassTypeInformation computes incorrect TypeVariable mappings for recursive generics.
* DATACMNS-892 - Expose repository interface via attribute on bean definition for repository factory beans.
* DATACMNS-886 - Fix OSGi version ranges for Spring Framework references.
* DATACMNS-883 - NullPointerException for Querydsl bindings referring to collection element attributes.
* DATACMNS-880 - TransactionalRepositoryFactoryBeanSupport.setBeanFactory doesn't delegate to super-implementation.
* DATACMNS-874 - NullPointerException when unwrapping empty Scala Options.
* DATACMNS-873 - Release 1.12.3 (Hopper SR3).


Changes in version 1.13.0.M1 (2016-07-27)
-----------------------------------------
* DATACMNS-887 - Update Sonargraph architecture description.
* DATACMNS-886 - Fix OSGi version ranges for Spring Framework references.
* DATACMNS-885 - Add support to bind JSON and XML payloads to projection interfaces.
* DATACMNS-884 - Move PageableExecutionSupport from JPA to Spring Data Commons.
* DATACMNS-883 - NullPointerException for Querydsl bindings referring to collection element attributes.
* DATACMNS-880 - TransactionalRepositoryFactoryBeanSupport.setBeanFactory doesn't delegate to super-implementation.
* DATACMNS-879 - ExampleMatcher should allow to configure any-match mode.
* DATACMNS-874 - NullPointerException when unwrapping empty Scala Options.
* DATACMNS-869 - Fix Javadoc in Pair.java.
* DATACMNS-868 - Unguarded reference to JDK 8 Function interface renders Hopper SR2 snapshots incompatible with Java 6.
* DATACMNS-866 - Provide more descriptive error message in BasicPersistentEntity.getPropertyAccessor(…).
* DATACMNS-863 - Query method Parameter should return element type for wrapper ones (e.g. Optional).
* DATACMNS-862 - ReturnedInterface should not consider super interfaces of domain type projecting.
* DATACMNS-860 - ResultProcessor should use ConversionService as fallback if target is a class.
* DATACMNS-859 - ResultProcessor doesn't handle Stream instances correctly.
* DATACMNS-858 - JavaDoc of CrudMethods states wrong preferences of selected delete methods.
* DATACMNS-856 - DomainClassConverter throws erroneous exception in matches.
* DATACMNS-855 - Missing equals(…) and hashCode() in SyntheticParamterizedType are causing a memory leak.
* DATACMNS-854 - Custom implementation of repository fails when overriding methods containing generics.
* DATACMNS-853 - PersistentPropertyAccessor.getProperty fails using interface types with the class-generating accessor.
* DATACMNS-850 - Result projection should not be applied to JDK types.
* DATACMNS-844 - Remove LenientAssignableTypeFilter in RepositoryConfigurationDelegate.
* DATACMNS-843 - Raise log level of repositories that get dropped in strict configuration mode to INFO.
* DATACMNS-842 - Projections on repository query methods should support Slice.
* DATACMNS-840 - ReturnedClass fails on types with ambiguous constructors.
* DATACMNS-838 - Release 1.13 M1 (Ingalls).
* DATACMNS-831 - AbstractMappingContext.getPersistentEntity sometimes returns an empty entity when called by multiple threads.
* DATACMNS-809 - Investigate use of method handles for property access.
* DATACMNS-743 - Optimisation CPU consumption.
* DATACMNS-685 - ConversionMatchAbbreviationException being thrown from ToEntityConverter.matches(…).


Changes in version 1.12.2.RELEASE (2016-06-15)
----------------------------------------------
* DATACMNS-869 - Fix Javadoc in Pair.java.
* DATACMNS-868 - Unguarded reference to JDK 8 Function interface renders Hopper SR2 snapshots incompatible with Java 6.
* DATACMNS-866 - Provide more descriptive error message in BasicPersistentEntity.getPropertyAccessor(…).
* DATACMNS-863 - Query method Parameter should return element type for wrapper ones (e.g. Optional).
* DATACMNS-862 - ReturnedInterface should not consider super interfaces of domain type projecting.
* DATACMNS-860 - ResultProcessor should use ConversionService as fallback if target is a class.
* DATACMNS-859 - ResultProcessor doesn't handle Stream instances correctly.
* DATACMNS-858 - JavaDoc of CrudMethods states wrong preferences of selected delete methods.
* DATACMNS-856 - DomainClassConverter throws erroneous exception in matches.
* DATACMNS-855 - Missing equals(…) and hashCode() in SyntheticParamterizedType are causing a memory leak.
* DATACMNS-854 - Custom implementation of repository fails when overriding methods containing generics.
* DATACMNS-850 - Result projection should not be applied to JDK types.
* DATACMNS-844 - Remove LenientAssignableTypeFilter in RepositoryConfigurationDelegate.
* DATACMNS-843 - Raise log level of repositories that get dropped in strict configuration mode to INFO.
* DATACMNS-842 - Projections on repository query methods should support Slice.
* DATACMNS-840 - ReturnedClass fails on types with ambiguous constructors.
* DATACMNS-839 - Release 1.12.2 (Hopper SR2).
* DATACMNS-831 - AbstractMappingContext.getPersistentEntity sometimes returns an empty entity when called by multiple threads.
* DATACMNS-743 - Optimisation CPU consumption.
* DATACMNS-685 - ConversionMatchAbbreviationException being thrown from ToEntityConverter.matches(…).


Changes in version 1.12.1.RELEASE (2016-04-06)
----------------------------------------------
* DATACMNS-837 - Release 1.12.1 (Hopper SR1).


Changes in version 1.12.0.RELEASE (2016-04-06)
----------------------------------------------
* DATACMNS-835 - Add pull request template.
* DATACMNS-833 - Release 1.12 GA (Hopper).
* DATACMNS-830 - Update documentation for Spring Data Commons 1.12.
* DATACMNS-726 - Document the rules/limitations around using multiple Spring Data implementations with the same Domain object.


Changes in version 1.12.0.RC1 (2016-03-18)
------------------------------------------
* DATACMNS-829 - Projecting a Map with a null value causes an exception.
* DATACMNS-828 - Potential NullPointerException in ResultProcessor.
* DATACMNS-827 - Fix Travis build setup after Spring 4.2 upgrade.
* DATACMNS-826 - JavaDoc of GeoModule class broken.
* DATACMNS-825 - Allow usage of composed annotations on PersistentEntity and PersistentProperty using @AliasFor.
* DATACMNS-823 - Release 1.12 RC1 (Hopper).
* DATACMNS-821 - Enable type prediction for JndiObjectFactoryBean.
* DATACMNS-820 - Allow setter invocations in projections backed by beans.
* DATACMNS-818 - Rename Tuple value type to Pair.
* DATACMNS-812 - Confusing message generated by  PageImpl.toString().
* DATACMNS-810 - Add core types for Query By Example support.


Changes in version 1.11.4.RELEASE (2016-02-23)
----------------------------------------------
* DATACMNS-820 - Allow setter invocations in projections backed by beans.
* DATACMNS-817 - Release 1.11.4 (Gosling SR4).
* DATACMNS-815 - Make static cache in SimpleTypeInformationMapper non-static.
* DATACMNS-804 - IndexOutOfBoundException in ParametersParameterAccessor iterator when non-bindable parameter(s) used.
* DATACMNS-801 - PropertyReferenceException lists potential matches twice for classes following the Java beans specification.


Changes in version 1.12.0.M1 (2016-02-12)
-----------------------------------------
* DATACMNS-815 - Make static cache in SimpleTypeInformationMapper non-static.
* DATACMNS-813 - Add code of conduct.
* DATACMNS-811 - Release 1.12 M1 (Hopper).
* DATACMNS-804 - IndexOutOfBoundException in ParametersParameterAccessor iterator when non-bindable parameter(s) used.
* DATACMNS-802 - Allow customizing the PagedResource instance created in PagedResourcesAssembler.
* DATACMNS-801 - PropertyReferenceException lists potential matches twice for classes following the Java beans specification.
* DATACMNS-795 - Support for Scala Option in repositories.
* DATACMNS-794 - Repositories should allow RepositoryFactoryInformation lookup via repository interface.
* DATACMNS-793 - Some inline code formatting broken in reference documentation.
* DATACMNS-791 - Improve exception message in QueryMethodParameterConversionException and ReflectionRepositoryInvoker.
* DATACMNS-790 - Add Tuple value type.
* DATACMNS-789 - Fix typo in JavaDoc of Page.
* DATACMNS-788 - template.mf should use placeholder for Slf4j version.
* DATACMNS-787 - Allow aliasing of Querydsl web bindings.
* DATACMNS-786 - Typo in example of declaring Jackson repository populator of reference documentation.
* DATACMNS-785 - Add RevisionRepository.findRevision(ID, N) from Spring Data Envers.
* DATACMNS-783 - TypeInformation should allow applying the generic context to a raw type.
* DATACMNS-782 - ProxyProjectionFactory should support primitive attribute conversion in projections out of the box.
* DATACMNS-779 - Fix JavaDoc of constructor of QuerydslPredicateBuilder.
* DATACMNS-773 - Add support for persisting ZoneId instances out of the box.
* DATACMNS-772 - Add converter for ZoneId to String and vice versa.
* DATACMNS-771 - Typo in exception in BasicPersistentEntity.
* DATACMNS-769 - Cannot create auto-generated @Async method with pagination.
* DATACMNS-768 - Support Optional on repository query parameters.
* DATACMNS-763 - Custom repository implementation class not working as stated in the reference documentation.
* DATACMNS-762 - Polish section about dependencies in the reference documentation.
* DATACMNS-761 - PageableHandlerMethodArgumentResolver reduces page size by one if on-indexed parameters are used.
* DATACMNS-753 - SortHandlerMethodArgumentResolver fails to fall back to default if empty parameter is given.
* DATACMNS-670 - Add support for Querydsl 4.
* DATACMNS-89 - Support for projections in repository query methods.


Changes in version 1.11.2.RELEASE (2015-12-18)
----------------------------------------------
* DATACMNS-797 - Release 1.11.2 (Gosling).
* DATACMNS-793 - Some inline code formatting broken in reference documentation.
* DATACMNS-791 - Improve exception message in QueryMethodParameterConversionException and ReflectionRepositoryInvoker.
* DATACMNS-789 - Fix typo in JavaDoc of Page.
* DATACMNS-788 - template.mf should use placeholder for Slf4j version.
* DATACMNS-786 - Typo in example of declaring Jackson repository populator of reference documentation.


Changes in version 1.11.1.RELEASE (2015-11-15)
----------------------------------------------
* DATACMNS-784 - Release 1.11.1 (Gosling).
* DATACMNS-783 - TypeInformation should allow applying the generic context to a raw type.
* DATACMNS-782 - ProxyProjectionFactory should support primitive attribute conversion in projections out of the box.
* DATACMNS-779 - Fix JavaDoc of constructor of QuerydslPredicateBuilder.
* DATACMNS-771 - Typo in exception in BasicPersistentEntity.
* DATACMNS-769 - Cannot create auto-generated @Async method with pagination.
* DATACMNS-763 - Custom repository implementation class not working as stated in the reference documentation.
* DATACMNS-762 - Polish section about dependencies in the reference documentation.
* DATACMNS-761 - PageableHandlerMethodArgumentResolver reduces page size by one if on-indexed parameters are used.
* DATACMNS-753 - SortHandlerMethodArgumentResolver fails to fall back to default if empty parameter is given.


Changes in version 1.9.4.RELEASE (2015-10-14)
---------------------------------------------
* DATACMNS-778 - Backport fix for @javax.transaction.Transactional support.
* DATACMNS-777 - Release 1.9.4 (Evans).
* DATACMNS-774 - Tweak Travis build to run the updated build profiles for Evans.


Changes in version 1.11.0.RELEASE (2015-09-01)
----------------------------------------------
* DATACMNS-760 - Remove cyclic dependency in querydsl packages.
* DATACMNS-759 - Release 1.11 GA (Gosling).
* DATACMNS-755 - Paths without parent are causing IllegalArgumentException in QSort class.
* DATACMNS-754 - PersonRepository in reference documentation persists User.
* DATACMNS-751 - Update reference documentation.
* DATACMNS-750 - Part.extractProperty(String part) invalidly extracts property paths containing keywords.
* DATACMNS-749 - Register ExposeInvocationInterceptor globally so that RepositoryPostProcessors don't have to individually.
* DATACMNS-748 - Spring version check in QueryExecutionConverters might fail.
* DATACMNS-746 - JavaDoc of PersistentPropertyAccessor should explain how to obtain one.


Changes in version 1.11.0.RC1 (2015-08-04)
------------------------------------------
* DATACMNS-744 - NoClassDefFoundError com/mysema/query/types/EntityPath with latest SNAPSHOT.
* DATACMNS-742 - Release 1.11 RC1 (Gosling).
* DATACMNS-738 - Remove deprecated BeanWrapper.
* DATACMNS-736 - Invalid error message in PointFormatter.
* DATACMNS-734 - Make sure Querydsl binding considers formatting annotations.
* DATACMNS-733 - PreferredConstructorDiscoverer prevents custom classloader from being garbage collected.
* DATACMNS-732 - JTA 1.2's @Transactional not being applied to query methods.
* DATACMNS-731 - Parameter should expose whether it's explicitly named.
* DATACMNS-728 - Configure Travis build to run against latest Spring 4.2 release, too.
* DATACMNS-727 - Improve handling of invalid PersistentPropertyPaths in MappingContext.
* DATACMNS-722 - ProxyProjectionFactory does not handle arrays correctly.
* DATACMNS-720 - Explicit transaction configuration is not considered if default transactions are disabled.
* DATACMNS-719 - Version fails to parse input string with non-numerical suffix.
* DATACMNS-718 - Improve class loader handling for proxy factories.
* DATACMNS-717 - AnnotatedTypeScanner does not use context classloader for loading found types.
* DATACMNS-716 - QueryMethod type not detected correctly when wrapper types are used with collections.
* DATACMNS-715 - @Transactional customizations not applied correctly on redeclared methods.
* DATACMNS-714 - Add support for CompletableFuture as query method return type on Spring 4.2.
* DATACMNS-713 - PageImpl should adapt the total for last pages if it doesn't match the content.
* DATACMNS-710 - ObjectInstantiatorClassGenerator should use ClassUtils.getDefaultClassLoader().
* DATACMNS-707 - Fix JavaDoc in CrudRepository.
* DATACMNS-703 - PropertyReferenceException's message should contain potential matches.
* DATACMNS-648 - o.s.d.r.q.Parameters prevents custom classloader from being garbage collected.
* DATACMNS-569 - Fix documentation on underscores in property references of derived query methods.


Changes in version 1.10.2.RELEASE (2015-07-28)
----------------------------------------------
* DATACMNS-740 - Release 1.10.2 (Fowler).
* DATACMNS-736 - Invalid error message in PointFormatter.
* DATACMNS-733 - PreferredConstructorDiscoverer prevents custom classloader from being garbage collected.
* DATACMNS-732 - JTA 1.2's @Transactional not being applied to query methods.
* DATACMNS-728 - Configure Travis build to run against latest Spring 4.2 release, too.


Changes in version 1.8.6.RELEASE (2015-07-01)
---------------------------------------------
* DATACMNS-723 - Release 1.8.6 (Dijkstra).
* DATACMNS-719 - Version fails to parse input string with non-numerical suffix.
* DATACMNS-717 - AnnotatedTypeScanner does not use context classloader for loading found types.
* DATACMNS-715 - @Transactional customizations not applied correctly on redeclared methods.
* DATACMNS-713 - PageImpl should adapt the total for last pages if it doesn't match the content.
* DATACMNS-707 - Fix JavaDoc in CrudRepository.
* DATACMNS-697 - Field-local generics information not honored.
* DATACMNS-696 - Enable Slack notifications for Travis build.
* DATACMNS-695 - Potential NullPointerException in AbstractMappingContext.
* DATACMNS-694 - Remove relative paths to parent POM.
* DATACMNS-693 - Change property reflection mechanisms from java.beans.Introspector to spring specific BeanUtils.
* DATACMNS-692 - IllegalArgumentExceptions in PageableHandlerMethodArgumentResolver with one-based index parameters.
* DATACMNS-691 - Remove Travis build profile for Spring 4.0.next.
* DATACMNS-677 - Cache annotation absence in AnnotationBasedPersistentProperty when there is no field for property.
* DATACMNS-648 - o.s.d.r.q.Parameters prevents custom classloader from being garbage collected.
* DATACMNS-646 - Enable build for Spring 4.2 profile.
* DATACMNS-642 - Performance improvement - BeanWrapper.setProperty should not lock when unnecessary.
* DATACMNS-640 - Possible NullPointerException on PageableHandlerMethodArgumentResolver when fallbackPageable is null.


Changes in version 1.9.3.RELEASE (2015-07-01)
---------------------------------------------
* DATACMNS-724 - Release 1.9.3 (Evans).
* DATACMNS-719 - Version fails to parse input string with non-numerical suffix.
* DATACMNS-717 - AnnotatedTypeScanner does not use context classloader for loading found types.
* DATACMNS-716 - QueryMethod type not detected correctly when wrapper types are used with collections.
* DATACMNS-715 - @Transactional customizations not applied correctly on redeclared methods.
* DATACMNS-713 - PageImpl should adapt the total for last pages if it doesn't match the content.
* DATACMNS-707 - Fix JavaDoc in CrudRepository.
* DATACMNS-697 - Field-local generics information not honored.
* DATACMNS-696 - Enable Slack notifications for Travis build.
* DATACMNS-695 - Potential NullPointerException in AbstractMappingContext.
* DATACMNS-694 - Remove relative paths to parent POM.
* DATACMNS-693 - Change property reflection mechanisms from java.beans.Introspector to spring specific BeanUtils.
* DATACMNS-692 - IllegalArgumentExceptions in PageableHandlerMethodArgumentResolver with one-based index parameters.
* DATACMNS-691 - Remove Travis build profile for Spring 4.0.next.
* DATACMNS-689 - Improve reference documentation on web pagination.
* DATACMNS-687 - Add section on dependency management for Spring Data modules and Spring Framework to the reference documentation.
* DATACMNS-682 - Abrupt documentation line ending.
* DATACMNS-681 - Take care of compiler warnings.
* DATACMNS-679 - Clean up Sonargraph architecture description.
* DATACMNS-677 - Cache annotation absence in AnnotationBasedPersistentProperty when there is no field for property.
* DATACMNS-674 - Typo in reference documentation.
* DATACMNS-649 - Incorrect reference docs on extending all repositories causes failures in lookup of default transaction metadata.
* DATACMNS-648 - o.s.d.r.q.Parameters prevents custom classloader from being garbage collected.
* DATACMNS-646 - Enable build for Spring 4.2 profile.
* DATACMNS-645 - Typo in reference documentation.
* DATACMNS-642 - Performance improvement - BeanWrapper.setProperty should not lock when unnecessary.
* DATACMNS-640 - Possible NullPointerException on PageableHandlerMethodArgumentResolver when fallbackPageable is null.
* DATACMNS-569 - Fix documentation on underscores in property references of derived query methods.


Changes in version 1.10.1.RELEASE (2015-06-30)
----------------------------------------------
* DATACMNS-725 - Release 1.10.1 (Fowler).
* DATACMNS-722 - ProxyProjectionFactory does not handle arrays correctly.
* DATACMNS-720 - Explicit transaction configuration is not considered if default transactions are disabled.
* DATACMNS-719 - Version fails to parse input string with non-numerical suffix.
* DATACMNS-718 - Improve class loader handling for proxy factories.
* DATACMNS-717 - AnnotatedTypeScanner does not use context classloader for loading found types.
* DATACMNS-716 - QueryMethod type not detected correctly when wrapper types are used with collections.
* DATACMNS-715 - @Transactional customizations not applied correctly on redeclared methods.
* DATACMNS-713 - PageImpl should adapt the total for last pages if it doesn't match the content.
* DATACMNS-711 - DomainClassConverter triggered unnecessarily.
* DATACMNS-710 - ObjectInstantiatorClassGenerator should use ClassUtils.getDefaultClassLoader().
* DATACMNS-707 - Fix JavaDoc in CrudRepository.
* DATACMNS-697 - Field-local generics information not honored.
* DATACMNS-696 - Enable Slack notifications for Travis build.
* DATACMNS-695 - Potential NullPointerException in AbstractMappingContext.
* DATACMNS-694 - Remove relative paths to parent POM.
* DATACMNS-693 - Change property reflection mechanisms from java.beans.Introspector to spring specific BeanUtils.
* DATACMNS-692 - IllegalArgumentExceptions in PageableHandlerMethodArgumentResolver with one-based index parameters.
* DATACMNS-691 - Remove Travis build profile for Spring 4.0.next.
* DATACMNS-689 - Improve reference documentation on web pagination.
* DATACMNS-687 - Add section on dependency management for Spring Data modules and Spring Framework to the reference documentation.
* DATACMNS-683 - Enabling Spring Data web support breaks @ModelAttribute binding in Spring MVC.
* DATACMNS-682 - Abrupt documentation line ending.
* DATACMNS-681 - Take care of compiler warnings.
* DATACMNS-679 - Clean up Sonargraph architecture description.
* DATACMNS-677 - Cache annotation absence in AnnotationBasedPersistentProperty when there is no field for property.
* DATACMNS-674 - Typo in reference documentation.
* DATACMNS-663 - Typo in method in BytecodeGeneratingEntityInstantiator.
* DATACMNS-648 - o.s.d.r.q.Parameters prevents custom classloader from being garbage collected.
* DATACMNS-569 - Fix documentation on underscores in property references of derived query methods.


Changes in version 1.11.0.M1 (2015-06-02)
-----------------------------------------
* DATACMNS-706 - Release 1.11 M1 (Gosling).
* DATACMNS-701 - PagedResourcesAssembler should expose first and last links.
* DATACMNS-700 - RepositoryInvoker.invokeQueryMethod(…) should report failed parameter conversions with dedicated exception.
* DATACMNS-699 - PagedResourcesAssembler should allow creating an empty PagedResources that renders an embedded empty collection.
* DATACMNS-697 - Field-local generics information not honored.
* DATACMNS-696 - Enable Slack notifications for Travis build.
* DATACMNS-695 - Potential NullPointerException in AbstractMappingContext.
* DATACMNS-694 - Remove relative paths to parent POM.
* DATACMNS-693 - Change property reflection mechanisms from java.beans.Introspector to spring specific BeanUtils.
* DATACMNS-692 - IllegalArgumentExceptions in PageableHandlerMethodArgumentResolver with one-based index parameters.
* DATACMNS-689 - Improve reference documentation on web pagination.
* DATACMNS-687 - Add section on dependency management for Spring Data modules and Spring Framework to the reference documentation.
* DATACMNS-684 - ProxyProjectionFactory should allow to access to proxy target from created proxies.
* DATACMNS-683 - Enabling Spring Data web support breaks @ModelAttribute binding in Spring MVC.
* DATACMNS-682 - Abrupt documentation line ending.
* DATACMNS-681 - Take care of compiler warnings.
* DATACMNS-680 - Switch to Guava property of Spring Data Build.
* DATACMNS-679 - Clean up Sonargraph architecture description.
* DATACMNS-678 - Improve method signature of RepositoryInvoker.invokeQueryMethod(…).
* DATACMNS-677 - Cache annotation absence in AnnotationBasedPersistentProperty when there is no field for property.
* DATACMNS-674 - Typo in reference documentation.
* DATACMNS-673 - ConverterNotFoundException when invoking a method that expects a parameter interface.
* DATACMNS-664 - Adapt Travis build config after Spring 4.1 upgrade.
* DATACMNS-663 - Typo in method in BytecodeGeneratingEntityInstantiator.
* DATACMNS-613 - Remove custom CollectionFactory once we migrate to Spring 4.1.x.
* DATACMNS-542 - Simplify the process of adding custom methods to all repositories.
* DATACMNS-515 - Pagination links created by PagedResourcesAssembler should have a canonical URL not a templated one.


Changes in version 1.10.0.RELEASE (2015-03-23)
----------------------------------------------
* DATACMNS-662 - Release 1.10 GA.
* DATACMNS-661 - Performance improvements in SpelAwareProxyProjectionFactory.
* DATACMNS-660 - Extend web configuration infrastructure to pick up configuration from store modules.
* DATACMNS-656 - Allow configuring whether to enable default transactions on TransactionRepositoryFactoryBeanSupport.
* DATACMNS-655 - Allow invocation of default method on projection proxies.
* DATACMNS-654 - Document usage of Java 8 Streams in Repositories.


Changes in version 1.10.0.RC1 (2015-03-05)
------------------------------------------
* DATACMNS-652 - Release 1.10 RC1.
* DATACMNS-651 - Add domain types to represent a range of values.
* DATACMNS-650 - Provide a CloseableIterator abstraction as a foundation for streaming of results.
* DATACMNS-649 - Incorrect reference docs on extending all repositories causes failures in lookup of default transaction metadata.
* DATACMNS-647 - Add test case for collection parameter invocation on ReflectionRepositoryInvoker.
* DATACMNS-646 - Enable build for Spring 4.2 profile.
* DATACMNS-645 - Typo in reference documentation.
* DATACMNS-643 - Add support for JSR-310 and ThreeTen Backport types in auditing support.
* DATACMNS-642 - Performance improvement - BeanWrapper.setProperty should not lock when unnecessary.
* DATACMNS-641 - Default sort direction to ascending order in case none is specified in derived repository queries.
* DATACMNS-640 - Possible NullPointerException on PageableHandlerMethodArgumentResolver when fallbackPageable is null.
* DATACMNS-638 - Let auditing infrastructure work with PersistentEntities rather than a single MappingContext.
* DATACMNS-637 - General inspection for performance improvements.
* DATACMNS-636 - Add 'exists' method to QueryDslPredicateExecutor which accepts a querydsl Predicate.
* DATACMNS-635 - Provide an easier way to instantiate Page.
* DATACMNS-634 - Repositories should return repository for entity's super-type if available.
* DATACMNS-631 - Make RepositoryFactorySupport.getRepositoryMetadata(…) protected.
* DATACMNS-630 - Move core projection infrastructure from Spring Data REST into Commons.
* DATACMNS-629 - Reference documentation section on limiting query results is showing incorrect order-by-clause.
* DATACMNS-628 - Add converters for ThreeTen backport library.
* DATACMNS-627 - Extend DomainClassConverter to be able to convert entity into its identifier.
* DATACMNS-626 - Port converters for Point and Distance from Spring Data REST and turn them into Formatters.
* DATACMNS-625 - Re-enable querydsl-next profile for Travis.
* DATACMNS-623 - Add converter for Instants to JSR-310 Converters.
* DATACMNS-621 - QSort does not treat nested paths correctly.
* DATACMNS-619 - DefaultCrudMethods should always return accessible methods.
* DATACMNS-616 - AnnotationRevisionMetadata can't access private fields.
* DATACMNS-615 - PageImpl should reject total less than given content length.
* DATACMNS-611 - Avoid triple cache lookup in RepositoryInterfaceAwareBeanPostProcessor.predictBeanType(…).
* DATACMNS-610 - Add converter support for Set<T> return types.
* DATACMNS-554 - Add QueryDslPredicateExecutor.findAll(Predicate, Sort) method.


Changes in version 1.9.2.RELEASE (2015-01-28)
---------------------------------------------
* DATACMNS-637 - General inspection for performance improvements.
* DATACMNS-634 - Repositories should return repository for entity's super-type if available.
* DATACMNS-633 - Release 1.9.2.
* DATACMNS-629 - Reference documentation section on limiting query results is showing incorrect order-by-clause.
* DATACMNS-625 - Re-enable querydsl-next profile for Travis.
* DATACMNS-621 - QSort does not treat nested paths correctly.
* DATACMNS-620 - Make sure we reflectively invoke redeclared repository methods in legacy RepositoryInvokers.
* DATACMNS-619 - DefaultCrudMethods should always return accessible methods.
* DATACMNS-616 - AnnotationRevisionMetadata can't access private fields.
* DATACMNS-615 - PageImpl should reject total less than given content length.
* DATACMNS-611 - Avoid triple cache lookup in RepositoryInterfaceAwareBeanPostProcessor.predictBeanType(…).
* DATACMNS-610 - Add converter support for Set<T> return types.
* DATACMNS-609 - Multiple usage of repository setup means (XML or annotation) creates multiple bean definitions for RepositoryInterfaceAwareBeanPostProcessor.
* DATACMNS-601 - Work on SonarQube warnings.
* DATACMNS-594 - Strange generics behaviour for multiply nested generic types.
* DATACMNS-591 - RepositoryConfigurationDelegate should use ResourceLoader provided by the infrastructure.
* DATACMNS-590 - Bug in generics detection for multiply nested generic types.


Changes in version 1.8.5.RELEASE (2015-01-27)
---------------------------------------------
* DATACMNS-637 - General inspection for performance improvements.
* DATACMNS-634 - Repositories should return repository for entity's super-type if available.
* DATACMNS-632 - Release 1.8.5.
* DATACMNS-624 - Re-enable Travis builds for Spring 4.1, 4.1.next and Querydsl.next.
* DATACMNS-621 - QSort does not treat nested paths correctly.
* DATACMNS-616 - AnnotationRevisionMetadata can't access private fields.
* DATACMNS-615 - PageImpl should reject total less than given content length.
* DATACMNS-611 - Avoid triple cache lookup in RepositoryInterfaceAwareBeanPostProcessor.predictBeanType(…).
* DATACMNS-601 - Work on SonarQube warnings.
* DATACMNS-594 - Strange generics behaviour for multiply nested generic types.
* DATACMNS-590 - Bug in generics detection for multiply nested generic types.
* DATACMNS-583 - DomainClassConverter#matches should return false when source- and targetType are equal.
* DATACMNS-577 - Improve javadoc on QueryDslPredicateExecutor.
* DATACMNS-530 - JavaDoc should be updated to reflect change of requiring an environment.


Changes in version 1.10.0.M1 (2014-12-01)
-----------------------------------------
* DATACMNS-609 - Multiple usage of repository setup means (XML or annotation) creates multiple bean definitions for RepositoryInterfaceAwareBeanPostProcessor.
* DATACMNS-608 - Release 1.10 M1.
* DATACMNS-607 - Inline AnnotationAttributes and MethodParameters to cut dependency to Spring HATEOAS for ReflectionRepositoryInvoker.
* DATACMNS-606 - Provide converter between legacy Date instances an JDK 8 date/time types.
* DATACMNS-605 - Move key-value infrastructure to dedicated project.
* DATACMNS-604 - Move QueryDsl helper methods from QueryDslUtils to Map specific structure.
* DATACMNS-601 - Work on SonarQube warnings.
* DATACMNS-600 - Remove package cycle introduced by the invoker package.
* DATACMNS-599 - Introduce IdentifierAccessor API.
* DATACMNS-597 - BasicPersistentEntity.getPropertyAccessor for target bean does not properly handle inheritance when PersistentEntity instances are interface or abstract class based.
* DATACMNS-596 - Expose PersistenPropertyAccessor API via PersistentEntity.
* DATACMNS-594 - Strange generics behaviour for multiply nested generic types.
* DATACMNS-591 - RepositoryConfigurationDelegate should use ResourceLoader provided by the infrastructure.
* DATACMNS-590 - Bug in generics detection for multiply nested generic types.
* DATACMNS-589 - Unify abstractions to invoke repositories with Spring Data REST.
* DATACMNS-587 - Add findAll variant with QueryDSL OrderSpecifier without a Predicate.
* DATACMNS-583 - DomainClassConverter#matches should return false when source- and targetType are equal.
* DATACMNS-581 - Spring Data support for NOT Containing expression.
* DATACMNS-580 - Add section on limiting the query results to reference documentation.
* DATACMNS-578 - Improve entity instantiation performance by using ASM byte-code generation.
* DATACMNS-577 - Improve javadoc on QueryDslPredicateExecutor.
* DATACMNS-530 - JavaDoc should be updated to reflect change of requiring an environment.
* DATACMNS-525 - In-Memory Repository infrastructure.


Changes in version 1.9.1.RELEASE (2014-10-30)
---------------------------------------------
* DATACMNS-585 - Release 1.9.1.
* DATACMNS-583 - DomainClassConverter.matches(…) should return false when source- and target type are equal.
* DATACMNS-580 - Add section on limiting the query results to reference documentation.
* DATACMNS-577 - Improve JavaDoc on QueryDslPredicateExecutor.
* DATACMNS-530 - JavaDoc should be updated to reflect change of requiring an environment.


Changes in version 1.9.0.RELEASE (2014-09-05)
---------------------------------------------
* DATACMNS-572 - Release 1.9 GA.
* DATACMNS-571 - Move to JDK 8 for build.
* DATACMNS-570 - Fix Travis build profile setup.
* DATACMNS-566 - Cannot sort on field operation with QueryDSL.
* DATACMNS-565 - Custom repository implementations are not picked up when using CDI.
* DATACMNS-562 - MappingContext fails to resolve TreeMap as Map value type.


Changes in version 1.8.4.RELEASE (2014-08-27)
---------------------------------------------
* DATACMNS-568 - Release 1.8.4.
* DATACMNS-566 - Cannot sort on field operation with QueryDSL.
* DATACMNS-562 - MappingContext fails to resolve TreeMap as Map value type.
* DATACMNS-558 - Some quality improvements according to the SonarQube report.
* DATACMNS-556 - Annotation duplication checks are too strict in AnnotationBasedPersistentProperty.
* DATACMNS-552 - Improve documentation on naming conventions for custom repository implement.


Changes in version 1.9.0.RC1 (2014-08-13)
-----------------------------------------
* DATACMNS-561 - Release 1.9 RC1.
* DATACMNS-558 - Some quality improvements according to the SonarQube report.
* DATACMNS-557 - Add support for custom implementations in CDI.
* DATACMNS-556 - Annotation duplication checks are too strict in AnnotationBasedPersistentProperty.
* DATACMNS-552 - Improve documentation on naming conventions for custom repository implement.
* DATACMNS-551 - Move to Asciidoctor for reference documentation.
* DATACMNS-548 - Add documentation of Slice for repository query methods.
* DATACMNS-547 - @TypeAlias should be @Persistent.
* DATACMNS-546 - Improve exception message for failed property lookups.
* DATACMNS-544 - Expose BeanDefinition to allow detection of whether repository configuration has been activated.
* DATACMNS-543 - Repository beans registered twice when using XML namespace.
* DATACMNS-539 - DefaultCrudMethods should detect delete(T entity) as well.
* DATACMNS-538 - Reference documentation on web pagination shows outdated parameter names.
* DATACMNS-526 - Improve multi-store behavior.
* DATACMNS-469 - Remove deprecations introduced in 1.7.


Changes in version 1.8.2.RELEASE (2014-07-28)
---------------------------------------------
* DATACMNS-549 - Release 1.8.2.
* DATACMNS-548 - Add documentation of Slice for repository query methods.
* DATACMNS-547 - @TypeAlias should be @Persistent.
* DATACMNS-546 - Improve exception message for failed property lookups.
* DATACMNS-544 - Expose BeanDefinition to allow detection of whether repository configuration has been activated.
* DATACMNS-543 - Repository beans registered twice when using XML namespace.
* DATACMNS-538 - Reference documentation on web pagination shows outdated parameter names.
* DATACMNS-537 - Remove links to forum.spring.io..


Changes in version 1.9.0.M1 (2014-07-10)
----------------------------------------
* DATACMNS-537 - Remove links to forum.spring.io..
* DATACMNS-536 - Release 1.9 M1.
* DATACMNS-535 - Upgrade build to use Java 7.
* DATACMNS-534 - Add reading / writing property information to PersistentProperty.
* DATACMNS-533 - Infrastructure for SpEL support in manually defined queries.
* DATACMNS-532 - Add support for default methods on repository interfaces.
* DATACMNS-529 - Adapt to Spring 4 upgrade.
* DATACMNS-528 - Upgrade to Spring HATEOAS 0.14.0.
* DATACMNS-523 - Pull up field naming strategies from MongoDB and Couchbase modules.
* DATACMNS-520 - Parameters incorrectly rejects query method signature.
* DATACMNS-519 - PagedResourcesAssembler should keep tempalte variables provided in base link.
* DATACMNS-518 - Spring Data Infinite Loop in HashMap in PreferredConstructor and CustomConversions.
* DATACMNS-516 - Add support for limiting the query result in the query derivation mechanism.
* DATACMNS-514 - Typo in Example 1.26. Declaring a Jackson repository populator.
* DATACMNS-513 - ControllerLinkBuilder not detecting the right @RequestMapping from a controller.
* DATACMNS-511 - AbstractMappingContext.addPersistentEntity causes infinite loop.


Changes in version 1.8.1.RELEASE (2014-06-30)
---------------------------------------------
* DATACMNS-528 - Upgrade to Spring HATEOAS 0.14.0.
* DATACMNS-527 - Release 1.8.1.
* DATACMNS-521 - Disable Querydsl.next profile in Travis build.
* DATACMNS-520 - Parameters incorrectly rejects query method signature.
* DATACMNS-518 - Spring Data Infinite Loop in HashMap in PreferredConstructor and CustomConversions.
* DATACMNS-514 - Typo in Example 1.26. Declaring a Jackson repository populator.
* DATACMNS-513 - ControllerLinkBuilder not detecting the right @RequestMapping from a controller.
* DATACMNS-511 - AbstractMappingContext.addPersistentEntity causes infinite loop.


Changes in version 1.7.3.RELEASE (2014-06-18)
---------------------------------------------
* DATACMNS-522 - Release 1.7.3.
* DATACMNS-521 - Disable Querydsl.next profile in Travis build.
* DATACMNS-520 - Parameters incorrectly rejects query method signature.
* DATACMNS-514 - Typo in Example 1.26. Declaring a Jackson repository populator.
* DATACMNS-513 - ControllerLinkBuilder not detecting the right @RequestMapping from a controller.
* DATACMNS-511 - AbstractMappingContext.addPersistentEntity causes infinite loop.
* DATACMNS-506 - PreferredConstructorDiscoverer should use Spring 4's ParameterNameDiscoverer if possible.
* DATACMNS-505 - Documentation on property expressions should mention how to escape underscores.
* DATACMNS-502 - AnnotationRepositoryConfigurationSource fails when the annotated class is in the default package.
* DATACMNS-501 - ID type not detected for intermediate repository interface.
* DATACMNS-496 - Version.parse should not throw NumberFormatExecption when parsing version string containing non numeric parts.
* DATACMNS-494 - Remove defaulting of Environment from RepositoryBeanDefinitionRegistrarSupport.
* DATACMNS-492 - Scanning for custom repository implementation classes does not use Environment.


Changes in version 1.8.0.RELEASE (2014-05-20)
---------------------------------------------
* DATACMNS-509 - NullableWrapper Breaks JSON Conversion.
* DATACMNS-508 - Add Travis configuration for matrix builds.
* DATACMNS-507 - Release 1.8 GA.
* DATACMNS-506 - PreferredConstructorDiscoverer should use Spring 4's ParameterNameDiscoverer if possible.
* DATACMNS-505 - Documentation on property expressions should mention how to escape underscores.
* DATACMNS-503 - Upgrade compile time dependency for Optional support to Guava 17.
* DATACMNS-502 - AnnotationRepositoryConfigurationSource fails when the annotated class is in the default package.
* DATACMNS-501 - ID type not detected for intermediate repository interface.
* DATACMNS-494 - Remove defaulting of Environment from RepositoryBeanDefinitionRegistrarSupport.


Changes in version 1.8.0.RC1 (2014-05-02)
-----------------------------------------
* DATACMNS-500 - Remove Jackson 1 support.
* DATACMNS-496 - Version.parse should not throw NumberFormatExecption when parsing version string containing non numeric parts.
* DATACMNS-495 - Release 1.8 RC1.
* DATACMNS-492 - Scanning for custom repository implementation classes does not use Environment.
* DATACMNS-491 - Make null handling configurable in Sort.Order.
* DATACMNS-489 - Add support for Future<T> as return type for repository methods.
* DATACMNS-486 - Add functionality to easily transform camel case Strings.
* DATACMNS-485 - Detected mapping ambiguity when using @TypeAlias on a class with generics type.
* DATACMNS-484 - Invalid grammar in exception message in RepositoryFactorySupport.
* DATACMNS-483 - Support for wrapper types as return type on query methods.


Changes in version 1.7.2.RELEASE (2014-04-15)
---------------------------------------------
** Bug
    * [DATACMNS-477] - PageableHandlerMethodArgumentResolver.setFallbackPageable(null) does not work as specified
    * [DATACMNS-479] - Regression in PersistentEntity detection for concrete Map types
    * [DATACMNS-485] - Detected mapping ambiguity when using @TypeAlias on a class with generics type

** Improvement
    * [DATACMNS-478] - Spring Data Commons should be buildable using Java 8
    * [DATACMNS-484] - Invalid grammar in exception message in RepositoryFactorySupport

** Task
    * [DATACMNS-488] - Release 1.7.2

Changes in version 1.8.0.M1 (2014-03-30)
----------------------------------------
** Bug
    * [DATACMNS-447] - AbstractMappingContext.getPersistentEntity: Order of strict checking and shouldCreatePersistentEntity is wrong
    * [DATACMNS-453] - NullPointerException at listing non-CRUD repositories in RepositoryMetadata.isPageableRepository()
    * [DATACMNS-460] - Repositories do not support array return type.
    * [DATACMNS-462] - AbstractPersistentProperties prevents collection and map properties from being fully initialized upfront
    * [DATACMNS-477] - PageableHandlerMethodArgumentResolver.setFallbackPageable(null) does not work as specified
    * [DATACMNS-479] - Regression in PersistentEntity detection for concrete Map types

** Improvement
    * [DATACMNS-138] - Document the lazy-init behavior of the AuditorAware (in the javadoc of the class as well as in the reference)
    * [DATACMNS-243] - Pull up property access improvement from MongoPersistentProperty
    * [DATACMNS-365] - @LastModifiedBy and @LastModifiedDate don't work on setters
    * [DATACMNS-437] - Move GeoLocation object to Spring Data Commons.
    * [DATACMNS-451] - Add custom CollectionFactory to customize collection and map instance creation.
    * [DATACMNS-456] - RepositoryConfigurationSource should expose method to lookup String attributes
    * [DATACMNS-457] - MappingContext should expose managed types and whether it has a PersistentEntity for a type
    * [DATACMNS-458] - Introduce PersistentEntities value object
    * [DATACMNS-461] - Cleanups in auditing configuration support
    * [DATACMNS-466] - Detect invalid Spring version earlier
    * [DATACMNS-468] - Remove obsolete generics for BeanWrapper
    * [DATACMNS-475] - Add Jackson module to deserialize new geo types
    * [DATACMNS-478] - Spring Data Commons should be buildable using Java 8
    * [DATACMNS-480] - Add EntityInformation implementaiton based on PersistentEntity
    * [DATACMNS-482] - Geospatial Types should be serializable

** New Feature
    * [DATACMNS-397] - Add support for pagination, without the need of a count query
    * [DATACMNS-448] - Add support for 'remove', 'delete' keyword in order to be able to trigger store specific delete by queries.
    * [DATACMNS-452] - Move types from store modules into Spring Data Commons
    * [DATACMNS-474] - Allow conversion of Distance in other Metrics

** Task
    * [DATACMNS-450] - Release 1.8 M1
    * [DATACMNS-464] - AbstractFallbackTransactionAttributeSource should consider repository target method transaction settings as fallback
    * [DATACMNS-465] - Clean up template.mf
    * [DATACMNS-470] - Remove code deprecated in 1.6
    * [DATACMNS-471] - Add unit tests for PagedResourcesAssembler setup via XML

Changes in version 1.7.1.RELEASE (2014-03-13)
---------------------------------------------
** Bug
    * [DATACMNS-447] Soften too strict strickt-check in MappingContext.
    * [DATACMNS-453] Fix NPE in isPageableRepository() for Repositories without a findAll() method.
    * [DATACMNS-460] Repository metadata now supports array return types for query methods.
    * [DATACMNS-462] AbstractPersistentProperty considers collections and maps entities now.

** Improvement
    * [DATACMNS-466] More aggressive checks for the correct Spring version.

** Task
    * [DATACMNS-465] Polished template.mf

Changes in version 1.6.5.RELEASE (2014-03-10)
---------------------------------------------
** Bug
    * [DATACMNS-442] - Additional documentation on @NoRepositoryBean annotation for intermediate repository interface.
    * [DATACMNS-460] - Support for repository queries returning array type.
    * [DATACMNS-462] - Fully initialize collection and map properties.

Changes in version 1.7.0.RELEASE (2014-02-24)
---------------------------------------------
** Bug
    * [DATACMNS-432] - ConcurrentModificationException in Repositories.getRepoInfoFor(Repositories.java:183)
    * [DATACMNS-436] - Order.ignoreCase not taken into account in equals(), hashCode() and toString()
    * [DATACMNS-441] - Analyzing @Query annotated bridge methods lead to NPEs during QueryMethod processing in Java 8
    * [DATACMNS-442] - ID type not detected for intermediate repository interface

** Improvement
    * [DATACMNS-433] - Add IsLike and IsNotLike
    * [DATACMNS-434] - Update spring-data-parent's slf4j dependencies to version 1.7.5
    * [DATACMNS-439] - AnnotationRepositoryConfigurationSource support for REGEX
    * [DATACMNS-440] - Special map type causes fallback to Object in ParameterizedTypeInformation
    * [DATACMNS-446] - Add toString() methods to ClassTypeInformation

** Task
    * [DATACMNS-443] - Release 1.7 GA.
    * [DATACMNS-444] - DefaultPersistentPropertyPath should drop null path segments in toDotPath(…)
    * [DATACMNS-445] - Documentation overhaul

Changes in version 1.6.4.RELEASE (2014-02-17)
---------------------------------------------
** Bug
    * [DATACMNS-407] - Incorrect prev and next links when using paging and sorting
    * [DATACMNS-412] - Exception ' java.lang.IllegalArgumentException: Not an managed type' upon a tomcat context reload
    * [DATACMNS-429] - PageRequest constructor documentation parameter order incorrect.
    * [DATACMNS-432] - ConcurrentModificationException in Repositories.getRepoInfoFor(Repositories.java:183)
    * [DATACMNS-436] - Order.ignoreCase not taken into account in equals(), hashCode() and toString()

** Improvement
    * [DATACMNS-433] - Add IsLike and IsNotLike
    * [DATACMNS-439] - AnnotationRepositoryConfigurationSource support for REGEX
    * [DATACMNS-440] - Special map type causes fallback to Object in ParameterizedTypeInformation

** Task
    * [DATACMNS-417] - Add contribution guidelines
    * [DATACMNS-422] - Mitigate semantic changes in Spring 4.0's GenericTypeResolver
    * [DATACMNS-438] - Release 1.6.4

Changes in version 1.7.0.RC1 (2014-01-29)
-----------------------------------------
** Bug
    * [DATACMNS-366] - PageableArgumentResolver does not support list of properties to sort on
    * [DATACMNS-379] - SortHanderMethodArgumentResolver fails to resolve comma-only sort parameter
    * [DATACMNS-407] - Incorrect prev and next links when using paging and sorting
    * [DATACMNS-408] - Guard against invalid values when resolving pagination and sorting parameters from web requests
    * [DATACMNS-412] - Exception 'java.lang.IllegalArgumentException: Not an managed type' upon a tomcat context reload
    * [DATACMNS-415] - Performance improvements in configuration subsystem
    * [DATACMNS-419] - PagedResourcesAssemblerArgumentResolver fails for methods with templated mappings
    * [DATACMNS-429] - PageRequest constructor documentation parameter order incorrect.

** Improvement
    * [DATACMNS-402] - Add support for sorting by a QueryDSL OrderSpecifier.
    * [DATACMNS-406] - Tighten contract for RepositoryMetadata implementations
    * [DATACMNS-414] - Remove unnecessary generic type arguments in AuditingHandler
    * [DATACMNS-416] - Provide means to eagerly enforce CDI repository beans
    * [DATACMNS-418] - PagedResourcesAssembler should add self link to resources
    * [DATACMNS-420] - Provide API to easily create repository bean definitions
    * [DATACMNS-426] - ResourceMetadata should expose an isPagingRepository() method

** Task
    * [DATACMNS-417] - Add contribution guidelines
    * [DATACMNS-421] - Clean up pom.xml after changes in Spring Data build
    * [DATACMNS-422] - Mitigate semantic changes in Spring 4.0's GenericTypeResolver
    * [DATACMNS-423] - Deprecate Jackson 1.x based repository initializers
    * [DATACMNS-425] - Release Spring Data Commons 1.7.0.RC1
    * [DATACMNS-430] - Use Jackson version properties from build parent
    * [DATACMNS-431] - Code cleanups

Changes in version 1.6.3.RELEASE (2013-12-11)
---------------------------------------------
** Bug
    * [DATACMNS-366] - PageableArgumentResolver does not support list of properties to sort on
    * [DATACMNS-377] - All elements are returned if pageSize = 0
    * [DATACMNS-379] - SortHanderMethodArgumentResolver fails to resolve comma-only sort parameter
    * [DATACMNS-387] - Potential NullPointerExceptions in PartTree area
    * [DATACMNS-390] - ConcurrentModificationException in MappingContextTypeInformationMapper.resolveTypeFrom
    * [DATACMNS-393] - Improve CRUD Method detection in DefaultCrudMethods
    * [DATACMNS-408] - Guard against invalid values when resolving pagination and sorting parameters from web requests

** Improvement
    * [DATACMNS-388] - Improve generics declaration in HateoasAwareSpringDataWebConfiguration
    * [DATACMNS-406] - Tighten contract for RepositoryMetadata implementations

** Task
    * [DATACMNS-395] - RepositoryFactorySupport should cache RepositoryInformation instances
    * [DATACMNS-409] - Release 1.6.3

Changes in version 1.7.0.M1 (2013-11-19)
----------------------------------------
** Bug
    * [DATACMNS-363] - Unicode characters not supported in property reference expressions
    * [DATACMNS-374] - NPE is thrown when populating the repository
    * [DATACMNS-376] - Repositories cannot deal with CGLib proxied classes
    * [DATACMNS-377] - All elements are returned if pageSize = 0
    * [DATACMNS-385] - DefaultRepositoryInformation#getTargetClassMethod matches wrong save-Method if Entity implements Iterable
    * [DATACMNS-387] - Potential NullPointerExceptions in PartTree area
    * [DATACMNS-390] - ConcurrentModificationException in MappingContextTypeInformationMapper.resolveTypeFrom
    * [DATACMNS-393] - Improve CRUD Method detection in DefaultCrudMethods

** Improvement
    * [DATACMNS-90] - Allow Repository namespace handler to be configured to scan for inner class repositories
    * [DATACMNS-243] - Pull up property access improvement from MongoPersistentProperty
    * [DATACMNS-368] - Add test to PartTree for property that contain keyword sequences.
    * [DATACMNS-381] - Improve exception messages in PropertyReferenceException
    * [DATACMNS-382] - Remove copy of AnnotationTypeFilter in RepositoryComponentProvider and reuse version from Spring Core.
    * [DATACMNS-386] - Upgrade to Spring 3.2.x baseline
    * [DATACMNS-388] - Improve generics declaration in HateoasAwareSpringDataWebConfiguration
    * [DATACMNS-392] - Allow dedicated control over over instantiation time of repositories
    * [DATACMNS-400] - Expose findAnnotation(…) on persistent property
    * [DATACMNS-401] - Some cleanups regarding generics and deprecation warnings

** New Feature
    * DATACMNS-364] - Add ability to override repository CRUD methods using explicit query declarations.
    * DATACMNS-384] - Introduce Version value object
    * DATACMNS-389] - Add support to configure Auditing via JavaConfig.

** Task
    * [DATACMNS-391] - Ensure compatibility with Spring Framework 4.0
    * [DATACMNS-395] - RepositoryFactorySupport should cache RepositoryInformation instances
    
Changes in version 1.6.2.RELEASE (2013-10-25)
---------------------------------------------
** Bug
    * [DATACMNS-374] - NPE is thrown when populating the repository
    * [DATACMNS-376] - Repositories cannot deal with CGLib proxied classes
    * [DATACMNS-385] - DefaultRepositoryInformation#getTargetClassMethod matches wrong save-Method if Entity implements Iterable

** Improvement
    * [DATACMNS-368] - Add test to PartTree for property that contain keyword sequences.
    * [DATACMNS-382] - Remove copy of AnnotationTypeFilter in RepositoryComponentProvider and reuse version from Spring Core.

** Task
    * [DATACMNS-378] - Release 1.6.2

Changes in version 1.6.1.RELEASE (2013-09-09)
---------------------------------------------
** Bug
    * [DATACMNS-363] - Revert: Unicode characters not supported in property reference expressions


Changes in version 1.6.0.RELEASE (2013-09-09)
---------------------------------------------
** Bug
    * [DATACMNS-181] - page.page=3&page.size=30 and  @PageableDefaults(pageNumber = 3, value = 30) don't return the same page.
    * [DATACMNS-304] - Misleading documentation of page parameter resolved by PageableArgumentResolver
    * [DATACMNS-341] - RepositoryFactorySupport proxy classloader
    * [DATACMNS-352] - SortHandlerMethodArgumentResolver and PageableHandlerMethodArgumentResolver have inconsistent property names
    * [DATACMNS-353] - Mandatory transitive dependency to Spring HATEOS errantly added in 1.6.RC1
    * [DATACMNS-358] - The current page number cannot be greater or equal to the total number of pages
    * [DATACMNS-359] - Incorrect deprecation message in PageableArgumentResolver
    * [DATACMNS-360] - Unable to use @Profile annotation on scanned repository interfaces
    * [DATACMNS-362] - Potential concurrency issues in Repositories
    * [DATACMNS-363] - Unicode characters not supported in property reference expressions

** Improvement
    * [DATACMNS-351] - Add setFallbackSort to SortHandlerMethodArgumentResolver
    * [DATACMNS-355] - ReflectionAuditingBeanWrapper should use ConversionService to convert DateTime into target type
    * [DATACMNS-356] - Let Parameters work with Spring 4's DefaultParameterNameDiscoverer if available
    * [DATACMNS-357] - Add support to detect persistent state for primitive ids out of the box
    * [DATACMNS-361] - Add a README.md file with project description

** Task
    * [DATACMNS-315] - Release 1.6 Final

Changes in version 1.6.0.RC1 (2013-08-01)
-----------------------------------------
** Bug
    * [DATACMNS-343] - PageableHandlerMethodArgumentResolver should replace pagination parameters not add them
    * [DATACMNS-345] -  AbstractMappingContext doesn't consider the actual type of property of a generic collection type. 

** Improvement
    * [DATACMNS-335] - PageableHandlerMethodArgumentResolver should allow configuring maximum page size
    * [DATACMNS-336] - Make configuration classes backing @EnableSpringDataWebSupport public
    * [DATACMNS-337] - PersistentProperty should expose actual type
    * [DATACMNS-342] - Open up API in BasicPersistentEntity to support more advanced id property selection mechanisms.
    * [DATACMNS-344] - Allow Repositories to work with non-CrudRepositories
    * [DATACMNS-349] - Open up SPI in DefaultTypeMapper to provide a method to get the Type alias for a given TypeInformation
    * [DATACMNS-350] - Provide access to parameter annotations in Parameter
    
** Task
    * [DATACMNS-314] - Release 1.6 RC1

Changes in version 1.6.0.M1 (2013-05-31)
----------------------------------------
** Bug
    * [DATACMNS-281] - Change Order class so that case insensitive sorts can be performed by setting an ignore case flag
    * [DATACMNS-283] - Improve exception message for failed instantiations in ReflectionEntityInstatiator
    * [DATACMNS-285] - Spring Data Commons Maven artifactId seems outdated on springsource.org
    * [DATACMNS-300] - ReflectionEntityInstantiator should actually throw created exception
    * [DATACMNS-306] - RepositoryBeanDefinitionBuilder does not populate the source of created BeanDefinitions
    * [DATACMNS-309] - TypeDiscoverer does not correctly resolve nested property path expressions
    * [DATACMNS-320] - Mapping ambiguation detection is too aggressive
    * [DATACMNS-322] - CdiRepositoryBean should implement PassivationCapable
    * [DATACMNS-323] - PageImpl.getTotalPages() possibly returns incorrect result when PageImpl is instantiated with simple constructor
    * [DATACMNS-326] - RepositoryInterfaceAwareBeanFactoryPostProcessor should implement PriorityOrdered
    * [DATACMNS-327] - AbstractMappingContext has to init domain classes in afterPropertiesSet()
    * [DATACMNS-330] - Ease configuration for Spring MVC integration
    * [DATACMNS-331] - Add ResourceAssembler implementation to convert Page instances into PagedResources
    * [DATACMNS-333] - Support for Jackson 2.x for JSON repository populators

** Improvement
    * [DATACMNS-117] - Add HandlerMethodArgumentResolver alternative to the PageableArgumentResolver
    * [DATACMNS-282] - Improve caching in AnnotationBasedPersistentProperty
    * [DATACMNS-284] - As a user I'd like to use Spring Data Commons without changes in Virgo 3.6.0.RELEASE
    * [DATACMNS-286] - Extend Pageable/Page APIs to allow accessing Pageables pointing to the next or previous Page
    * [DATACMNS-287] - Polish JavaDoc
    * [DATACMNS-288, DATACMNS-289] - Upgrade to Spring Data Build 1.0.2.RELEASE
    * [DATACMNS-295] - Ability to set modifyOnCreation flag on AuditingHandler
    * [DATACMNS-299] - Scope of CDI bean should default to ApplicationScoped
    * [DATACMNS-301] - Upgrade to Querydsl 3.0.0
    * [DATACMNS-303] - Add support for count projections
    * [DATACMNS-305] - Add toString() methods to PersistentProperty implementations
    * [DATACMNS-318] - Introduce dedicated annotation to enable exception translation
    * [DATACMNS-319] - Repositories should lookup repository beans less aggressively
    * [DATACMNS-324] - Open up OSGi manifest for Spring 4
    * [DATACMNS-325] - Open up lower boundary of Slf4j in manifest
    * [DATACMNS-328] - Typo in field name of PageableArgumentResolver
    * [DATACMNS-329] - Add integration test to guard against potential regressions for SPR-10517
    * [DATACMNS-334] - Adapt to new features in Spring Data Build 1.1.0

** New Feature
    * [DATACMNS-310] - Integrate best-effort TransactionManager from Spring Data Neo4j
    * [DATACMNS-311] - TypeDiscoverer fails to resolve properties expressed through read methods in supertypes

** Task
    * [DATACMNS-313] - Release 1.6 M1
    * [DATACMNS-332] - Performance improvements in conversion system hotspots

Changes in version 1.5.1.RELEASE (2013-04-16)
---------------------------------------------
** Bug
    * [DATACMNS-283] - Improve exception message for failed instantiations in ReflectionEntityInstatiator
    * [DATACMNS-285] - Spring Data Commons Maven artifactId seems outdated on springsource.org
    * [DATACMNS-300] - ReflectionEntityInstantiator should actually throw created exception
    * [DATACMNS-306] - RepositoryBeanDefinitionBuilder does not populate the source of created BeanDefinitions
    * [DATACMNS-309] - TypeDiscoverer does not correctly resolve nested property path expressions

** Improvement
    * [DATACMNS-282] - Improve caching in AnnotationBasedPersistentProperty
    * [DATACMNS-284] - As a user I'd like to use Spring Data Commons without changes in Virgo 3.6.0.RELEASE
    * [DATACMNS-287] - Polish JavaDoc
    * [DATACMNS-288, DATACMNS-289] - Upgrade to Spring Data Build 1.0.2.RELEASE
    * [DATACMNS-305] - Add toString() methods to PersistentProperty implementations

** New Feature
    * [DATACMNS-311] - TypeDiscoverer fails to resolve properties expressed through read methods in supertypes

** Task
    * [DATACMNS-312] - Release 1.5.1

Changes in version 1.5.0.RELEASE (2013-02-07)
---------------------------------------------
** Bug
    * [DATACMNS-227] - ResourceReaderRepositoryPopulatorBeanDefinitionParser should parse location attribute not locations
    * [DATACMNS-257] - PropertyPath cannot deal with all uppercase fields
    * [DATACMNS-260] - Separate SpEL expression evaluation from PersistentEntity parameter value lookup
    * [DATACMNS-263] - CDI integration with openEJB fails
    * [DATACMNS-264] - Javadoc of org.springframework.data.web.PageableDefaults links to invalid classes
    * [DATACMNS-271] - AnnotationBasedPersistentProperty should cache annotation lookups
    * [DATACMNS-276] - ParameterizedTypeInformation is missing hashCode() method

** Improvement
    * [DATACMNS-168] - Allow customizing the bean name for repository beans
    * [DATACMNS-246] - misleading JavaDoc suggests that result pages are 0-based (but they are 1 based)
    * [DATACMNS-248] - Move to Slf4j API for logging
    * [DATACMNS-253] - IndexOutOfBoundsException in Repository proxy when missing parameters
    * [DATACMNS-254] - Auditable's identifier type constrained to the the same type as Persistable's
    * [DATACMNS-255] - Make TypeFilterParser public
    * [DATACMNS-269] - Add support for mapping annotations on accessor methods
    * [DATACMNS-274] - Fix package cycle in mapping subsystem
    * [DATACMNS-275] - UserCredentials should provide method to get obfuscated password
    * [DATACMNS-278] - Add Converter implementations for JodaTime types

** New Feature
    * [DATACMNS-251] - Introduce API to determine is-new state of entities.
    * [DATACMNS-256] - Expose PersistentEntity on Repositories wrapper object

** Task
    * [DATACMNS-258] - Copy edit reference documentation
    * [DATACMNS-265] - Polish JavaDoc
    * [DATACMNS-266] - Use new Maven build setup
    * [DATACMNS-270] - Fix merge testing test case in Cross Store module
    * [DATACMNS-273] - Upgrade to Spring HATEOAS 0.4
    * [DATACMNS-277] - Document new auditing features
    * [DATACMNS-279] - Release 1.5.0

Changes in version 1.4.1.RELEASE (2013-02-07)
---------------------------------------------
** Bug
    * [DATACMNS-257] - PropertyPath cannot deal with all uppercase fields
    * [DATACMNS-276] - ParameterizedTypeInformation is missing hashCode() method

** Improvement
    * [DATACMNS-168] - Allow customizing the bean name for repository beans
    * [DATACMNS-253] - IndexOutOfBoundsException in Repository proxy when missing parameters
    * [DATACMNS-254] - Auditable's identifier type constrained to the the same type as Persistable's

** Task
    * [DATACMNS-280] - Release 1.4.1

Changes in version 1.4.0.RELEASE (2012-10-09)
---------------------------------------------
** Bug
    * [DATACMNS-176] - StackOverflowError when inserted object is a CGLIB proxy
    * [DATACMNS-221] - Parsing of method names with non-ascii characters fails in some cases
    * [DATACMNS-226] - ConfigurableTypeInformationMapper caches too aggressively
    * [DATACMNS-228] - Mapping sub-system should exclude Groovy introduced properties from persistent properties
    * [DATACMNS-233] - DomainClassConverter should gracefully return null for null sources or empty strings
    * [DATACMNS-235] - Enforce ordering of bean creation when using custom repository implementations

** Improvement
    * [DATACMNS-146] - Ability to specify default sort on @PageableDefaults
    * [DATACMNS-220] - In query method names not containing "By" get/find/read prefixes are not stripped
    * [DATACMNS-222] - AbstractRepositoryPopulatorFactoryBean javdoc is incorrect
    * [DATACMNS-223] - RepositoryPopulator should log each resource that it processes
    * [DATACMNS-224] - As a developer, I want an application event to be emitted when RepositoryPopulator finishes
    * [DATACMNS-229] - RepositoryInterfaceAwareBeanPostProcessor should use ConfigurableListableBeanFactory#getBeanClassLoader in #getClassForPropertyValue
    * [DATACMNS-230] - Clarify usage of Sort in special parameter handling section of the reference documentation
    * [DATACMNS-231] - Polish Sort implementation and JavaDoc
    * [DATACMNS-242] - Improve exception message in error cases of QueryMethod

** Task
    * [DATACMNS-192] - Release 1.4 GA
    * [DATACMNS-207] - Remove deprecated method from PersistentProperty
    * [DATACMNS-225] - Update Querydsl Maven plugin to 1.0.4
    * [DATACMNS-240] - Upgrade to Querydsl 2.8.0
    * [DATACMNS-241] - Upgrade to Spring HATEOAS 0.3.0.RELEASE

Changes in version 1.4.0.RC1 (2012-08-23)
-----------------------------------------
** Bug
    * [DATACMNS-205] - Reference docs build broken

** Improvement
    * [DATACMNS-209] - MappingContextEvent should provide info about which MappingContext it originated from.
    * [DATACMNS-210] - Documentation references repository element which is no longer valid
    * [DATACMNS-211] - Extend TypeInformation abstraction
    * [DATACMNS-212] - Sonargraph checks
    * [DATACMNS-214] - AbstractMappingContext.getPersistentEntity(…) should return null for simple types
    * [DATACMNS-215] - Remove EntityValidators from MappingContext API
    * [DATACMNS-218] - Make metadata access possible in org.springframework.data.history.Revision
    * [DATACMNS-219] - Make Spring 3.1.2.RELEASE default Spring dependency version
    
** Task
    * [DATACMNS-213] - List all compile time dependencies explicitly
    * [DATACMNS-216] - Remove deprecations from AbstractMappingContext
    * [DATACMNS-217] - Release 1.4 RC1


Changes in version 1.4.0.M1 (2012-07-23)
----------------------------------------
** Bug
    * [DATACMNS-178] - Invalid compile time dependency on JUnit
    * [DATACMNS-180] - Java transient fields should not be considered transient for persistence

** Defect
    * [DATACMNS-189] - Typo in section 1.2

** Improvement
    * [DATACMNS-72] - Approach Sonar results to improve code quality
    * [DATACMNS-164] - Allow pagination value objects to be used by marshaling infrastructure like JAXB or JSON 
    * [DATACMNS-172] - PropertyPath should throw more meaningful exception if properties cannot be found
    * [DATACMNS-174] - Part.Type should expose keywords supported
    * [DATACMNS-177] - Fix OSGi bundle identifier
    * [DATACMNS-179] - MappingContext initialEntitySet should get added after the ApplicationContext is completely set up
    * [DATACMNS-185] - Expose initialization of AbstractMappingContext through method
    * [DATACMNS-186] - BasicPersistentEntity should reject multiple id properties
    * [DATACMNS-187] - Let the Revision class in the history package also expose the revision date
    * [DATACMNS-193] - Would rather not use Iterable on query methods metadata

** New Feature
    * [DATACMNS-47] - Support Java-based Configuration of Repositories
    * [DATACMNS-58] - As a developer I want to be able to initialize a repository with data (<repository:initialize ... />)

** Task
    * [DATACMNS-173] - Upgrade Maven compiler and surefire plugins
    * [DATACMNS-175] - JavaDoc should be built before assembly
    * [DATACMNS-188] - AbstractMappingContext.getComponentTypeRecursively(…) is obsolete and should be removed
    * [DATACMNS-191] - Release 1.4.0 M1
    * [DATACMNS-201] - Fix critical warnings in Sonar
    * [DATACMNS-202] - Move common helpers for BeanDefinitionParsers from Mongo module into Commons
    * [DATACMNS-203] - Re-enable accidentally disabled unit tests

Changes in version 1.3.2.RELEASE (2012-07-23)
---------------------------------------------
** Improvement
    * [DATACMNS-185] - Expose initialization of AbstractMappingContext through method
    * [DATACMNS-186] - BasicPersistentEntity should reject multiple id properties
    * [DATACMNS-187] - Let the Revision class in the history package also expose the revision date

** Task
    * [DATACMNS-188] - AbstractMappingContext.getComponentTypeRecursively(…) is obsolete and should be removed
    * [DATACMNS-204] - Release 1.3.2
    
    
Changes in version 1.3.1.RELEASE (2012-06-18)
---------------------------------------------
** Bug
    * [DATACMNS-178] - Invalid compile time dependency on JUnit
    * [DATACMNS-180] - Java transient fields should not be considered transient for persistence

** Improvement
    * [DATACMNS-172] - PropertyPath should throw more meaningful exception if properties cannot be found
    * [DATACMNS-174] - Part.Type should expose keywords supported
    * [DATACMNS-177] - Fix OSGi bundle identifier
    * [DATACMNS-179] - MappingContext initialEntitySet should get added after the ApplicationContext is completely set up

** Task
    * [DATACMNS-173] - Upgrade Maven compiler and surefire plugins
    * [DATACMNS-175] - JavaDoc should be built before assembly
    * [DATACMNS-184] - Release 1.3.1


Changes in version 1.3.0.RELEASE (2012-05-16)
---------------------------------------------
** Bug
    * [DATACMNS-170] - Potential NullPointerException in ReflectionEntityInformation

** Improvement
    * [DATACMNS-171] - QueryMethod should expose whether the method will be returning an entity

** Task
    * [DATACMNS-149] - Release 1.3.0 Final
    * [DATACMNS-162] - Briefly document CDI integration for repositories


Changes in version 1.3.0.RC2 (2012-05-02)
-----------------------------------------

** Bug
    * [DATACMNS-153] - OSGi issue when using a Repository that extends QueryDslPredicateExecutor (Spring Data + QueryDsl
    * [DATACMNS-154] - Overwriting of delete(T entity) saveAndFlush(T entity); does not work anymore
    * [DATACMNS-157] - @Query in extending interface is not picked up correctly
    * [DATACMNS-160] - Regression of Repository instances with only delete* methods

** Improvement
    * [DATACMNS-159] - Example 1.16. Custom repository factory bean is outdated
    * [DATACMNS-167] - TypeDiscoverer should not consider types implementing Iterable<…> collection like

** Refactoring
    * [DATACMNS-143] - Remove deprecations in MappingContextEvent
    * [DATACMNS-166] - Improve API of Repositories / RepositoryFactoryInformation

** Task
    * [DATACMNS-156] - Remove deprecated persistence package
    * [DATACMNS-161] - Upgrade to Querydsl 2.5.0
    * [DATACMNS-165] - Release 1.3.0.RC2


Changes in version 1.3.0.RC1 (2012-04-16)
-----------------------------------------

** Bug
    * [DATACMNS-120] - PreferredConstructor.Parameter does not have equals(...) and hashCode() methods
    * [DATACMNS-132] - NullPointerException AbstractPersistentProperty inside isEntity
    * [DATACMNS-133] - Documented Configuration of Conversion Service with DomainClassConverter Does Not Work
    * [DATACMNS-139] - StackOverflowError from infinite recursion in PropertyPath.create:326
    * [DATACMNS-150] - Repository lookup in DomainClassConverter and DomainClassPropertyEditorRegistrar throws ClassCastException if not all repositories implement CrudRepository

** Improvement
    * [DATACMNS-111] - Add dynamic finder keywords StartingWith, EndingWith & Containing
    * [DATACMNS-134] - EntityInstantiator should be capable of instantiating member classes
    * [DATACMNS-141] - Add Before and After as keywords for query derivation
    * [DATACMNS-142] - Improve API of UserCredentials
    * [DATACMNS-151] - Improve generics in CrudRepository.save(…)
    * [DATACMNS-152] - Improve API in mapping subsystem

** New Feature
    * [DATACMNS-135] - Add basic infrastructure for versioning stores

** Task
    * [DATACMNS-144] - Polish reference documentation for repositories
    * [DATACMNS-145] - Add general list of supported keywords to reference documentation
    * [DATACMNS-148] - Release 1.3.0.RC1

Changes in version 1.3.0.M1 (2012-02-03)
----------------------------------------
** Bug
    * [DATACMNS-125] - QueryExecutorMethodInterceptor does not reject interfaces with query methods if no QueryLookupStrategy defined

** Improvement
    * [DATACMNS-119] - Make org.springframework.data.domain.Sort$Order implement Serializable
    * [DATACMNS-122] - Improve entity instantiation API
    * [DATACMNS-123] - Deprecate types in persistence package
    * [DATACMNS-128] - ParameterAccessor should allow to determine if parameter values contain null value
    * [DATACMNS-129] - Add CrudRepository.findAll(Iterable<ID> ids)

** New Feature
    * [DATACMNS-127] - Add helper to ease implementation of delegating EntityInformations

** Refactoring
    * [DATACMNS-74] - Consolidate entity instantiation strategies


Changes in version 1.2.1 (2012-02-03)
-------------------------------------
* [DATACMNS-125] - QueryExecutorMethodInterceptor does not reject interfaces with query methods if no QueryLookupStrategy defined
* [DATACMNS-119] - Make org.springframework.data.domain.Sort$Order implement Serializable

Changes in version 1.2.0.RELEASE (2011-12-22)
---------------------------------------------

** Bug
    * [DATACMNS-109] - Upgrade to latest Querydsl
    * [DATACMNS-114] - Wrong custom implementation automatically detected

** Improvement
    * [DATACMNS-112] - Upgrade to latest Querydsl
    * [DATACMNS-116] - Synchronisation during performance tests - GenericTypeResolver

** New Feature
    * [DATACMNS-110] - Provide infrastructure for CDI integration for repositories
    * [DATACMNS-113] - Add @ReadingConverter and @WritingConverter to resolve conversion disambiguities

** Task
    * [DATACMNS-104] - Upgrade to Spring 3.0.7.
    * [DATACMNS-118] - Releases 1.2 GA


Changes in version 1.2.0.RC1 (2011-12-6)
----------------------------------------

** Bug
    * [DATACMNS-71] - Reference documentation contains invalid cross reference
    * [DATACMNS-88] - TypeDiscoverer.getMapValueType causes ArrayIndexOutOfBoundsException in some cases
    * [DATACMNS-92] - Invalid Entities are placed in the MappingContext - Cache
    * [DATACMNS-98] - ClassCastException on getReturnedDomainClass for variable types
    * [DATACMNS-99] - SimpleTypeHolder does not consider complex enum values as simple
    * [DATACMNS-108] - RepositoryFactorySupport throws ClassCastException for annotation based repositories

** Improvement
    * [DATACMNS-39] - TypeInformation should support WildcardType
    * [DATACMNS-77] - Limit memory consumption with cache - ClassTypeInformation
    * [DATACMNS-91] - CrudRepository exceptions
    * [DATACMNS-93] - OSGi manifest should have dynamic import package directive added
    * [DATACMNS-94] - Add more comparison operators to Type
    * [DATACMNS-95] - Document usage of DomainClassConverter, DomainClassPropertyEditor as well as PageableArgumentResolver
    * [DATACMNS-97] - PartTree should allow iterating over all parts of a given type
    * [DATACMNS-101] - Allow Subclasses of AbstractMappingContext to control the execution of getNestedTypesToAdd()
    * [DATACMNS-105] - BeanWrapper should handle exceptions itself
    * [DATACMNS-106] - Introduce getReturnedObjectType() on QueryMethod
    * [DATACMNS-107] - Allow usage of True/False for Query

** Refactoring
    * [DATACMNS-100] - SimpleTypHolder should not consider Number as simple type in general

** Task
    * [DATACMNS-103] - Setup hybrid Spring 3.0.6 / 3.1 build


Changes in version 1.2.0.M2 (2011-10-21)
----------------------------------------

** Bug
    * [DATACMNS-81] - RepositoryInterfaceAwareBeanPostProcessor potentially suffers from NullPointerException

** Improvement
    * [DATACMNS-79] - Treat empty strings as null for username and password for UserCredentials
    * [DATACMNS-82] - Increase performance by defaulting PlatformTransactionManager bean name
    * [DATACMNS-83] - RepositoryInterfaceAwareBeanPostProcessor should log not being able to load the repo interface
    * [DATACMNS-84] - Improve access to property paths
    * [DATACMNS-85] - Extend PersistentPropertyPath
    * [DATACMNS-87] - AbstractMappingContext.getPropertyPath(...) must not access the leaf property's PersistentEntity

** New Feature
    * [DATACMNS-76] - Extract core converter infrastructure from MongoDB module
    * [DATACMNS-78] - Add LessThanEquals and GreaterThanEquals as supported query keywords

** Refactoring
    * [DATACMNS-73] - Create dedicated crossstore package
    * [DATACMNS-75] - Consolidate entity instantiation strategies
    * [DATACMNS-86] - Remove o.s.d.transaction package, move ChangeSetBackedTransactionSynchronization to o.s.d.persistence

** Task
    * [DATACMNS-80] - Upgrade to Spring 3.0.6


Changes in version 1.2.0.M1 (2011-09-01)
----------------------------------------

** Bug
    * [DATACMNS-55] - java.util.Properties cannot be stored to mongodb
    * [DATACMNS-57] - Use of parameterized type in constructor arguments is not supported
    * [DATACMNS-65] - BasicPersistentEntity potentially suffers from ConcurrentModificationException
    * [DATACMNS-68] - NullPointerException in AbstractPersistentProperty::getComponentType()

** Improvement
    * [DATACMNS-56] - PreferredConstructorDiscoverer shouldn't throw an exception in case not finding a constructor
    * [DATACMNS-59] - AbstractQueryCreator should honor both static and dynamic sorting
    * [DATACMNS-60] - Polish reference documentation for repositories
    * [DATACMNS-63] - Add possibility to detect TypeInformation for a class' method's return type
    * [DATACMNS-64] - QueryMethod should reject paging methods without a Pageable argument
    * [DATACMNS-67] - QueryMethod should consider plain Iterable return types as collection query

** New Feature
    * [DATACMNS-66] - Provide infrastructure to parse IgnoreCase from query methods

** Refactoring
    * [DATACMNS-61] - Add ability to add new special parameter types to query methods
    * [DATACMNS-62] - Make accessor methods for QueryMethod type public and drop type enum


Changes in version 1.1.0.RELEASE (2011-07-21)
---------------------------------------------

General
* [DATACMNS-54] - change dependency on "querydsl-mongodb" to "querydsl-core"


Changes in version 1.1.0.RC1 (2011-07-19)
-----------------------------------------

General
* [DATACMNS-50] - Extend mapping metadata to allow defining order of PersistentProperties
* [DATACMNS-53] - Upgrade to Querydsl 2.2.0

Repositories
* [DATACMNS-49] - Create infrastructure to externalize queries
* [DATACMNS-52] - Declaring an intermediate base repository does not work correctly


Changes in version 1.1.0.M2 (2011-06-21)
----------------------------------------

General
* [DATACMNS-27] - Missing plugin repository
* [DATACMNS-31] - Check for null in arguement passed to MappingBeanHelper.isSimpleType
* [DATACMNS-42] - MappingContext does not map BigDecimal correctly
* [DATACMNS-43] - PreferredConstructorDiscoverer - wrong exception message
* [DATACMNS-46] - Make org.joda.time an optional import

Repositories
* [DATACMNS-44] - ParametersParameterAccessor iterator will never iterate...
* [DATACMNS-45] - Property check for repository methods fails for properties starting with _
* [DATACMNS-48] - Spelling errors in class names - "Executer" -> "Executor" Repositories


Changes in version 1.1.0.M1 (2011-06-02)
----------------------------------------

General
* [DATACMNS-32] - Extracted Querydsl support code from JPA and Mongo modules
* [DATACMNS-30] - Implementations of Page, Pageable and Sort are now serializable
* [DATACMNS-34] - Improved algorithm to detect persistence constructors
* [DATADOC-98] - Mapping subsystem can now work with multi-dimensional arrays and collections
* [DATADOC-109] - Refactored mapping subsystem
* [DATADOC-115] - Upgraded to Querydsl 2.2.0-beta4

Repositories
* [DATACMNS-33] - Repository.count() now returns a primitive long
* [DATACMNS-35] - Repository has now a delete(ID id) method
* [DATACMNS-36] - Improve transaction handling for repositories
* [DATACMNS-40]	- Rename @RepositoryProxy to @RepositoryDefinition
* [DATADOC-43] - Added Near and Within as keywords for query method parser


Changes in version 1.0.0 (2011-04-18)
----------------------------------------

General
* Deal with multi-dimensional arrays as property types. 

Changes in version 1.0.0.RC1 (2011-04-8)
----------------------------------------

General
* Added MappingContextAware interface 
* Made failure message customizable. 
* Changing to use source 1.5; removed some @override on interface methods

Repository
* ClassUtils.getReturnedDomainClass works for parameterized component types of Collections and Page.

Changes in version 1.0.0.M7 (2011-04-5)
----------------------------------------

General
* Added isCollectionLike() and isMap() to TypeInformation interface. 
* Refactored Property to use TypeInformation infrastructure. 
* Persistent constructor now detects non-public constructor. 
* Removed slf4j dependency 

Repository
* Expose type of a query parser Property. 
* Refactored RepositoryFactorySupport.getQueryLookupStrategy
* Made PageImpl safe to take an empty collection. 
* Domain class lookup in QueryMethod falls back to the repository domain class for methods not returning a domain class.


Changes in version 1.0.0.M6 (2011-03-25)
----------------------------------------

General
* extracted StateBackedCreator interface
* added caching to AbstractConstructorEntityInstantiator
* Use BeanUtils to instantiate objects to not enforce them to be public.


Changes in version 1.0.0.M5 (2011-03-23)
----------------------------------------

General
* Polished basic mapping infrastructure
* Changed package names for cross-store persistence support and removed unused prototype classes

Repository
* Minor API change in AbstractRepositoryConfigDefinitionParser
* Extension module for Spring MVC integration (DATAJPA-19)


Changes in version 1.0.0.M4 (2011-03-15)
----------------------------------------

General
* Fixed dependency scopes of logging libraries (DATACMNS-14)

Repository
* Improved ParameterAccessor infrastructure
* Added support for 'Distinct' keyword in finder method names (DATACMNS-15)
* Added support for 'In' and 'NotIn' keywords (DATACMNS-16)
* Introduced metamodel for entities and repositories (DATACMNS-17)
* Fixed returning wrong class PersistableEntityMetadata (DATACMNS-19)
* Introduced infrastructure to post-process RepositoryQuery instances (DATACMNS-18) 
* Renamed Repository.findById(...) to findOne(...) (DATACMNS-20)
* Changed method signature of Repository.findAll(...) and according methods to Iterable<T> (DATACMNS-21)


Changes in version 1.0.0.M3 (2011-02-09)
----------------------------------------

* Improved documentation for repositories

Changes in version 1.0.0.M2 (2011-01-31)
----------------------------------------

General
* Indexed annotation now has an "indexName" attribute

Repository
* Improvements in the pagination support
* Introduced Property abstraction for more sophisticated query method name parsing.
* Made transaction support in repository factory base classes optional

Changes in version 1.0.0.M1 (2010-12-23)
----------------------------------------

General
* Indexed annotation to indicate that a field should be indexed
* Classes for change set support including ChangeSetBackedTransactionSynchronization

Aspects
* Abstract superaspect for aspects that advice field access with a mixin for all types annotated with a given annotation.
* Abstract superaspect to advise field read and write and introduce a mixin interface.

Repository
* Base classes for the repository support
* Pagination support

