Commit Graph

1446 Commits

Author SHA1 Message Date
Jay Bryant
ace69c5e8d 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:10:48 +02:00
Oliver Drotbohm
3838214d54 Consistent anchor names for headings in documentation. 2021-07-15 16:31:00 +02:00
Oliver Drotbohm
8a1d147009 Remove 3.x deprecations.
Removed all deprecations that have accumulated in the 3.x timeline so far.
2021-07-15 08:20:11 +02:00
Oliver Drotbohm
161a3a9499 Allow customization of LinkCollector.
LinkCollector is now an interface. The actual implementation has been moved to DefaultLinkCollector. RepositoryRestConfigurer now has a customizeLinkCollector(…) callback method to tweak or even completely replace the LinkCollector instance.

Fixes #2042.
2021-07-15 08:15:20 +02:00
Oliver Drotbohm
0c24113484 Dedicated customization callback for AuditableBeanWrapperFactory.
Introduced RepositoryRestConfigurer.customizeAuditableBeanWrapperFactory(…) so that implementations can customize the default instance provided by RepositoryRestMvcConfiguration.

Fixes #2040.
2021-07-14 19:01:11 +02:00
Oliver Drotbohm
f310a4ce58 Upgrade Spring Security tests for 5.5.1. 2021-07-14 17:38:04 +02:00
Oliver Drotbohm
a8c39eb9f8 Adapt test cases to adhere to RFC URI template expansion. 2021-07-14 17:33:47 +02:00
Oliver Drotbohm
b6cefe4d9a Ensure buildability on JDK 16.
Properly initialize the MongoMappingContext in unit tests when using special identifier types. Explicitly add javax.annotation as dependency in shop tests.
2021-07-13 15:13:28 +02:00
Oliver Drotbohm
2aa069bed7 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:03:07 +02:00
Oliver Drotbohm
752d888db7 Upgrade MongoDB driver to 4.3.0-beta4 for integration tests. 2021-07-13 09:33:31 +02:00
Oliver Drotbohm
b678ce6bc9 PersistentEntitiesResourceMapping.hasMappingFor(…) should lookup metadata on cache miss. 2021-07-13 09:27:03 +02:00
Oliver Drotbohm
e1dd82c927 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:25:57 +02:00
Oliver Drotbohm
940a676e6d 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:20:09 +02:00
Mark Paluch
ab007212b7 Updated changelog.
See #2012
2021-06-22 16:07:28 +02:00
Mark Paluch
51df034bbc Updated changelog.
See #2011
2021-06-22 15:29:54 +02:00
Oliver Drotbohm
4e1c949fb9 Remove explicit Spring HATEOAS snapshot version.
See #2019.
2021-06-22 15:13:41 +02:00
Greg L. Turnquist
dd2a07e449 Use project-specific containers for CI testing.
This project shall maintain its own containers for CI testing purposes, instead of depending upon Spring Data MongoDB's containers.

See #2027.
2021-06-17 17:12:56 -05:00
Oliver Drotbohm
e2f8d2f2c4 Avoid using Guava's Charset.
Replaced with Java's StandardCharset. Fixes #2026.
2021-06-17 21:16:14 +02:00
Oliver Drotbohm
032f5ba57f Added GraalVM resource-config.json to support HAL Explorer in native images.
Fixes #2025.
2021-06-17 20:15:39 +02:00
Oliver Drotbohm
c227013f27 Upgrade to Spring Security 5.5.0.
Fixes #2020.
2021-06-08 15:46:36 +02:00
Oliver Drotbohm
b154ff88d6 Conclude abbreviated sentence in reference docs.
Fixes #2016.
2021-06-08 15:08:30 +02:00
Greg L. Turnquist
979b050d35 Use Spring HATEOAS snapshots.
See #2019.
2021-06-03 12:11:56 -05:00
Greg L. Turnquist
bc5478ec49 Drop explicit dependency on JSON Path.
Let Spring HATEOAS bring in this dependency.

See #2018.
2021-06-03 12:11:21 -05:00
Kai Toedter
68219052ca Update HAL Explorer screens to version 0.17.0.
See #2013.
2021-05-19 12:24:39 -05:00
Mark Paluch
486f912855 Updated changelog.
See #1999
2021-05-14 12:36:39 +02:00
Mark Paluch
80970179d5 Updated changelog.
See #1998
2021-05-14 12:06:42 +02:00
Oliver Drotbohm
2d822d370c Upgrade to HAL Explorer 0.17.0.
Fixes #2010.
2021-05-14 11:11:16 +02:00
Greg L. Turnquist
ee1057bd9d Update CI to JDK 16.
See #1989.
2021-05-13 16:05:35 -05:00
Kai Toedter
ba06a4d0f7 Replaced HAL Browser documentation with HAL Explorer documentation.
Removed unnecessary CustomPostForm.js from HAL Explorer. HAL Explorer natively supports Spring Profiles. Update link in README.adoc to the HAL Explorer section in the reference docs Correct typo and incorrect description in HAL-Explorer section.

Fixes #2005.
2021-05-11 16:40:23 +02:00
Oliver Drotbohm
0a0d410800 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.
2021-05-07 22:12:57 +02:00
Greg L. Turnquist
2f3ec79cd0 Authenticate with artifactory.
See #1992.
2021-04-22 16:03:09 -05:00
Greg L. Turnquist
6402b1aeef Introduce quiet period.
Reduce the number of downstream builds that get triggered by using quiet time.

See #1992.
2021-04-16 13:03:23 -05:00
Greg L. Turnquist
0e563b2605 Migrate to main branch.
See #1992.
2021-04-16 13:01:20 -05:00
Mark Paluch
4c35f36598 After release cleanups.
See #1992
2021-04-14 14:30:15 +02:00
Mark Paluch
0a31ef1d84 Prepare next development iteration.
See #1992
2021-04-14 14:30:12 +02:00
Mark Paluch
8a690929f0 Release version 3.5 GA (2021.0.0).
See #1992
2021-04-14 14:18:49 +02:00
Mark Paluch
fc75262e5e Prepare 3.5 GA (2021.0.0).
See #1992
2021-04-14 14:18:22 +02:00
Mark Paluch
bf69835fe7 Updated changelog.
See #1992
2021-04-14 14:18:18 +02:00
Mark Paluch
f118abcf15 Updated changelog.
See #1993
2021-04-14 11:43:34 +02:00
Mark Paluch
26663c3ab6 Updated changelog.
See #1987
2021-04-14 11:17:42 +02:00
Oliver Drotbohm
a5a8748774 Upgrade to HAL Explorer 0.16.0.
Fixes #1996.
2021-04-13 08:45:54 +02:00
Oliver Drotbohm
6c007487c7 RepositoryRestConfigurer are again used in declared order.
4b36f79 introduced a regression by consuming registered RepositoryRestConfigurer instances via ApplicationContext.getBeansOfType(…).values() which, unlike the previous consumption via a List<RRC> in an @Bean method, is losing the declared order of the RRC instances as ….getBeansOfType() is a Map.

We now rather use an ObjectProvider and its ….orderedStream() method to consume the registered instances ordered properly.

Fixes #1995.
2021-04-09 12:42:24 +02:00
Oliver Drotbohm
b4b8fdfee0 Support aggregate reference resolution for DTOs.
Introduce AggregateReferenceResolvingModule to be registered with the default ObjectMapper instance that will allow to materialize aggregate instances from URIs for incoming web requests. We do not apply this for aggregate roots themselves as they're already handled by the AssociationUriResolvingDeserializerModifier.
2021-04-07 20:07:54 +02:00
Oliver Drotbohm
21ed68262f Properly handle associations in nested entities.
Nested entities that contain a reference to an aggregate root get a link to that attached to their representation. Previously, the creation of those links assumed that the reference is a materialized instance of the remote aggregate. That's now altered to be able to deal with associations, use identifiers directly or materialize to an intermediate aggregate instance to potentially use a custom lookup.
2021-04-07 20:07:53 +02:00
Oliver Drotbohm
20cb33512e Fixed potential NullPointerException in PersistentPropertyResourceMapping.isExported().
Fixes GH-1994.
2021-04-07 20:07:53 +02:00
Mark Paluch
904f99f31d Updated changelog.
See #1988
2021-03-31 18:30:45 +02:00
Mark Paluch
d69942c43a After release cleanups.
See #1976
2021-03-31 17:24:06 +02:00
Mark Paluch
8e42a2a221 Prepare next development iteration.
See #1976
2021-03-31 17:24:04 +02:00
Mark Paluch
d77e5192d8 Release version 3.5 RC1 (2021.0.0).
See #1976
2021-03-31 17:05:09 +02:00
Mark Paluch
dda2402ac2 Prepare 3.5 RC1 (2021.0.0).
See #1976
2021-03-31 17:04:35 +02:00