Commit Graph

457 Commits

Author SHA1 Message Date
Spring Buildmaster
16031df155 DATAREST-361 - Prepare next development iteration. 2014-07-28 03:12:28 -07:00
Spring Buildmaster
deaf35511c DATAREST-361 - Release version 2.1.2.RELEASE (Dijkstra SR2). 2014-07-28 03:12:25 -07:00
Oliver Gierke
c595ce63e5 DATAREST-343 - Fixed dependency to jackson-annotations after 2.3.4 upgrade.
See: https://github.com/FasterXML/jackson-annotations/issues/39
2014-07-28 12:05:13 +02:00
Oliver Gierke
e375a04da1 DATAREST-361 - Prepare 2.1.2.RELEASE (Dijkstra SR2). 2014-07-28 10:45:32 +02:00
Oliver Gierke
dd58ced830 DATAREST-361 - Updated changelog. 2014-07-28 10:20:02 +02:00
Oliver Gierke
092fc365db DATAREST-361 - Prepare version 2.1.2.RELEASE.
Upgraded to Spring HATEOAS 0.16.0.RELEASE.
2014-07-28 09:49:20 +02:00
Oliver Gierke
bba78849bd DATAREST-326 - Improved configuration setup for better Boot compatibility.
We now don't expose the PersistentEntityJackson2Module as bean anymore to prevent global registration in case of a Boot setup. The HttpMessageConverters registered are now TypeConstrainedMappingJackson2HttpMessageConverters so that they only get used of the object to marshal is of type ResourceSupport.
2014-07-25 21:27:35 +02:00
Oliver Gierke
8d31791809 DATAREST-350 - Updated changelog. 2014-07-25 07:43:58 +02:00
Oliver Gierke
cb5f04083f DATAREST-353 - Fixed potential NullPointerException when trying to delete a non-existing resource.
We now correctly return a 404 Not Found in case we receive a DELETE request for a resource not existing.
2014-07-16 17:46:51 +02:00
Oliver Gierke
1674be28fb DATAREST-351 - Upgraded to Evo Inflector 1.2.
This is mainly to prevent users from running into Java 6 incompatibility as the Evo library was accidentally compiled requiring Java 7 compatibility in version 1.1.
2014-07-08 17:10:09 +02:00
Oliver Gierke
5182808605 DATAREST-337 - Fix trailing whitespace in poms. 2014-07-08 14:05:52 +02:00
Oliver Gierke
a29d625086 DATAREST-346 - Fixed invocation of overridden delete(…) methods.
We now defensively invoke the ConversionService prior to the reflective invocation of the delete method as we have to assume the clients providing the id value in a raw form, i.e. as obtained from the request and thus most likely as String.

Related ticket: DATAREST-335.
2014-07-02 13:26:12 +02:00
Oliver Gierke
15b47b1f03 DATAREST-343 - Added jackson-annotation as explicit dependency.
Added explicit dependency to jackson-annotations as a library previously declared might pull in that one in a different version which might cause conflicts.
2014-07-02 09:24:38 +02:00
Oliver Gierke
8d1e8d949c DATAREST-337 - After release cleanups. 2014-06-30 16:58:53 +02:00
Spring Buildmaster
350fcd8a76 DATAREST-337 - Prepare next development iteration. 2014-06-30 07:42:04 -07:00
Spring Buildmaster
e57ddb1695 DATAREST-337 - Release version 2.1.1.RELEASE (Dijkstra SR1). 2014-06-30 07:42:01 -07:00
Oliver Gierke
91ee25e65c DATAREST-337 - Prepare 2.1.1.RELEASE (Dijkstra SR1). 2014-06-30 15:30:39 +02:00
Oliver Gierke
cce741bbce DATAREST-337 - Updated changelog. 2014-06-30 15:01:19 +02:00
Oliver Gierke
7ee41aafdb DATAREST-341 - Upgraded to Spring HATEOAS 0.14.0.RELEASE. 2014-06-30 14:10:29 +02:00
Oliver Gierke
76388d7074 DATAREST-340 - AssociationOmittingSerializerModifier now keeps non-persistent property writers.
AssociationOmittingSerializerModifier previously dropped the writer fro a particular property if it couldn't find a PersistentProperty for the bean property. We now keep those writers to make sure that non-persistent, additional fields are written as well.

Related issues: https://github.com/spring-projects/spring-boot/issues/1190
2014-06-30 13:23:50 +02:00
Oliver Gierke
b5ad1da127 DATAREST-322 - Updated changelog. 2014-06-30 11:15:06 +02:00
Oliver Gierke
8971e9d3a3 DATAREST-328, DATAREST-320 - AssociationOmittingSerializerModifier now correctly considers renamed properties.
Previously, if a persistent property was renamed using e.g. @JsonProperty, the lookup of the PersistentProperty failed as BeanPropertyWriter exposes the final (renamed) property name, not the internal one. We now defensively lookup the correct BeanPropertyDescriptor using the external name and use the corresponding internal one for the PersistentProperty lookup.
2014-06-27 18:43:56 +02:00
Oliver Gierke
996221fc85 DATAREST-335 - ReflectionRepositoryInvoker correctly handles overridden delete(…) methods.
If a delete(…) method was overridden using the concrete id type, the check on invocation of course has to accommodate the concrete id type and not serializable only.

We previously erroneously attempted a to-entity-conversion by invoking findOne(…) and then handed that result to the delete(…) method which caused an IllegalArgumentException as the argument wasn't matching the parameter type. We now explicitly check for the concrete id type in the first place and even bypass any kind of parameter conversion.
2014-06-27 17:05:24 +02:00
Oliver Gierke
6d6f32a9b3 DATAREST-331 - Fixed NullPointerException in ResourcesProcessorWrapper.
During type matching in ResourcesProcessorWrapper we now accomodate the scenario that a Resources type is completely different than the Resources type to look for. This resulted in null being returned for the supertype generics lookup and this failed as the corresponding guard was missing.
2014-06-26 11:25:50 +02:00
Oliver Gierke
2401f98d93 DATAREST-182 - Removed obsolete wirings from AbstractRepositoryRestController.
Removed the wirings for PlatformTransactionManager and ValidationExceptionHandler from AbstractRepositoryRestController. Removed the latter entirely as it doesn't seem to be used anywhere anyway.
2014-06-24 23:38:27 +02:00
Oliver Gierke
479858278f DATAREST-331 - Fixed invocation of processors for Resources subtypes in ResourceProcessorHandlerMethodReturnValueHandler.
ResourceProcessorHandlerMethodReturnValueHandler now also invokes ResourceProcessors that are typed to Resources even if the value returned by the controller is a sub-type of it.

Also added test cases for the invocation of processors for projections.
2014-06-24 19:36:55 +02:00
Oliver Gierke
182dab6d51 DATAREST-330 - Exposed resources now support HEAD requests where reasonable.
The collection and item resources as well as the search and query method resources now answer HEAD requests according to the repository definition.
2014-06-24 18:35:01 +02:00
Oliver Gierke
65155f5e1e DATAREST-329 - Improved RepositoryRestMvcConfiguration to not eagerly initialize beans.
The bean definition for annotatedHandlerBeanPostProcessor now is a static one so that it doesn't require the config class to be instantiated and populated, which caused the (too) eager initialization of all dependent beans.

Also we now leniently lookup all ResourceProcessor instances available in the context to prevent the lookup during config class preparation.

Ignore Neo4j tests now as they run into OutOfMemoryErrors.
2014-06-24 15:40:39 +02:00
Oliver Gierke
98e6c2ba69 DATAREST-327 - DomainObjectMerger doesn't merge empty collections.
The association handling in DomainObjectMerger is in place to allow the creation of resources using PUT that have non-optional associations. However, if the domain types that the request payload was unmarshalled into use default values - in particular empty collections to avoid nulls - the merger cannot really distinguish between the default set in the type versus an empty collection being submitted through the request.

As the usecase here is creation only we can safely ignore empty collections as submitting those doesn't make a difference anyway (no related items attached). By ignoring those, we fix the issue defaulted empty collections in the type definitions being considered as value to set.
2014-06-20 13:55:43 +02:00
Oliver Gierke
a6464a3e95 DATAREST-325 - ReflectionRepositoryInvoker now makes method accessible before invoking.
This allows methods in package protected repository interfaces to be invoked successfully.
2014-06-20 11:50:01 +02:00
Oliver Gierke
7281bcdca4 DATAREST-318 - BaseUri now correctly strips template variables from request.
Bugfix in BaseUri to correctly strip template variables when the repository lookup path is obtained from a NativeWebRequest.
2014-06-12 12:45:39 +02:00
Oliver Gierke
c71618b690 DATAREST-316 - UriStringDeserializer now guards against UriTemplate.
We now defensively guard against URI templates submitted for related resources and expand the incoming URI string source to avoid URI.create(…) to fail.

Also, RepositoryPropertyReferenceController.loadPropertyValue(…) now also uses UriTemplate to guard against Uri templates provided for property references.
2014-06-12 12:44:18 +02:00
Rodrigue Bouleau
dde340bf92 DATAREST-311 - Fixed execution of query methods for compact media type.
Fixed the request parameter binding of RepositorySearchController. executeSearchCompact(…). Changed returned value to Resources to be able to use the EMPTY_RESOURCES_LIST constant to indicate no actual results.

Original pull request: #139.
2014-06-02 12:04:19 +02:00
Oliver Gierke
e8fd0c60ff DATAREST-306 - Prepare next development iteration. 2014-05-22 12:40:20 +02:00
Spring Buildmaster
c67f79d5ae DATAREST-306 - Release version 2.1.0.RELEASE. 2014-05-20 20:04:39 +02:00
Oliver Gierke
e9e4da3062 DATAREST-306 - Prepare 2.1 GA. 2014-05-20 20:04:32 +02:00
Oliver Gierke
e61e6794e3 DATAREST-306 - Updated changelog. 2014-05-20 16:26:41 +02:00
Oliver Gierke
5c507edb52 DATAREST-307 - Fixed handling of root resource on Tomcat.
We're now using a single slash to make sure the downstream method mapping works as expected.
2014-05-20 13:39:21 +02:00
Thomas Darimont
9f58e2452c DATAREST-305 - Enable Java 8 build in maven configuration.
Extended closed interval in maven enforcerer plugin configuration to include Java 8 (1.8).

Original pull request: #138.
2014-05-19 11:37:59 +02:00
Oliver Gierke
ca3b3bb354 DATAREST-301 - Fixed location header creation for self links containing URI templates.
We now consistently expand the self links created before adding them as location header to make sure we can create a URI instance successfully.
2014-05-06 12:10:55 +02:00
Oliver Gierke
fe3c10bead DATAREST-300 - BaseUri now removes URI template variables from lookup path.
BaseUri now strips away the tail of a lookup path starting with {. An unencoded { must never appear in a URI but could accidentally be sent by a client forgetting to expand URI templates we return.
2014-05-05 14:26:17 +02:00
Oliver Gierke
ef7cf82441 DATAREST-297 - After release cleanups. 2014-05-02 15:46:29 +02:00
Spring Buildmaster
cafa6f7931 DATAREST-297 - Prepare next development iteration. 2014-05-02 06:15:33 -07:00
Spring Buildmaster
5693af6f2a DATAREST-297 - Release version 2.1.0.RC1. 2014-05-02 06:15:31 -07:00
Oliver Gierke
683e0afacf DATAREST-297 - Prepare 2.1.0.RC1.
Upgraded to Spring Data Parent 1.4.0.RC1 and Spring Data Commons 1.8.0.RC1. Switched to milestone repository.
2014-05-02 15:01:45 +02:00
Oliver Gierke
bbd94c22ef DATAREST-297 - Updated changelog. 2014-05-02 15:01:28 +02:00
Oliver Gierke
ef66ccca35 DATAREST-297 - Forward port changelog entries from bugfix branch. 2014-05-02 12:53:09 +02:00
Oliver Gierke
b458378bbc DATAREST-276 - Yet another round of trailing slash handling.
We need to proactively strip trailing slashes during base URI handling as even on a successful match (which previously left trailing slashes intact) this might subsequently on the resolving of the repository metadata when evaluating the left-over lookup path against the @RequestMapping methods (which keeps trailing slashes).
2014-05-02 11:19:44 +02:00
Oliver Gierke
358ff1bda8 DATAREST-297 - Prepare 2.1.0.RELEASE.
Upgraded to Spring HATEOAS 0.11.0, Spring Plugin 1.1.0 and Evo Inflector 1.1.
2014-05-01 20:52:29 +02:00
Oliver Gierke
b2927eb5a0 DATAREST-276 - Improved BaseUri to accomodate trailing slashes.
We now strip trailing and leading slashes from configured base URI to make sure the matching algorithm accommodates both lookup paths with and without trailing slashes.

Added a few more tests in shape of unit tests for BaseUri.
2014-05-01 14:47:42 +02:00