Spring Data REST Changelog
==========================

Changes in version 2.5.6.RELEASE (2016-12-21)
---------------------------------------------
* DATAREST-959 - PUT error when merging a previously undefined array.
* DATAREST-957 - Polish most critical Sonar warnings.
* DATAREST-956 - PUT does not apply new items in nested collection.
* DATAREST-953 - PUT empties nested collection.
* DATAREST-951 - Fix example in reference documentation.
* DATAREST-950 - Fix typos in reference documentation.
* DATAREST-938 - Nested entities are replaced with new instances instead of being updated when merging.
* DATAREST-937 - Transient properties in JSON should be included in merge.
* DATAREST-932 - Release 2.5.6 (Hopper SR6).


Changes in version 2.6.0.RC1 (2016-12-21)
-----------------------------------------
* DATAREST-964 - Remove deprecations in RepositoryRestMvcConfiguration.
* DATAREST-959 - PUT error when merging a previously undefined array.
* DATAREST-957 - Polish most critical Sonar warnings.
* DATAREST-956 - PUT does not apply new items in nested collection.
* DATAREST-953 - PUT empties nested collection.
* DATAREST-951 - Fix example in reference documentation.
* DATAREST-950 - Fix typos in reference documentation.
* DATAREST-941 - Upgrade to HAL browser version that supports nested _embedded declarations.
* DATAREST-938 - Nested entities are replaced with new instances instead of being updated when merging.
* DATAREST-937 - Transient properties in JSON should be included in merge.
* DATAREST-925 - ResourceProcessor not used for nested Projection.
* DATAREST-919 - PUT/PATCH of Entity object that is a Map silently dropping elements of Map.
* DATAREST-910 - Support nested Sort properties.
* DATAREST-906 - MappingAwarePageableArgumentResolver accidentally drops default Pageable returned from delegate PageableHandlerMethodArgumentResolver.
* DATAREST-899 - User registered Hibernate 5 Jackson module should be preferred over the one registered by default.
* DATAREST-898 - Typo in EntityLookupConfiguration assertion message.
* DATAREST-897 - NestedEntitySerializer fails to serialize Map for Hibernate proxy.
* DATAREST-892 - Fix integration tests failing due to more precise Content-Type headers returned by Spring MVC 4.3.
* DATAREST-889 - JSON Patch silently nullifies property values.
* DATAREST-887 - JsonLateObjectEvaluator uses hard-coded ObjectMapper.
* DATAREST-886 - JSON Patch for arrays is broken.
* DATAREST-885 - Patch with object value omitted.
* DATAREST-883 - Sort mapping does not consider Jackson customizations in field names.
* DATAREST-881 - ResourceProcessor is not invoked if RepositoryEntityController does not return a subtype of Resources.
* DATAREST-880 - @JsonUnwrapped annotation ignored.
* DATAREST-873 - Allow excluding properties from being nullified in PUT requests.
* DATAREST-872 - Jackson's @JsonTypeInfo is not supported.
* DATAREST-868 - Fix Solr integration tests after Jackson upgrade.
* DATAREST-866 - NullPointerException from RepositoryRestConfiguration if you inject mvcValidator into RepositoryRestConfigurer.
* DATAREST-864 - NestedEntitySerializer does not support Maps.
* DATAREST-863 - REST calls to /api always redirect to HAL Browser if no accept header is specified.
* DATAREST-862 - Release 2.6 RC1 (Ingalls).
* DATAREST-859 - Broken links to included code in conditionals reference documentation.
* DATAREST-858 - Broken links to included code in security reference documentation.
* DATAREST-835 - Add persistent entity headers to single entity searches.
* DATAREST-793 - Some setter methods in RepositoryRestConfiguration do not return RepositoryRestConfiguration.
* DATAREST-607 - Jackson2DatatypeHelper should register Jackson's Hibernate 5 module automatically if present.
* DATAREST-575 - Insufficient check for the presence of a PersistentProperty in MappedProperties.
* DATAREST-573 - Add support for Spring Web MVC CORS configuration mechanisms.


Changes in version 3.0.0.M1 (2016-11-23)
----------------------------------------
* DATAREST-935 - Set up 3.0 development.
* DATAREST-934 - Release 3.0 M1 (Kay).


Changes in version 2.5.5.RELEASE (2016-11-03)
---------------------------------------------
* DATAREST-931 - PATCH for non-resource associations doesn't work as expected.
* DATAREST-915 - Release 2.5.5 (Hopper SR5).
* DATAREST-575 - Insufficient check for the presence of a PersistentProperty in MappedProperties.


Changes in version 2.5.4.RELEASE (2016-09-29)
---------------------------------------------
* DATAREST-909 - Revert Jackson-aware Sort and Pageable translation in Hopper and Gosling release trains.
* DATAREST-908 - Regression with custom controllers.
* DATAREST-906 - MappingAwarePageableArgumentResolver accidentally drops default Pageable returned from delegate PageableHandlerMethodArgumentResolver.
* DATAREST-903 - Release 2.5.4 (Hopper SR4).


Changes in version 2.4.6.RELEASE (2016-09-29)
---------------------------------------------
* DATAREST-913 - Release 2.4.6 (Gosling SR6).
* DATAREST-909 - Revert Jackson-aware Sort and Pageable translation in Hopper and Gosling release trains.
* DATAREST-908 - Regression with custom controllers.
* DATAREST-906 - MappingAwarePageableArgumentResolver accidentally drops default Pageable returned from delegate PageableHandlerMethodArgumentResolver.


Changes in version 2.4.5.RELEASE (2016-09-20)
---------------------------------------------
* DATAREST-902 - Fix order dependent DuplicateLinkListingTests.
* DATAREST-901 - Release 2.4.5 (Gosling SR5).
* DATAREST-883 - Sort mapping does not consider Jackson customizations in field names.
* DATAREST-873 - Allow excluding properties from being nullified in PUT requests.
* DATAREST-863 - REST calls to /api always redirect to HAL Browser if no accept header is specified.
* DATAREST-847 - RepositoryEntityController.saveAndReturn calls AfterSaveEvent with wrong domain object.
* DATAREST-815 - HAL browser redirect fails when proxied through Zuul.
* DATAREST-720 - HAL Browser default URI doesn't respect context path.


Changes in version 2.5.3.RELEASE (2016-09-20)
---------------------------------------------
* DATAREST-898 - Typo in EntityLookupConfiguration assertion message.
* DATAREST-897 - NestedEntitySerializer fails to serialize Map for Hibernate proxy.
* DATAREST-889 - JSON Patch silently nullifies property values.
* DATAREST-887 - JsonLateObjectEvaluator uses hard-coded ObjectMapper.
* DATAREST-886 - JSON Patch for arrays is broken.
* DATAREST-885 - Patch with object value omitted.
* DATAREST-883 - Sort mapping does not consider Jackson customizations in field names.
* DATAREST-881 - ResourceProcessor is not invoked if RepositoryEntityController does not return a subtype of Resources.
* DATAREST-880 - @JsonUnwrapped annotation ignored.
* DATAREST-873 - Allow excluding properties from being nullified in PUT requests.
* DATAREST-872 - Jackson's @JsonTypeInfo is not supported.
* DATAREST-866 - NullPointerException from RepositoryRestConfiguration if you inject mvcValidator into RepositoryRestConfigurer.
* DATAREST-864 - NestedEntitySerializer does not support Maps.
* DATAREST-863 - REST calls to /api always redirect to HAL Browser if no accept header is specified.
* DATAREST-859 - Broken links to included code in conditionals reference documentation.
* DATAREST-858 - Broken links to included code in security reference documentation.
* DATAREST-847 - RepositoryEntityController.saveAndReturn calls AfterSaveEvent with wrong domain object.
* DATAREST-842 - Release 2.5.3 (Hopper SR3).


Changes in version 2.6.0.M1 (2016-07-27)
----------------------------------------
* DATAREST-856 - Integrate version badge from spring.io.
* DATAREST-852 - User placeholder property for JSR-303 API.
* DATAREST-849 - Remove obsolete reference to ConversionService.
* DATAREST-848 - Upgrade to latest HAL browser.
* DATAREST-847 - RepositoryEntityController.saveAndReturn calls AfterSaveEvent with wrong domain object.
* DATAREST-840 - Make sure Jackson HandlerInstantiator can use Spring dependency injection.
* DATAREST-837 - Move ResourceProcessor invoking infrastructure to Spring HATEOAS.
* DATAREST-815 - HAL browser redirect fails when proxied through Zuul.
* DATAREST-806 - Projections are no longer applied to collection result.
* DATAREST-805 - RepositoryConstraintViolationExceptionMessage produces inaccurate output.
* DATAREST-803 - Release 2.6 M1 (Ingalls).
* DATAREST-801 - Nested validation errors reported as top level ones.


Changes in version 2.5.2.RELEASE (2016-06-15)
---------------------------------------------
* DATAREST-815 - HAL browser redirect fails when proxied through Zuul.
* DATAREST-806 - Projections are no longer applied to collection result.
* DATAREST-805 - RepositoryConstraintViolationExceptionMessage produces inaccurate output.
* DATAREST-804 - Release 2.5.2 (Hopper SR2).
* DATAREST-801 - Nested validation errors reported as top level ones.


Changes in version 2.5.1.RELEASE (2016-04-06)
---------------------------------------------
* DATAREST-802 - Release 2.5.1 (Hopper SR1).


Changes in version 2.5.0.RELEASE (2016-04-06)
---------------------------------------------
* DATAREST-799 - Add pull request template.
* DATAREST-798 - Nested validation errors reported as top level ones.
* DATAREST-794 - Build for Solr integration tests broken after upgrade to Solr 5.5 in Spring Data Solr.
* DATAREST-792 - PUT request for item resource with customized entity lookup fails.
* DATAREST-791 - Repository with EntityLookup not resolving for POST on an Association-Ressource.
* DATAREST-790 - Release 2.5 GA (Hopper).
* DATAREST-720 - HAL Browser default URI doesn't respect context path.


Changes in version 2.5.0.RC1 (2016-03-18)
-----------------------------------------
* DATAREST-787 - Remove dependency to JSON Patch library.
* DATAREST-782 - Release 2.5 RC1 (Hopper).
* DATAREST-776 - Support for lookup types.
* DATAREST-775 - Support for associations in nested entities.
* DATAREST-774 - Separate integration tests from core ones.
* DATAREST-770 - Downgrade to Jackson 2.6.5 until 2.7.2 is released.


Changes in version 2.4.4.RELEASE (2016-02-23)
---------------------------------------------
* DATAREST-766 - Release 2.4.4 (Gosling SR4).
* DATAREST-754 - Spring Data REST throws NPE when exposing JSON Schema for a Groovy domai object.
* DATAREST-747 - ProjectionDefinitionConfiguration does not select projection for most concrete type.
* DATAREST-743 - Rest Endpoints produce HttpMessageNotWritableException sometimes after restarts.


Changes in version 2.5.0.M1 (2016-02-12)
----------------------------------------
* DATAREST-765 - Make sure Solr tests run with Spring Data Solr 2.0 (Solr 5).
* DATAREST-758 - Add code of conduct.
* DATAREST-757 - Upgrade to Spring Data Solr 2.0.
* DATAREST-756 - Release 2.5 M1 (Hopper).
* DATAREST-754 - Spring Data REST throws NPE when exposing JSON Schema for a Groovy domai object.
* DATAREST-747 - ProjectionDefinitionConfiguration does not select projection for most concrete type.
* DATAREST-743 - Rest Endpoints produce HttpMessageNotWritableException sometimes after restarts.
* DATAREST-741 - Deserialization of association URIs does not consider EntityLookups.
* DATAREST-740 - Remove Cassandra integration tests.
* DATAREST-726 - Move ResourceProcessorHandlerMethodReturnValueHandler to Resolvable type to be able to move it to Spring HATEOAS.
* DATAREST-724 - Add SPI to allow customizing which property should uniquely identify an item resource.
* DATAREST-723 - ConcurrentModificationException.
* DATAREST-716 - Rest Endpoints produce HttpMessageNotWritableException sometimes after restarts.
* DATAREST-714 - Improve reference documentation to mention RepositoryRestConfigurer.
* DATAREST-712 - Search a repository that implements QueryDslPredicateExecutor by a related Entity doesn't work anymore.
* DATAREST-708 - Upgrade to Querydsl 4.
* DATAREST-706 - RepositoryExceptionHandler passes null instead of exception.
* DATAREST-705 - Cannot PUT versioned entity returned by spring-data-rest.
* DATAREST-701 - NPE when updating resource via PUT.
* DATAREST-699 - On Java 8, link templates to search resources using pagination contain pageable variable.
* DATAREST-698 - Returned size is the -1 from the parameter that is given.
* DATAREST-697 - ProjectionSerializer doesn't react to unwrapping mode correctly.
* DATAREST-690 - Invalid JSON Schema for properties pointing to association resources.
* DATAREST-686 - resourceDescriptionMessageSource does not support UTF-8 property files.
* DATAREST-684 - Edit reference documents to show proper steps in return HAL from custom endpoint.
* DATAREST-683 - ALPS profile does not reflect jackson customization (e.g. enableEnumTranslation=true).
* DATAREST-674 - Guard against regression in UrlPathHelper in Spring 4.2.
* DATAREST-669 - Include section on dependency management from Spring Data Commons into reference documentation.
* DATAREST-665 - Use consistent scheme for property titles in JSON Schema.
* DATAREST-473 - Add option to disable default exposure of public repository interfaces.


Changes in version 2.4.2.RELEASE (2015-12-18)
---------------------------------------------
* DATAREST-731 - Release 2.4.2 (Gosling).
* DATAREST-723 - ConcurrentModificationException.
* DATAREST-714 - Improve reference documentation to mention RepositoryRestConfigurer.
* DATAREST-712 - Search a repository that implements QueryDslPredicateExecutor by a related Entity doesn't work anymore.
* DATAREST-705 - Cannot PUT versioned entity returned by spring-data-rest.
* DATAREST-697 - ProjectionSerializer doesn't react to unwrapping mode correctly.


Changes in version 2.4.1.RELEASE (2015-11-15)
---------------------------------------------
* DATAREST-707 - Release 2.4.1 (Gosling).
* DATAREST-706 - RepositoryExceptionHandler passes null instead of exception.
* DATAREST-701 - NPE when updating resource via PUT.
* DATAREST-699 - On Java 8, link templates to search resources using pagination contain pageable variable.
* DATAREST-698 - Returned size is the -1 from the parameter that is given.
* DATAREST-690 - Invalid JSON Schema for properties pointing to association resources.
* DATAREST-686 - resourceDescriptionMessageSource does not support UTF-8 property files.
* DATAREST-684 - Edit reference documents to show proper steps in return HAL from custom endpoint.
* DATAREST-683 - ALPS profile does not reflect jackson customization (e.g. enableEnumTranslation=true).
* DATAREST-674 - Guard against regression in UrlPathHelper in Spring 4.2.
* DATAREST-669 - Include section on dependency management from Spring Data Commons into reference documentation.
* DATAREST-665 - Use consistent scheme for property titles in JSON Schema.


Changes in version 2.2.4.RELEASE (2015-10-14)
---------------------------------------------
* DATAREST-693 - Release 2.2.4 (Evans).


Changes in version 2.4.0.RELEASE (2015-09-01)
---------------------------------------------
* DATAREST-663 - Release 2.4 GA (Gosling).
* DATAREST-662 - Unable to post entity with subclassed property (JPA).
* DATAREST-658 - Return resource links as headers for HEAD requests.
* DATAREST-655 - Typo in exception message in parameter checks for ParameterMetadata.
* DATAREST-654 - Add support for enum value serialization.
* DATAREST-651 - Upgrade to Spring HATOEAS 0.19.
* DATAREST-647 - Remove unnecessary loading of the entity in RepositoryEntityController.patchItemResource(…) / putItemResource(…).
* DATAREST-644 - Improve JSON Schema output.
* DATAREST-627 - Extend Spring Data shipped HAL browser to use resource metadata.
* DATAREST-626 - _embedded resource with curie namespace not rendering in HAL browser.
* DATAREST-623 - Extend reference documentation to show how to programmatically link to endpoints.
* DATAREST-363 - Latest SNAPSHOT return multiple links attribute.


Changes in version 2.4.0.RC1 (2015-08-04)
-----------------------------------------
* DATAREST-634 - Release 2.4 RC1 (Gosling).
* DATAREST-632 - Fix gap in JSON Schema unit tests.
* DATAREST-631 - JSON Schema doesn't show id fields when they are exposed.
* DATAREST-630 - ALPS metadata should NOT show an id field unless its exposed in the configuration.
* DATAREST-625 - Remove references to BeanWrapper.
* DATAREST-624 - Add ref docs for HAL Browser.
* DATAREST-622 - Remove obsolete wrapping of embeddeds into Resources.
* DATAREST-619 - Typo in docs of RepositoryEntityController::patchItemResource, Docs mention PUT.
* DATAREST-617 - Requests with Accept header of application/*+json return the compact representation.
* DATAREST-616 - Provide support for dynamic filtering with Querydsl.
* DATAREST-609 - For @RepositoryRestController, appending %7B to URL passes security check.
* DATAREST-606 - Non-public @RepositoryEventHandler are not made accessible prior to reflective invocation.
* DATAREST-605 - NullPointerExceptions when issuing PATCH requests on entities containing Map properties.
* DATAREST-597 - AlpsController not working on Spring 4.2.
* DATAREST-596 - Fix small typo in reference docs.
* DATAREST-588 - ResourceSupportHttpMessageConverter does not reject generic type requests.
* DATAREST-585 - Forward ResourceLoader into ProjectionFactory created for the PersistentEntityResourceAssembler.
* DATAREST-584 - Polish dependency setup.
* DATAREST-583 - RepositoryRestMvcConfiguration should set Environment and ResourceLoader on AnnotatedTypeScanner.
* DATAREST-582 - Secured event handler method invoked twice.
* DATAREST-581 - ETag getVersionInformation fails with proxied Entities for projections.
* DATAREST-577 - Make sure excerpt projections get registered automatically.
* DATAREST-576 - Remove markdown versions of README and CONTRIBUTING.
* DATAREST-565 - Hal Browser does not seem to work with spring boot with a non-default context-path.
* DATAREST-539 - RepositoryRestExceptionHandler does not log the exception if it has no message.
* DATAREST-508 - Reference documentation should be more clear about how projection interfaces are found.
* DATAREST-454 - Add section documenting conditional operations.
* DATAREST-397 - Write tests verifying proper integration with Spring Security.
* DATAREST-377 - UriStringDeserializer fails with "Could not read JSON: Template must not be null or empty!".


Changes in version 2.3.2.RELEASE (2015-07-28)
---------------------------------------------
* DATAREST-628 - Release 2.3.2 (Fowler).
* DATAREST-622 - Remove obsolete wrapping of embeddeds into Resources.
* DATAREST-619 - Typo in docs of RepositoryEntityController::patchItemResource, Docs mention PUT.
* DATAREST-617 - Requests with Accept header of application/*+json return the compact representation.
* DATAREST-609 - For @RepositoryRestController, appending %7B to URL passes security check.
* DATAREST-606 - Non-public @RepositoryEventHandler are not made accessible prior to reflective invocation.
* DATAREST-605 - NullPointerExceptions when issuing PATCH requests on entities containing Map properties.
* DATAREST-596 - Fix small typo in reference docs.
* DATAREST-539 - RepositoryRestExceptionHandler does not log the exception if it has no message.
* DATAREST-377 - UriStringDeserializer fails with "Could not read JSON: Template must not be null or empty!".


Changes in version 2.1.6.RELEASE (2015-07-01)
---------------------------------------------
* DATAREST-601 - Release 2.1.6 (Dijkstra).
* DATAREST-538 - Update RepositoryRestMvcConfiguration so that the bean factory knows that Jackson converter beans are type constrained.
* DATAREST-535 - Document how to override Spring Data REST exposed resources using manual controller implementations.


Changes in version 2.2.3.RELEASE (2015-07-01)
---------------------------------------------
* DATAREST-602 - Release 2.2.3 (Evans).
* DATAREST-588 - ResourceSupportHttpMessageConverter does not reject generic type requests.
* DATAREST-576 - Remove markdown versions of README and CONTRIBUTING.
* DATAREST-556 - PUT/PATCH does not consider custom Jackson field naming strategy.
* DATAREST-538 - Update RepositoryRestMvcConfiguration so that the bean factory knows that Jackson converter beans are type constrained.
* DATAREST-537 - Cannot remove an element of an array using JSON Patch request.
* DATAREST-516 - Fix links to ALPS representation descriptors for associations.
* DATAREST-500 - Rendering of lazy-loading proxies fails.
* DATAREST-498 - JSON Patch request not recognized if Content-Type header contains media type parameters.
* DATAREST-491 - PersistentEntityResourceHandlerMethodArgumentResolver dump in PUT requests with HashMap.
* DATAREST-485 - RepositoryPropertyReferenceController.createPropertyReference(…) does not work for empty content supplied on Spring 4.1.
* DATAREST-478 - Update reference docs to use HAL and remove deprecated annotations.
* DATAREST-463 - ALPS metadata exposes attributes that can be marked @JsonIgnore.
* DATAREST-453 - Add links to Spring Data Examples inside reference docs.
* DATAREST-452 - Add ALPS to reference docs.
* DATAREST-451 - Add projections and excerpts to reference docs.
* DATAREST-450 - Migrate wiki content into reference docs and replace with links.
* DATAREST-302 - Handle resource links of resources inlined using @Projection.


Changes in version 2.3.1.RELEASE (2015-06-30)
---------------------------------------------
* DATAREST-603 - Release 2.3.1 (Fowler).
* DATAREST-588 - ResourceSupportHttpMessageConverter does not reject generic type requests.
* DATAREST-585 - Forward ResourceLoader into ProjectionFactory created for the PersistentEntityResourceAssembler.
* DATAREST-584 - Polish dependency setup.
* DATAREST-577 - Make sure excerpt projections get registered automatically.
* DATAREST-576 - Remove markdown versions of README and CONTRIBUTING.
* DATAREST-556 - PUT/PATCH does not consider custom Jackson field naming strategy.
* DATAREST-550 - Improve reference documentation excerpt projections.
* DATAREST-549 - RepositorySearchesResource shouldn't expose domain type.
* DATAREST-538 - Update RepositoryRestMvcConfiguration so that the bean factory knows that Jackson converter beans are type constrained.
* DATAREST-537 - Cannot remove an element of an array using JSON Patch request.
* DATAREST-535 - Document how to override Spring Data REST exposed resources using manual controller implementations.
* DATAREST-531 - JSON Schema should expose read-only fields based on PersistentProperty.isWritable().
* DATAREST-523 - Unable to augment collection association using POST.
* DATAREST-522 - GET on RestRepository not possible, if a RestController for the same path is available.
* DATAREST-519 - RepositoryEntityLinks does not populate search resource URIs with Pageable and Sorts.
* DATAREST-515 - RepositorySearchesResource should expose the domain type it lists searches for.
* DATAREST-511 - Support Optionals in repository methods.
* DATAREST-509 - Reference documentation typo.
* DATAREST-508 - Reference documentation should be more clear about how projection interfaces are found.
* DATAREST-507 - RepositoryRestExceptionHandler throws IllegalArgumentException.
* DATAREST-506 - GETting an item resource should consider If-None-Match and If-Modified-Since headers.
* DATAREST-503 - Fix one word typo in reference docs.
* DATAREST-500 - Rendering of lazy-loading proxies fails.
* DATAREST-498 - JSON Patch request not recognized if Content-Type header contains media type parameters.
* DATAREST-454 - Add section documenting conditional operations.
* DATAREST-302 - Handle resource links of resources inlined using @Projection.


Changes in version 2.4.0.M1 (2015-06-02)
----------------------------------------
* DATAREST-563 - Release 2.4 M1 (Gosling).
* DATAREST-556 - PUT/PATCH does not consider custom Jackson field naming strategy.
* DATAREST-553 - Remove deprecated support for RepositoryRestConfiguration.setBaseUri(…).
* DATAREST-551 - Re-enable Cassandra integration tests.
* DATAREST-550 - Improve reference documentation excerpt projections.
* DATAREST-549 - RepositorySearchesResource shouldn't expose domain type.
* DATAREST-542 - ResourceProcessor not invoked for empty collections.
* DATAREST-538 - Update RepositoryRestMvcConfiguration so that the bean factory knows that Jackson converter beans are type constrained.
* DATAREST-537 - Cannot remove an element of an array using JSON Patch request.
* DATAREST-535 - Document how to override Spring Data REST exposed resources using manual controller implementations.
* DATAREST-534 - JSON Schema not rendered anymore after changes in default media type handling.
* DATAREST-532 - Disable Cassandra tests until it has kept up with changes in Spring Data Commons.
* DATAREST-531 - JSON Schema should expose read-only fields based on PersistentProperty.isWritable().
* DATAREST-523 - Unable to augment collection association using POST.
* DATAREST-522 - GET on RestRepository not possible, if a RestController for the same path is available.
* DATAREST-521 - Projection fields should contain links if the projection target points to a managed resource.
* DATAREST-519 - RepositoryEntityLinks does not populate search resource URIs with Pageable and Sorts.
* DATAREST-518 - MappingResourceMetadata must not be exported.
* DATAREST-517 - Accessing a query resource should return 404 Not Found if the query returns null.
* DATAREST-516 - Fix links to ALPS representation descriptors for associations.
* DATAREST-515 - RepositorySearchesResource should expose the domain type it lists searches for.
* DATAREST-514 - Custom @RestResource path shows up as link href, but doesn't load data.
* DATAREST-511 - Support Optionals in repository methods.
* DATAREST-509 - Reference documentation typo.
* DATAREST-507 - RepositoryRestExceptionHandler throws IllegalArgumentException.
* DATAREST-506 - GETting an item resource should consider If-None-Match and If-Modified-Since headers.
* DATAREST-503 - Fix one word typo in reference docs.
* DATAREST-502 - Not convenient to search a repository by a related entity using links.
* DATAREST-500 - Rendering of lazy-loading proxies fails.
* DATAREST-498 - JSON Patch request not recognized if Content-Type header contains media type parameters.
* DATAREST-479 - Render empty _embedded content for empty collections.
* DATAREST-302 - Handle resource links of resources inlined using @Projection.
* DATAREST-293 - Create new module that provides the HAL Browser.


Changes in version 2.3.0.RELEASE (2015-03-23)
---------------------------------------------
* DATAREST-494 - Link to JSON Schema resource from ALPS resources.
* DATAREST-493 - Release 2.3 GA.
* DATAREST-492 - JSON Schema reports primitive numbers as object.
* DATAREST-491 - PersistentEntityResourceHandlerMethodArgumentResolver dump in PUT requests with HashMap.
* DATAREST-490 - Repository controllers not invoked if resource is handled manually in dedicated media type.
* DATAREST-478 - Update reference docs to use HAL and remove deprecated annotations.
* DATAREST-453 - Add links to Spring Data Examples inside reference docs.
* DATAREST-449 - Skim through reference docs and clean up obvious deficiencies.
* DATAREST-34 - Support response body negotiation for PUT and POST requests via Accept header.


Changes in version 2.3.0.RC1 (2015-03-05)
-----------------------------------------
* DATAREST-487 - Release 2.3 RC1.
* DATAREST-485 - RepositoryPropertyReferenceController.createPropertyReference(…) does not work for empty content supplied on Spring 4.1.
* DATAREST-484 - Fix small typo in reference docs.
* DATAREST-483 - Upgrade to JSONPath 0.9.1.
* DATAREST-482 - Add test cases to verify association handling on PUT for MongoDB.
* DATAREST-471 - Auto-populate Last Modified header for audited entities.
* DATAREST-470 - Use EclipseLink provided JPA API JAR instead of the Hibernate one.
* DATAREST-469 - Introduce dedicated resource type for search links.
* DATAREST-467 - Add support to lookup search resource links via RepositoryEntityLinks.
* DATAREST-463 - ALPS metadata exposes attributes that can be marked @JsonIgnore.
* DATAREST-461 - @JsonIgnored properties must not be updated in PUT requests.
* DATAREST-460 - Make sure @Bean methods of RepositoryRestMvcConfiguration are called from proxied methods.
* DATAREST-457 - Typo in JavaDoc of BaseUri.
* DATAREST-452 - Add ALPS to reference docs.
* DATAREST-451 - Add projections and excerpts to reference docs.
* DATAREST-450 - Migrate wiki content into reference docs and replace with links.
* DATAREST-448 - RepositoryRestHandlerMapping is handling non-repository requests.
* DATAREST-446 - Remove usage of RepositoriesUtils as it potentially breaks customizations of ResourceMetadata.
* DATAREST-445 - RepositoryCollectionResourceMapping does not obtain domain type from RepositoryMetadata.
* DATAREST-437 - Switch to projection infrastructure in Spring Data Commons.
* DATAREST-436 - Spring Data Rest example module has no build file.
* DATAREST-434 - PersistentEntityResourceHandlerMethodArgumentResolver's read(…) methods swallow exceptions.
* DATAREST-431 - Move to Formatters for Point and Distance in Spring Data Commons.
* DATAREST-430 - Fix typos in reference documentation.
* DATAREST-429 - Improve implementation of base URI customization.
* DATAREST-427 - NullPointerException when POST/PUT entities with rels in DomainClassConverter.
* DATAREST-424 - Make sure HAL HttpMessageConverter is ordered before the standard one.
* DATAREST-423 - Spring Data REST registered ConversionService not used when overriding individual resources.
* DATAREST-422 - Fix link to reference documentation in README.
* DATAREST-421 - @ExceptionHandler can't be override by @ControllerAdvice.
* DATAREST-414 - Add test cases for Spring Data Cassandra.
* DATAREST-388 - Can't use controller advices if annotation based event handling is used.
* DATAREST-387 - Add tests for SD Solr Repositories.
* DATAREST-354 - Revamp JSON Schema support to current draft of the spec.


Changes in version 2.2.2.RELEASE (2015-01-28)
---------------------------------------------
* DATAREST-470 - Use EclipseLink provided JPA API JAR instead of the Hibernate one.
* DATAREST-469 - Introduce dedicated resource type for search links.
* DATAREST-468 - Documentation of item resource is missing supported media types for PATCH.
* DATAREST-461 - @JsonIgnored properties must not be updated in PUT requests.
* DATAREST-460 - Make sure @Bean methods of RepositoryRestMvcConfiguration are called from proxied methods.
* DATAREST-459 - Release 2.2.2.
* DATAREST-457 - Typo in JavaDoc of BaseUri.
* DATAREST-446 - Remove usage of RepositoriesUtils as it potentially breaks customizations of ResourceMetadata.
* DATAREST-445 - RepositoryCollectionResourceMapping does not obtain domain type from RepositoryMetadata.
* DATAREST-436 - Spring Data Rest example module has no build file.
* DATAREST-434 - PersistentEntityResourceHandlerMethodArgumentResolver's read(…) methods swallow exceptions.
* DATAREST-430 - Fix typos in reference documentation.
* DATAREST-427 - NullPointerException when POST/PUT entities with rels in DomainClassConverter.
* DATAREST-424 - Make sure HAL HttpMessageConverter is ordered before the standard one.
* DATAREST-423 - Spring Data REST registered ConversionService not used when overriding individual resources.
* DATAREST-422 - Fix link to reference documentation in README.
* DATAREST-408 - Nested projections not loading nested lists.
* DATAREST-394 - Projections are not applied to collection attributes.
* DATAREST-388 - Can't use controller advices if annotation based event handling is used.
* DATAREST-227 - Extract test functions from AbstractWebIntegrationTest for general reuse.


Changes in version 2.1.5.RELEASE (2015-01-27)
---------------------------------------------
* DATAREST-460 - Make sure @Bean methods of RepositoryRestMvcConfiguration are called from proxied methods.
* DATAREST-458 - Release 2.1.5.
* DATAREST-457 - Typo in JavaDoc of BaseUri.
* DATAREST-446 - Remove usage of RepositoriesUtils as it potentially breaks customizations of ResourceMetadata.
* DATAREST-445 - RepositoryCollectionResourceMapping does not obtain domain type from RepositoryMetadata.
* DATAREST-408 - Nested projections not loading nested lists.
* DATAREST-394 - Projections are not applied to collection attributes.
* DATAREST-388 - Can't use controller advices if annotation based event handling is used.


Changes in version 2.3.0.M1 (2014-12-01)
----------------------------------------
* DATAREST-418 - Release 2.3 M1.
* DATAREST-417 - Adapt to move of the RepositoryInvoker API to the support package.
* DATAREST-416 - Move to IdentifierAccessor API.
* DATAREST-415 - Move to PersistentPropertyAccessor API.
* DATAREST-409 - Port RepositoryInvoker abstraction to Spring Data Commons.
* DATAREST-385 - Projection doesn't work with a @MappedSuperclass.
* DATAREST-384 - Query method do not consider Sort parameters.
* DATAREST-381 - Controllers for Alps and repository listing get listed under the root even if a base URI is configured.
* DATAREST-227 - Extract test functions from AbstractWebIntegrationTest for general reuse.
* DATAREST-160 - Support for @Version based ETags.


Changes in version 2.2.1.RELEASE (2014-10-30)
---------------------------------------------
* DATAREST-401 - Release 2.2.1.
* DATAREST-385 - Projection doesn't work with a @MappedSuperclass.
* DATAREST-384 - Query method do not consider Sort parameters.
* DATAREST-381 - Controllers for Alps and repository listing get listed under the root even if a base URI is configured.


Changes in version 2.2.0.RELEASE (2014-09-05)
---------------------------------------------
* DATAREST-381 - Controllers for Alps and repository listing get listed under the root even if a base URI is configured.
* DATAREST-380 - Release 2.2 GA.


Changes in version 2.1.4.RELEASE (2014-08-27)
---------------------------------------------
* DATAREST-378 - Release 2.1.4.


Changes in version 2.2.0.RC1 (2014-08-13)
-----------------------------------------
* DATAREST-374 - Release 2.2 RC1.
* DATAREST-364 - Move to Asciidoctor for reference documentation.
* DATAREST-362 - Improve configuration setup for Spring Boot compatibility.
* DATAREST-353 - Deleting a non-existing resource leads to NullPointerException in RepositoryEntityController.
* DATAREST-319 - Add means to prefer deleting by object instead of deleting by id.


Changes in version 2.1.2.RELEASE (2014-07-28)
---------------------------------------------
* DATAREST-362 - Improve configuration setup for Spring Boot compatibility.
* DATAREST-361 - Release 2.1.2.
* DATAREST-353 - Deleting a non-existing resource leads to NullPointerException in RepositoryEntityController.
* DATAREST-351 - Upgrade to Evo Inflector 1.2 to stay Java 6 compatible.
* DATAREST-346 - ReflectionRepositoryInvoker doesn't apply conversion on invocation of an overridden delete(…) method.
* DATAREST-343 - Fix Jackson dependency setup.
* DATAREST-212 - Update documentation to reflect new way of parsing sorting options.


Changes in version 2.2.0.M1 (2014-07-10)
----------------------------------------
* DATAREST-352 - Remove links to forum.spring.io.
* DATAREST-351 - Upgrade to Evo Inflector 1.2 to stay Java 6 compatible.
* DATAREST-350 - Release 2.2 M1.
* DATAREST-348 - Add support for application/json-patch+json and application/merge-patch+json.
* DATAREST-346 - ReflectionRepositoryInvoker doesn't apply conversion on invocation of an overridden delete(…) method.
* DATAREST-345 - Nulling out fields doesn't work on PATCH requests.
* DATAREST-343 - Fix Jackson dependency setup.
* DATAREST-341 - Upgrade to Spring HATEOAS 0.14.0.RELEASE.
* DATAREST-340 - Non-persistent properties not rendered.
* DATAREST-336 - Default mapping setup to render ISO8601 dates by default.
* DATAREST-335 - Overriding repositories delete method results in "argument type mismatch" exception.
* DATAREST-333 - Handle OPTIONS request for CORS.
* DATAREST-331 - Improvements in ResourceProcessorHandlerMethodReturnValueHandler.
* DATAREST-330 - Resources should support HEAD method.
* DATAREST-329 - RepositoryRestMvcConfiguration causes eager initialization of beans.
* DATAREST-328 - Serialization errors if type contains only renamed properties.
* DATAREST-327 - Collection references are removed on PUT and PATCH if defaulted to empty collections.
* DATAREST-325 - ReflectionRepositoryInvoker fails to invoke non-public methods.
* DATAREST-324 - Fix typos.
* DATAREST-323 - Clean up README and docbook text.
* DATAREST-320 - Fields with @JsonProperty are ignored on serialization.
* DATAREST-318 - BaseUri does not strip template variables correctly if invoked with NativeWebRequest.
* DATAREST-317 - Add support for excerpt projections.
* DATAREST-316 - UriStringDeserializer should guard against URI templates submitted.
* DATAREST-311 - executeSearchCompact - Mismatch argument name and path variable name.
* DATAREST-230 - Add the ability to expose an ALPS resource for service documentation.
* DATAREST-212 - Update documentation to reflect new way of parsing sorting options.
* DATAREST-182 - PlatformTransactionManager can't be autowired if more than one available in ApplicationContext.


Changes in version 2.1.1.RELEASE (2014-06-30)
---------------------------------------------
* DATAREST-341 - Upgrade to Spring HATEOAS 0.14.0.RELEASE.
* DATAREST-340 - Non-persistent properties not rendered.
* DATAREST-337 - Release 2.1.1.
* DATAREST-335 - Overriding repositories delete method results in "argument type mismatch" exception.
* DATAREST-331 - Improvements in ResourceProcessorHandlerMethodReturnValueHandler.
* DATAREST-330 - Resources should support HEAD method.
* DATAREST-329 - RepositoryRestMvcConfiguration causes eager initialization of beans.
* DATAREST-328 - Serialization errors if type contains only renamed properties.
* DATAREST-327 - Collection references are removed on PUT and PATCH if defaulted to empty collections.
* DATAREST-325 - ReflectionRepositoryInvoker fails to invoke non-public methods.
* DATAREST-320 - Fields with @JsonProperty are ignored on serialization.
* DATAREST-318 - BaseUri does not strip template variables correctly if invoked with NativeWebRequest.
* DATAREST-316 - UriStringDeserializer should guard against URI templates submitted.
* DATAREST-311 - executeSearchCompact - Mismatch argument name and path variable name.
* DATAREST-182 - PlatformTransactionManager can't be autowired if more than one available in ApplicationContext.


Changes in version 2.0.3.RELEASE (2014-06-18)
---------------------------------------------
* DATAREST-322 - Release 2.0.3.
* DATAREST-318 - BaseUri does not strip template variables correctly if invoked with NativeWebRequest.
* DATAREST-316 - UriStringDeserializer should guard against URI templates submitted.
* DATAREST-311 - executeSearchCompact - Mismatch argument name and path variable name.
* DATAREST-305 - Enable Java 8 build in maven configuration.
* DATAREST-301 - Illegal character '{' in URL when using projection and PUT request.
* DATAREST-300 - Request processing shouldn't fail for unexpanded URI templates.
* DATAREST-298 - "rel" attribute of @RestResource should be optional.
* DATAREST-292 - Reconfiguring baseUri isn't enough to change path to resolve URI links.
* DATAREST-276 - 500 returned if URL ends with /.


Changes in version 2.1.0.RELEASE (2014-05-20)
---------------------------------------------
* DATAREST-307 - Root mapping not discovered on Tomcat.
* DATAREST-306 - Release 2.1 GA.
* DATAREST-305 - Enable Java 8 build in maven configuration.
* DATAREST-301 - Illegal character '{' in URL when using projection and PUT request.
* DATAREST-300 - Request processing shouldn't fail for unexpanded URI templates.


Changes in version 2.1.0.RC1 (2014-05-02)
-----------------------------------------
* DATAREST-298 - "rel" attribute of @RestResource should be optional.
* DATAREST-297 - Release 2.1 RC1.
* DATAREST-296 - Absolute base URI not applied correctly.
* DATAREST-294 - Improve media type defaulting.
* DATAREST-292 - Reconfiguring baseUri isn't enough to change path to resolve URI links.
* DATAREST-288 - RepositorySchemaController must not depend on javax.validation.
* DATAREST-276 - 500 returned if URL ends with /.


Changes in version 2.0.2.RELEASE (2014-04-15)
---------------------------------------------
** Bug
    * [DATAREST-288] - RepositorySchemaController must not depend on javax.validation

** Task
    * [DATAREST-291] - Release 2.0.2

Changes in version 2.1.0.M1 (2014-03-31)
----------------------------------------
** Bug
    * [DATAREST-150] - PUT vs PATCH with JPA
    * [DATAREST-247] - NPE when calling count Queries in SD MongoDB Repositories
    * [DATAREST-253] - AssociationOmittingSerializerModifier suffers from potential NullPointerException
    * [DATAREST-254] - org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module does not properly handle JPA @Transient annotation during serialization yeilding a NPE
    * [DATAREST-261] - RepositoryRelProvider is not registered
    * [DATAREST-265] - POST/Create with Non-CRUD Repository doesn't save (only checks exists())
    * [DATAREST-267] - (Potentially) unwanted behaviour for self hrefs with projections
    * [DATAREST-268] - Exception when putting element with return type
    * [DATAREST-271] - PaginationCustomizations are not applied

** Improvement
    * [DATAREST-155] - Allow overriding which field gets exposed in the URI
    * [DATAREST-262] - Support nested association creation for updating operations
    * [DATAREST-277] - Adapt changes in BeanWrapper API
    * [DATAREST-278] - Add converters to bind new geo-types from request parameters
    * [DATAREST-279] - Add marshalling support for newly introduced geo types
    * [DATAREST-280] - Let configuration lookup MappingContexts less aggressively
    * [DATAREST-281] - Upgrade to Spring Data Gemfire 1.4.x branch

** New Feature
    * [DATAREST-221] - Support use case-driven inlining of managed resources

** Task
    * [DATAREST-257] - Release 2.1 M1

Changes in version 2.0.1.RELEASE (2014-03-13)
---------------------------------------------
** Bug
    * [DATAREST-150] - PUT vs PATCH with JPA
    * [DATAREST-247] - NPE when calling count Queries in SD MongoDB Repositories
    * [DATAREST-253] - AssociationOmittingSerializerModifier suffers from potential NullPointerException
    * [DATAREST-254] - org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module does not properly handle JPA @Transient annotation during serialization yeilding a NPE
    * [DATAREST-261] - RepositoryRelProvider is not registered
    * [DATAREST-267] - (Potentially) unwanted behaviour for self hrefs with projections
    * [DATAREST-268] - Exception when putting element with return type
    * [DATAREST-271] - PaginationCustomizations are not applied

** Task
    * [DATAREST-258] - Release 2.0.1

Changes in version 2.0.0.RELEASE (2014-02-24)
---------------------------------------------
** Bug
    * [DATAREST-50] - Properties with null values are always omitted from the JSON
    * [DATAREST-117] - @JsonIgnore and other Jackson annotations are ignored
    * [DATAREST-143] - PUT of entity with links fails..
    * [DATAREST-216] - AOP proxying does not work for findOne(ID) method
    * [DATAREST-217] - Crud or PagingAndSorting based repository entites still listed when findAll method is 'exported = false'
    * [DATAREST-238] - PUT on entity with self links causes changes to be overwritten with old values
    * [DATAREST-246] - ValidatingRepositoryEventListener should use Repositories more lenient
    * [DATAREST-250] - Embedded associations do not get rendered

** Improvement
    * [DATAREST-95] - Add support for partial updates using PATCH
    * [DATAREST-228] - Add enforcer plugin to the maven build process
    * [DATAREST-248] - Creating resources using POST should support providing URIs for non-optional associations
    * [DATAREST-252] - Documentation overhaul

** Task
    * [DATAREST-249] - Release 2.0 GA

Changes in version 2.0.0.RC1 (2014-01-29)
-----------------------------------------
** Bug
    * [DATAREST-107] - @RestResource exported=false ignored on methods
    * [DATAREST-130] - Updating value to NULL using Spring Data REST and PUT Method
    * [DATAREST-188] - Spring data rest wrongly handles jpa collection attributes
    * [DATAREST-195] - Limiting page size
    * [DATAREST-198] - NullPointerException when accessing OneToMany Relationship
    * [DATAREST-199] - Collection/Object conversion broken in PersistentEntityJackson2Module
    * [DATAREST-200] - Embedded associations do not get rendered
    * [DATAREST-209] - Hard Dependency on Jackson-Hibernate
    * [DATAREST-210] - ApplicationContext fails to load with HAL enabled snapshot
    * [DATAREST-213] - Make old presentation available for smooth migration to HAL
    * [DATAREST-222] - Path.matches(…) should escape reference before trying to match it

** Improvement
    * [DATAREST-75] - PersistentEntityJackson2Module should be more lenient regarding other registered modules
    * [DATAREST-203] - Move to HAL as default hypermedia format
    * [DATAREST-219] - Improve handling of updates to related collection properties
    * [DATAREST-229] - RepositoryEntityLinks should exposed templated link for pageable collection resources
    * [DATAREST-233] - Improve annotation based customization

** Task
    * [DATAREST-220] - Add contribution guidelines
    * [DATAREST-224] - Switch to Maven build system
    * [DATAREST-226] - Release Spring Data REST 2.0.0.RC1

Changes in version 2.0.0 M1 (2013-11-21)
----------------------------------------
** Bug
    * [DATAREST-72] - @RestResource(exported = false) is not considered on repository interfaces
    * [DATAREST-83] - Controller implementations should not be annotated with @Controller
    * [DATAREST-88] - Build broken
    * [DATAREST-103] - Add support for non-CrudRepositories
    * [DATAREST-113] - /{repository}/schema fails on binding parameter - RepositoryRestRequest
    * [DATAREST-114] - Could not initialize proxy - no Session
    * [DATAREST-135] - Lost paging after upgrading to 1.1.0.M1
    * [DATAREST-163] - One-to-one relations in embedded Mongo Documents do not get rendered...
    * [DATAREST-168] - Master branch build is broken
    * [DATAREST-169] - Property-link throws Null-pointer exception when property is lazy-loaded
    * [DATAREST-184] - org.neo4j.graphdb.NotInTransactionException on DELETE

** Improvement
    * [DATAREST-162] - Support link path definition via @RestResource

** Task
    * [DATAREST-89] - Upgrade to latest Spring Data milestones
    * [DATAREST-94] - Remove dependency on Guava
    * [DATAREST-170] - Upgrade to dependencies of the Codd release train
    * [DATAREST-185] - Upgrade to Spring 3.2.5
    * [DATAREST-193] - Release 2.0 M1.
