DATAREST-50 - Added test case demonstrating this issue no longer exists.

Properties with null values properly get rendered in JSON outputs. This was fixed some time ago. Added test case to prove it.

Original pull request: #132.
DATAREST-246 - ValidatingRepositoryEntityListener now uses ObjectFactory<Repository>.

ValidatingRepositoryEntityListener previous referred to a Repositories instance which causes a circular reference on initialization after some changes in Spring Data Commons Repositories.

Major cleanups in the ValidatingRepositoryEntityListener implementation.
DATAREST-228 - Added Maven Enforcer plugin to ensure project is built with Java 7.

Original pull request: #131.
DATAREST-216 - CrudRepositoryInvoker considers redeclared methods correctly.

CrudRepositoryInvoker now detects re-declared CRUD methods and falls back to reflection invocation if the re-declaration is detected.

Inspired by PR #126 by Nick Weedon but avoiding the introduction of a dependency to Spring Security by using a more precise testing approach.

Original pull request: #126.
DATAREST-238 - Changed JSON deserializer to ignore links.

Links are a read-only and basically have to be ignored during any inputs. This required removing the deserializer from PersistentEntityJackson2Module. This will cause the object mapping to fail as it doesn't know about the links property in the request body. Instead of requiring that every entity apply the necessary annotation, the mapper is configured to not fail on non-existent attributes. This allowed all the tests to pass while properly handling PUT operations.

Original pull request: #130.
DATAREST-217 - Significant overhaul of HTTP method support detection.

Refactored the way the general support for an HTTP method for the resource exported. The decision is implemented in RootResourceInformation (formerly RepositoryRestRequest). Removed request specific information from that class and introduced a HandlerMethodArgumentResolver to be able to inject HttpMethod instance into controller methods (filed https://jira.springsource.org/browse/SPR-11425 to get that support into Spring Framework itself).

Generally moved away from throwing NoSuchMethodExceptions and correctly expose HttpRequestMethodNotSupportedException instead to make sure Spring MVC renders the appropriate allowed methods if possible.

Removed RepositoryInvokerHandlerMethodArgumentResolver as a RepositoryInvoker can be obtained from the RootResourceInformation where necessary.

Related pull request: #125.
DATAREST-216 - Added integration test.

Forgot to commit integration test with 5dd33b.

Related pull request: #126.
DATAREST-95 - Add support for PATCH to partially update entities.

Added general support for HTTP PATCH to partially update entities and amend property resources.
DATAREST-95 - General overhaul of HTTP method handling.

Code polishing in DomainObjectMerger and related test cases. Fixed the related test cases. Cleanups in ControllerUtils to remove unneeded constants and make sure we really render no content for empty responses.

Refactorings in controller classes to reduce code duplication. We now do not allow POST requests for partial updates to property reference resources anymore but require the usage of PATCH.

Tweaked test helper methods to correctly implement basic interaction patterns.

Related pull request: #127.
DATAREST-117 - Added support to detect @JsonIgnore and @JsonIgnoreProperties.

Wrote test cases to verify it handles class level and attribute level annotations to ignore properties when rendering PersistentEntityResources.

Original pull request: #135.
DATAREST-117 - Polishing.

Simplified annotation detection. Added ignore guards to the association handling as well, so that associations not pointing to a repository managed resource can be ignored from being rendered as well.

Original pull request: #135.
DATAREST-248 - Significant overhaul in entity serialization and deserialization.

Refactored PersistentEntityJackson2Module to move a lot of the customization logic into Bean(De)SerializerModifiers. Those allow to modify the Jackson metadata for a given type programmatically so that we can register the appropriate (de)serializers for associations. 

On the serializing side of things this allows us to easily turn associations into links and simply delegate to object serialization as the delegation will simply ignore the association properties as they have been dropped using the modifier. This solves the advanced requirements of DATAREST-117 nicely as all non-association properties are serialized using standard Jackson means so that all customizations apply.

On the deserialization side, we now support URIs as values for association properties to be able to submit references for non-optional associations on creation.

Related issue: DATAREST-117.
DATAREST-250 - Fixed exposure of inline properties.

Fixed PersistentEntityResource serialization to correctly export associations that are not backed by an exported repository.
DATAREST-250 - More integration tests for serializations.

Added further integration tests to make sure serialization of embedded and non-embedded references works for paged resources.
DATAREST-252 - Documentation overhaul.

Updated documentation and removed obsolete parts.
DATAREST-249 - Prepare 2.0.0.RELEASE.

Upgraded to release versions of Spring Data modules. Updated change log and notice.txt.
DATAREST-250 - Moved to List instead of Set to guarantee stable results.
DATAREST-249 - Release version 2.0.0.RELEASE.
DATAREST-249 - Prepare next development iteration.
DATAREST-253, DATAREST-254 - Fixed serialization handling of transient properties.

AssociationOmittingSerializerModifier not correctly handles transient properties, which means it's handling null PersistentProperties correctly.

Also, AbstractRepositoryRestController.handleNotReadable(…) is not bound to HttpMessageNotWritableException anymore which caused the former errors to be masked by a Spring MVC exception claiming about the exception handler method not being invokable correctly.