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

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

