Commit Graph

1484 Commits

Author SHA1 Message Date
Christoph Strobl
4eac352761 After release cleanups.
See #2085
2022-01-14 10:00:58 +01:00
Christoph Strobl
c48d389ddd Prepare next development iteration.
See #2085
2022-01-14 10:00:55 +01:00
Christoph Strobl
33045214b5 Release version 3.5.8 (2021.0.8).
See #2085
2022-01-14 09:47:49 +01:00
Christoph Strobl
15044ff842 Prepare 3.5.8 (2021.0.8).
See #2085
2022-01-14 09:47:09 +01:00
Jens Schauder
3b1f139617 After release cleanups.
See #2079
2021-11-12 10:38:58 +01:00
Jens Schauder
321b701dbd Prepare next development iteration.
See #2079
2021-11-12 10:38:55 +01:00
Jens Schauder
efbf982f5b Release version 3.5.7 (2021.0.7).
See #2079
2021-11-12 10:27:21 +01:00
Jens Schauder
c7835bc679 Prepare 3.5.7 (2021.0.7).
See #2079
2021-11-12 10:26:44 +01:00
Oliver Drotbohm
6a6c173503 Consider @CrossOrigin(originPatterns = …).
RepositoryRestHandlerMapping's RepositoryCorsConfigurationAccessor now also evaluates @CrossOrigin's originPatterns into the CorsConfiguration.

Fixes #2077.
2021-10-19 10:33:00 +02:00
Mark Paluch
7f0b6d415c After release cleanups.
See #2065
2021-10-18 11:19:45 +02:00
Mark Paluch
c9ad97dbe6 Prepare next development iteration.
See #2065
2021-10-18 11:19:42 +02:00
Mark Paluch
67b64d2391 Release version 3.5.6 (2021.0.6).
See #2065
2021-10-18 11:11:46 +02:00
Mark Paluch
857a151411 Prepare 3.5.6 (2021.0.6).
See #2065
2021-10-18 11:10:49 +02:00
Patrik Mihalcin
25bd6d4ba5 Fix typo in RepositoryRestController's JavaDoc
Fixes #2061.
2021-10-13 16:02:25 +02:00
Oliver Drotbohm
b7fd4fb73b Prevent using NestedEntitySerializer if target serializer does not support unwrapping.
We now verify that the serializer registered for the type that's supposed to be handled by the NestedEntitySerializer actually supports unwrapping as the serialization in EntityModel (MapSuppressingUnwrappingSerializer) requires that to work properly.

Fixes #2056.
2021-10-13 11:56:43 +02:00
Oliver Drotbohm
5f4e24b912 Switch to JUnit 5.
Issue #2075.
2021-10-12 22:34:01 +02:00
Oliver Drotbohm
3d03b0cbe6 Reduce general runtime exception logging to debug.
Issue #2074.
2021-10-12 16:21:22 +02:00
Oliver Drotbohm
a6de3b18c4 Prevent duplicate controller registrations through class-level @RequestMapping.
When we detected @BasePathAwareController and @RepositoryRestController instances, we now reject types that use @RequestMapping on the class level as doing so causes an inevitable registration of the controller with Spring MVC.

Fixes #1342, #1628, #1686, #1946.
2021-10-06 12:35:41 +02:00
Oliver Drotbohm
2e1223c46c Polishing. 2021-09-29 16:48:14 +02:00
Oliver Drotbohm
13f6704803 Improve documentation of default response body rendering for POST and PUT requests.
Fixes #2063.
2021-09-29 16:48:11 +02:00
Oliver Drotbohm
002174cdc5 Polish Javadoc to prepare builds with JDK 17.
Issue #2068.
2021-09-21 15:30:18 +02:00
Mark Paluch
a4b7972f8d After release cleanups.
See #2051
2021-09-17 09:27:40 +02:00
Mark Paluch
da8ae156fd Prepare next development iteration.
See #2051
2021-09-17 09:27:36 +02:00
Mark Paluch
20fb7e6c8e Release version 3.5.5 (2021.0.5).
See #2051
2021-09-17 09:18:33 +02:00
Mark Paluch
d230060360 Prepare 3.5.5 (2021.0.5).
See #2051
2021-09-17 09:17:30 +02:00
Oliver Drotbohm
b9b974b803 Adapt Content-Type header for HAL FORMS requests based on affordances.
Whenever HAL FORMS is supposed to be rendered, we now adapt the `Content-Type` header depending on whether affordances (and thus `_templates`) are present. If none can be found, we either adapt the header to either `application/hal+json` or even `application/json` depending on the `Accept` header arrangement given. If none match, we reject the request with `406 Not Acceptable`.

Had to reintroduce a dependency on Lombok to use @SneakyThrows as otherwise we cannot throw HttpMediaTypeNotAcceptableException from a ResponseBodyAdvice. A manual implementation of the pattern does not compile on Java 8 (at least on MacOS).

Fixes #2060.
2021-09-14 22:34:15 +02:00
Mark Paluch
306369a237 Upgrade to Maven Wrapper 3.8.2.
See #2059
2021-09-10 15:39:39 +02:00
Oliver Drotbohm
e06ad7282d Avoid reflection in RepositoryRestMvcConfiguration.
We now completely avoid reflection in RepositoryRestMvcConfiguration by delaying all bean lookups that were previously declared through autowired fields.

Fixes #2057.
2021-08-26 15:44:09 +02:00
Oliver Drotbohm
eeee271b36 DelegatingHandlerMapping now fully implements MatchingHandlerMapping correctly.
We now also implement MatchableHandlerMapping.getPatternParser() to expose the PathPatternParser we use. This is needed to detect that DelegatingHandlerMapping uses a PathPatternParser from the outside as the Spring MVC request processing pipeline treats those HandlerMappings in a special way. This is especially important in the context of spring-projects/spring-framework#26814 as that makes the HM implementations work properly in CORS preflight requests.

When used with Spring Security in place, CORS preflight requests are inspected through the HandlerMappingIntrospector, that looks up the CORS configuration for the handler to serve the actual request. That lookup previously failed as Spring MVC was unable to detect that Spring Data REST's DelegatingHandlerMapping works with a PathPatternParser and didn't properly set up the processing pipeline to eventually end up in an invalid state, produce an exception that caused the handler method lookup to fail and cause Spring Security to fail with a 403, claiming the request was invalid.

Fixes #2007, #2054.
2021-08-19 23:31:56 +02:00
Oliver Drotbohm
f2f8775c03 Avoid eager reference to BackendIdConverter beans.
Switched to bean method parameter reference to all BackendIdConverter instances.

Fixes #2055.
2021-08-19 23:19:22 +02:00
Jens Schauder
b65addbed6 After release cleanups.
See #2045
2021-08-12 11:37:31 +02:00
Jens Schauder
7302b102aa Prepare next development iteration.
See #2045
2021-08-12 11:37:30 +02:00
Jens Schauder
31d9eacc4a Release version 3.5.4 (2021.0.4).
See #2045
2021-08-12 11:22:50 +02:00
Jens Schauder
f5df905be5 Prepare 3.5.4 (2021.0.4).
See #2045
2021-08-12 11:22:27 +02:00
Jens Schauder
afa949084b After release cleanups.
See #2031
2021-07-16 11:51:06 +02:00
Jens Schauder
1a92af0390 Prepare next development iteration.
See #2031
2021-07-16 11:51:03 +02:00
Jens Schauder
b786ac3219 Release version 3.5.3 (2021.0.3).
See #2031
2021-07-16 11:35:22 +02:00
Jens Schauder
8783074669 Prepare 3.5.3 (2021.0.3).
See #2031
2021-07-16 11:34:27 +02:00
Jens Schauder
dc6e317bc2 Updated changelog.
See #2031
2021-07-16 11:34:25 +02:00
David Lozano Jarque
a91eb5ae17 Reintroduce link to "Understanding HATEOAS" document.
As the "understanding" section is not published any more, move link to Markdown file in the GitHub repository.

Original ticket: DATAREST-1392
2021-07-16 09:16:21 +02:00
Max Brauer
c2f260fb88 Fix incomplete sentence in reference docs of association resources.
Fixes #372.
2021-07-16 09:10:33 +02:00
Thomas Küstermann
bf4b85503a Update documentation link to Spring HATEOAS's method links
Prefer link to official HATEOAS documentation rather than linking to the Github project README.
2021-07-16 09:07:54 +02:00
Joe Greubel
c6007bc06e Correct resource name in query method section.
Fixes #370.
2021-07-16 08:52:05 +02:00
Jay Bryant
49ee98874f Wording changes
Removed the language of oppression and violence and replaced it with more neutral language.

Note that problematic words in the code have to remain in the docs until the code changes.

Fixes #379.
2021-07-16 00:11:10 +02:00
Oliver Drotbohm
9b4c1df0d9 Consistent anchor names for headings in documentation. 2021-07-15 16:30:53 +02:00
Oliver Drotbohm
d7c20256fb Tweak upstream CI triggers to reduce build load.
We now only build upon changes made to Spring HATEOAS and Spring Data Commons.
2021-07-13 13:04:08 +02:00
Oliver Drotbohm
c3e02642d6 PersistentEntitiesResourceMapping.hasMappingFor(…) should lookup metadata on cache miss. 2021-07-13 09:42:29 +02:00
Oliver Drotbohm
659a502914 Prevent NullPointerException in AggregateReferenceDeserializerModifier.
In AggregateReferenceDeserializerModifier we now look up the original property name on the Jackson metadata before trying to resolve the property target type. We also explicitly guard against null values returned from that lookup and opt out of the customization in those cases.
2021-07-13 09:42:26 +02:00
Oliver Drotbohm
c46d23a53f RepositoryResourceMappings now processes all entities to detect repository mappings.
We now consider all registered PersistentEntity instances and try to detect repository metadata for them. A case we didn't cover before was that a repository was declared for an aggregate super type but the actual child aggregate class didn't have a dedicated repository declared. While this is a perfectly valid scenario, the mapping information was broken as it fell back on the plain domain type information and produced paths and relation names derived from that, even if there's a super type repository available.

Thus, solely traversing the aggregate types we have repositories registered for is not enough. We now traverse all known PersistentEntity types and also register repository metadata for all types that are assignable to a known domain type. The latter is actually implemented in Spring Data Commons' Repositories via spring-projects/spring-data-commons#2406.
2021-07-07 16:23:32 +02:00
Mark Paluch
58f16af7c0 After release cleanups.
See #2012
2021-06-22 16:05:23 +02:00