Commit Graph

353 Commits

Author SHA1 Message Date
Oliver Gierke
bd8d3afa65 DATAREST-219 - Polishing.
Generally polished implementation and test cases for Greg's contribution.
Re-ordered parameters in ControllerUtils' helper methods for consistency.
Use Spring's CollectionFactory to create a suitable collection for the handled properties in the first place to avoid unnecessary conversion later on.

Removed duplication in test cases. Polished JavaDoc in UriListHttpMessageConverter and moved to a Scanner based implementation to read the request body. 

Adapted to latest changes in Spring HATEOAS. Reactivated ResourceStringUtilsTests.

Related pull requests: #128, #86.
2014-01-24 16:03:22 +01:00
Greg Turnquist
1f0b9bd664 DATAREST-219 - Make editing collection-based properties more efficient
This PR is inspired by #86, but had to be written from scratch because it was over 10 months old when this was undertaken. It was unmergeable.

Essentially, by casting existing collections and then iterating over them and making adjustments should render more efficient back end database operations. Only for a PUT should a new collection be created.

This PR not only updates these operations, but provides test cases to back up these edits, i.e. a test case for POSTing to a collection, PUTing to a collection, and DELETE-ing from a collection.

Adds ability to return an empty response with only the Location header populated by looking at the property update's incoming URL.

Original pull request: #128, #86.
2014-01-24 15:17:38 +01:00
Oliver Gierke
d59ec3bdd4 DATAREST-233 - Introduced @RepositoryRestResource.
@RepositoryRestResource exposes more detailed attributes tailored to the use case of exposing a repository. @RestResource is still recognized on repository interfaces but we now issue a warning and indicate the new annotation to be used.

Introduced a minimal ResourceDescription interface and let @Description be used within @RestResource and @RepositoryRestResource. We now generate default resource bundle keys and resolve them against a "rest-messages" resource bundle by default. JsonSchema converter now uses the rendered descriptions for schema descriptions.
2014-01-24 15:17:14 +01:00
Oliver Gierke
61d3d1c0bf DATAREST-31 - Improved link rendering for search resources.
If the search resource is capable of paging we now augment the link with pagination template variables.
2014-01-23 17:11:40 +01:00
Oliver Gierke
88b2f05edf DATAREST-229 - RepositoryEntityLinks now exposes templated links.
If the resource exposed for a domain or repository type is considered a paging resource we now return a templated URI. Introduced ResourceMapping.isPagingResource() to allow clients to find out about whether the resource is actually capable of pagination. Adapted implementations to inspect the findAll(…) method as well as the search methods for a Pageable parameter.

Tweaked pom.xml to create correct classpaths if the IDE uses direct workspace project references.
2014-01-23 17:11:34 +01:00
Oliver Gierke
5778ff9940 DATAREST-224 - Removed Gradle build files. 2014-01-20 13:49:11 +01:00
Oliver Gierke
9159339960 DATAREST-226 - Upgraded to Spring Data Neo4j 3.0 snapshots. 2014-01-20 13:48:47 +01:00
Oliver Gierke
f02000e619 DATAREST-224 - Introduce Maven POMs.
Adapted JpaWebTests to compile on Java6. Fixed some broken test case in Neo4jWebTests.
2014-01-20 10:18:44 +01:00
Oliver Gierke
5409bfd472 DATAREST-31 - Adapted to latest changes in Spring HATEOAS. 2014-01-19 20:11:11 +01:00
Oliver Gierke
4b6f0f620a DATAREST-31 - Search links are now rendered as link templates.
MethodResourceMapping now exposes the parameters a query method expects. The RepositorySearchController the uses these to append the 

Upgraded to Spring Data Commons 1.7.0.BUILD-SNAPSHOT.
2014-01-17 13:28:10 +01:00
Oliver Gierke
5ff6457911 DATAREST-222 - Path now quotes reference before matching.
We now actively quote the String reference to match a path against as it most likely is not a regular expression.
2014-01-17 13:22:04 +01:00
Oliver Gierke
a9f3ce5912 DATAREST-220 - Added contribution guidelines.
Linked to the actual contribution guidelines maintained in the Spring Data Build project.
2014-01-14 13:50:25 +01:00
Oliver Gierke
074c77cc3e DATAREST-107 - Polishing test cases.
Extracted DATAREST-107 specific test cases into separate test method.
2014-01-14 10:28:34 +01:00
Greg Turnquist
bc30b74cbe DATAREST-107 - Add tests to verify ambiguous mapping detection. 2014-01-14 10:28:00 +01:00
Phillip Webb
e7ce0e3f0b DATAREST-107 - Respect @RestResource exported flag on query methods.
ResourceMappings now only adds a RepositoryMethodResourceMapping if it's really exported.
2014-01-14 10:18:23 +01:00
Oliver Gierke
7c66a217be DATAREST-130 - Polished test implementation.
JavaDoc, formatting, simplified implementation.
2014-01-14 10:15:53 +01:00
Greg Turnquist
d32e69c1d3 DATAREST-130 - Added test case for DomainObjectMerger. 2014-01-14 10:12:07 +01:00
Oliver Gierke
4e5fa30282 DATAREST-130 - Code polish and JavaDoc. 2014-01-14 10:11:33 +01:00
Willie Wheeler
eafdc4771e DATAREST-130 - Support nulling out properties when doing HTTP PUTs. 2014-01-14 10:11:14 +01:00
Oliver Gierke
b3a03ea832 DATAREST-198 - Added test case accessing linked resources.
Added Author and Book domain types to JPA tests to show that following the referenced properties works.
2013-12-29 20:03:48 +01:00
Oliver Gierke
b2c9a5b1dc DATAREST-203 - Fixed listing of searches.
RepositorySearchController now returns a ResourceSupport instead of a Resource as it will only return links anyway. Latest changes in Spring HATEOAS prevent Resource from being used with collection based content to prevent invalid rendering.
2013-12-29 20:03:42 +01:00
Oliver Gierke
8c13ee3b7e DATAREST-203 - Added test cases to show POSTs are generally working.
Some polishing in PersistentEntityResourceArgumentResolver.
2013-12-28 18:04:46 +01:00
Oliver Gierke
c953e6f54d DATAREST-203 - Fixed accidentally broken RepositorySearchController.
Due to the change in the default media type, the RepositorySearchController was totally broken as it used "produces" clauses in the request mapping. I've removed them and added test cases to make sure the search resources are exposed and are accessible.
2013-12-28 16:06:31 +01:00
Oliver Gierke
f641398465 DATAREST-213 - Make sure legacy representation can be activated.
Altered the order of HttpMessageConvertersRegistered based on the default media type being defined. This causes the legacy representation to be rendered as default representation if the default media type on RepositoryRestConfiguration is set to something different from HAL.
2013-12-28 15:48:58 +01:00
Oliver Gierke
110af70de3 DATAREST-210 - Added workaround for SPR-11251.
We're now using @EnableHypermediaSupport via a delegated class to prevent @EnableHypermediaSupport from breaking when RepositoryRestMvcConfiguration is subclassed.
2013-12-20 20:01:17 +01:00
Oliver Gierke
5584040e92 DATAREST-93 - Removed Gradle wrapper script customizations. 2013-12-19 17:04:36 +01:00
Oliver Gierke
204d2870e7 DATAREST-209 - Removed hard dependency on Jackson Hibernate 4 module.
The build script now declares the Jackson Hibernate 4 as optional dependency to avoid being registered in a non-Hibernate environment. Tightened auto-registration checks to also check for Hibernate 4 presence at all.

We automatically activate verbose date rendering when registering the Joda Time module.
2013-12-19 16:31:46 +01:00
Oliver Gierke
af520871dc DATAREST-203, DATAREST-75 - Initial support for HAL.
This commit introduces support for HAL rendering and making it the default rendering option. The configuration now registers an additional MappingJackson2HttpMessageConverter with the according HAL modules registered and makes this the default JSON renderer if the default media type is configured to HAL (which it is by default). To change this, set RepositoryRestConfiguration.setDefaultMediaType(…) back to application/json.

Refactored the PersistentEntityJackson2Module to turn the PersistentEntityResource into it's correct shape (turning associations into links) and the delegate to the default rendering, so that the HAL customizations provided by Spring HATEOAS can kick in. Adapted test cases to the change in default representation format.


Upgraded to Jackson 2.3.0, Spring 3.2.6 and Spring HATEOAS 0.9.0.BUILD-SNAPSHOT. Upgraded to Gradle 1.10.
2013-12-19 16:31:29 +01:00
Oliver Gierke
44420d862c DATAREST-199 - Tweaked unmarshalling of JSON payloads.
The BeanWrapper used to set and get values of entities now gets a autowired ConversionService applied. Simplified collection and map creation by using Spring API. Added test case to update an entity with an embedded collection.
2013-12-05 07:43:11 +01:00
Oliver Gierke
0667e0bfb2 DATAREST-200 - Embedded associations get rendered again.
Removed too strong guard that prevented managed but not-exported types to be rendered at all.
2013-12-04 21:41:57 +01:00
Spring Buildmaster
73a2fd7430 DATAREST-193 - Prepare next development iteration. 2013-11-21 06:10:13 -08:00
Spring Buildmaster
8fe3452065 DATAREST-193 - Release version 2.0 M1. 2013-11-21 06:10:11 -08:00
Oliver Gierke
ac799cff43 DATAREST-193 - Prepare 2.0 M1 release.
Updated changelog. Upgraded to milestone dependencies of Codd.
2013-11-21 14:59:07 +01:00
Oliver Gierke
a9862eb7c5 DATAREST-185 - Upgraded Spring Data dependencies.
Upgraded to Spring Data Neo4j 3.0 and Spring Data Gemfire 1.4 snapshots.
2013-11-18 18:42:09 +01:00
Oliver Gierke
4ee1850a37 DATAREST-93 - Improvements after API updates in Spring Data Commons.
Switched to the usage of Simple(Property|Association)Handler to avoid having to use raw PersistentProperty instances.
2013-11-14 10:04:28 +00:00
Oliver Gierke
8f2e3eb4fe DATAREST-163 - Fixed rendering of embedded documents for MongoDB.
Removed the attempt to add a link to the response for non-associations. Switched to the usage of Simple(Property|Association)Handlers for simplified generics.
2013-11-14 10:04:28 +00:00
Oliver Gierke
f965363650 DATAREST-93 - Upgraded to Gradle wrapper 1.8. 2013-11-14 10:04:28 +00:00
Oliver Gierke
8e29f9bcff DATAREST-184 - Upgraded to Spring Data Neo4j 2.3.3.
The upgrade is necessary to benefit from a fix for DATAGRAPH-409 which transitively fixes this ticket.

Added integration tests for Neo4j repositories.
2013-11-14 10:04:28 +00:00
Oliver Gierke
9b4b111d23 DATAREST-93 - Cleanups in repository invoker area.
Made RepositoryInvokerFactory an interface and renamed the previously existing implementation class to DefaultRepositoryInvokerFactory. Removed instantiation of the class from ResourceMetadataHandlerMethodArgumentResolver to keep the logic which implementation to use solely in the configuration.
2013-11-14 10:03:48 +00:00
Oliver Gierke
cb4770db56 DATAREST-162 - PersistentPropertyResourceMapping now considers @RestResource.
PersistentPropertyResourceMapping now inspects the @RestResource annotation on the property if it is present.
2013-11-14 10:03:48 +00:00
Oliver Gierke
f75ad4d266 DATAREST-185 - Upgraded to Spring 3.2.5. 2013-11-14 10:03:48 +00:00
Greg Turnquist
1de47e06ef Merge pull request #122 from dannyarcher/master
Changed Neo4J version. Thanks @dannyarcher!
2013-11-08 17:11:51 -08:00
Danny Archer
92a3036d3c Changed Neo4J version
- Changed Neo4J 2.4.0 to 2.3.2 to allow download and build due to 401 when
      trying to fetch Neo4J
2013-11-03 23:14:10 +11:00
Oliver Gierke
a6b5c1ec46 DATAREST-113 - Fixed glitches in JSON schema creation.
PersistentEntityToJsonSchemaConverter looks up the ResourceMetadata correctly and builds up URIs in a proper way.
2013-10-01 18:24:32 +02:00
Oliver Gierke
6260d3fba9 DATAREST-93 - Code cleanups.
Added missing license header. Polished code in RepositoryEntityController.
2013-10-01 17:41:50 +02:00
Oliver Gierke
282132994b DATAREST-93 - Upgraded to latest Spring 3.2.4. 2013-10-01 17:41:49 +02:00
Oliver Gierke
ba0c7be7df DATAREST-169 - Added integration test to access property. 2013-10-01 17:41:49 +02:00
Oliver Gierke
13bd9cfda2 DATAREST-170 - Upgraded to snapshot dependencies of Spring Data modules. 2013-10-01 17:41:49 +02:00
Oliver Gierke
b29ac22601 DATAREST-93 - Upgraded to latest Spring Data Babbage release. 2013-10-01 17:41:49 +02:00
Thomas Darimont
090c325766 Added short temporary note for disabling the github issues. 2013-08-27 18:35:26 +02:00