Commit Graph

1013 Commits

Author SHA1 Message Date
Oliver Drotbohm
1c57054510 #1743 - Releasing Spring HATEOAS 1.3.7. 2022-01-14 08:37:16 +01:00
Oliver Drotbohm
da8688526d #1743 - Prepare changelog. 2022-01-14 08:36:22 +01:00
Oliver Drotbohm
33fbe1f949 #1742 - upgrade to Jackson 2.12.6. 2022-01-14 08:25:36 +01:00
Oliver Drotbohm
94dc94058d #1741 - Upgrade to Reactor 2020.0.15. 2022-01-14 08:18:07 +01:00
Oliver Drotbohm
c4893ca14c #1740 - Upgrade to Spring Framework 5.3.15. 2022-01-14 08:16:54 +01:00
Oliver Drotbohm
a3c96e3641 #1732 - Polishing. 2021-12-10 11:12:37 +01:00
Oliver Drotbohm
9266b6accd #1732 - Added equals(…) and hashCode() methods to TypeBasedPayloadMetadata.
$ Conflicts:
$	src/test/java/org/springframework/hateoas/server/mvc/WebMvcLinkBuilderUnitTest.java
2021-12-10 11:12:05 +01:00
Oliver Drotbohm
183d3dc2e6 #1729 - Fix potential resource leak in DummyInvocationUtils.
We now constrain the cache of controller proxy instances to 256 elements using Spring's ConcurrentLruCache to avoid instances created via DummyInvocationUtils.methodOn(Class<?>, Object…). The parameters are part of the cache key and used to expand the type-level mappings. If those vary for each call and a request creates a lot of links (>100000) the memory consumption grows significantly, first and foremost indefinitely.

Using the ThreadLocal will still make sure that the cache is local to a current request, so the proxies can actually be reused as the method invocations used to record the mappings would interfere for concurrent requests otherwise.

Removed obsolete generic parameter on the CacheKey type.
2021-11-23 23:23:02 +01:00
Oliver Drotbohm
67e7ad41b0 #1713 - Continue development on 1.3.7-SNAPSHOT. 2021-11-11 15:06:08 +01:00
Oliver Drotbohm
f5eb195ff6 #1713 - Releasing Spring HATEOAS 1.3.6. 2021-11-11 15:06:05 +01:00
Oliver Drotbohm
7d2e3877f3 #1713 - Update change log prior to release. 2021-11-11 15:05:39 +01:00
Oliver Drotbohm
4cfecbe51a #1712 - Upgrade to Spring Framework 5.3.13. 2021-11-11 14:49:17 +01:00
Oliver Drotbohm
a544ccc838 #1711 - Upgrade to Reactor 2020.0.13. 2021-11-11 14:45:10 +01:00
Oliver Drotbohm
b7577e026e #1699 - Support for custom property types in HAL FORMS.
As per the discussion in mamund/hal-forms#88, the list of property types in HAL FORMS is not exhaustive. This means we cannot align them with HTML input types and even more so not drop anything not an HTML input type.

This is now implemented by switching to generic Strings in the HAL FORMS property DTO and directly piping the value originally registered on the affordance into it.
2021-11-02 07:59:32 +01:00
Oliver Drotbohm
46b84bef38 #1683 - Backport of tests.
Backport of the tests introduced with 071256 to make sure the problem doesn't exist in this branch.
2021-10-28 20:47:21 +02:00
Oliver Drotbohm
fe0d0090b6 #1693 - Avoid serializing empty beans in EntityModel.
The unwrapping nature of EntityModel.getContent() does not work well with value that would result in an empty object being rendered. We now skip the rendering if failing for empty beans is disabled.
2021-10-19 13:58:32 +02:00
Oliver Drotbohm
e9e83c5868 #1691 - Use Links.collector() in JsonPathLinkDiscoverer. 2021-10-19 13:28:23 +02:00
Oliver Drotbohm
1b6bf97e93 #1689 - Fix Javadoc in LinkDiscovererfindLinkWithRel(…). 2021-10-19 13:26:33 +02:00
Oliver Drotbohm
3f103d0c2d #1672 - Continue development on 1.3.6-SNAPSHOT. 2021-10-14 16:18:56 +02:00
Oliver Drotbohm
9c3bf095ff #1672 - Releasing Spring HATEOAS 1.3.5. 2021-10-14 16:18:54 +02:00
Oliver Drotbohm
e18cb9692e #1672 - Update changelog prior to release. 2021-10-14 16:17:26 +02:00
Oliver Drotbohm
8861300b64 #1675 - Upgrade to Reactor 2020.0.12. 2021-10-14 16:12:20 +02:00
Oliver Drotbohm
03f16f6373 #1674 - Upgrade to Spring Framework 5.3.11. 2021-10-14 16:11:29 +02:00
Oliver Drotbohm
121cd598e0 #1673 - Upgrade to Lombok 1.18.22. 2021-10-14 16:07:01 +02:00
Oliver Drotbohm
11551f9c57 #1672 - Switch to latest Artifactory Maven plugin.
Allows us to avoid a dedicated plugin repository.
2021-10-14 16:05:28 +02:00
Josh Gough
e38c554e29 #1663 - Documentation fix in HalModelBuilder usage.
Changed ….halModel(order) to ….halModelOf(order) for plain entities.
2021-10-13 16:56:51 +02:00
Oliver Drotbohm
7cd5dc6120 #1661 - Prevent IndexOutOfBoundException in WebConverters.
We now skip the registration of the default media type if no hypermedia types are activated in the first place. We previously assumed there'd be at least one media type configuration registered.
2021-10-12 13:19:57 +02:00
Oliver Drotbohm
2e84949b34 #1639 - Update build plugins to be JDK 17 compatible. 2021-09-24 17:11:28 +02:00
Oliver Drotbohm
a43a3d68be #1653 - Tighten contracts for parameter values in MethodLinkBuilderFactory.linkTo(…).
If a parameter array is given to MethodLinkBuilderFactory.linkTo(…) methods, we now verify its correct length in correspondence to the method given. If no parameters are given at all, we automatically create a parameter value array of the required length.
2021-09-24 16:39:49 +02:00
Oliver Drotbohm
5523dfbb2a #1649 - Improve proxy creation in DummyInvocationUtils.
We now explicitly set the optimize flag on the ProxyFactory for class based proxies used to create dummy invocation proxies. Still needs the upgrade to Spring Framework 5.3.11 (spring-projects/spring-framework#27439, #1647) to create full effect.
2021-09-21 17:58:14 +02:00
Oliver Drotbohm
8acbbe6d69 #1643 - Upgrade to Lombok 1.18.20. 2021-09-20 22:18:39 +02:00
Oliver Drotbohm
380d03cfeb #1642 - Upgrade to Kotlin Maven Plugin 1.5.31 for JDK 17 compatibility. 2021-09-20 22:17:16 +02:00
Oliver Drotbohm
e5a46052e5 #1642 - Tweak CI build to run compatibility builds against JDK 17. 2021-09-20 13:30:35 +02:00
Oliver Drotbohm
f2f305e511 #1641 - Avoid trying to proxy Object for controller method dummy invocations.
On JDK 17, trying to proxy Object doesn't work anymore. We now simply return the interceptor that would've been applied to the proxy directly and detect that properly in requests to extract the LastInvocationAware instance.
2021-09-20 13:29:29 +02:00
Oliver Drotbohm
98e1f6966f #1623 - Continue development on 1.3.5-SNAPSHOT. 2021-09-16 12:50:25 +02:00
Oliver Drotbohm
c0df488ecc #1623 - Releasing Spring HATEOAS 1.3.4. 2021-09-16 12:50:22 +02:00
Oliver Drotbohm
750455bbae #1623 - Prepare 1.3.4 release. 2021-09-16 12:49:54 +02:00
Oliver Drotbohm
6fd5ca8613 #1623 - Update test dependencies for 1.2.9 release.
ArchUnit -> 0.21.0
Logback -> 1.2.6
JaCoCo -> 0.8.7
JUnit -> 5.7.2

Removed Bintray plugin repository.
2021-09-16 12:43:24 +02:00
Oliver Drotbohm
13398396ae #1619 - Upgrade kotlin-next build profile dependency versions. 2021-09-16 12:40:39 +02:00
Oliver Drotbohm
0201eb5519 #1618 - Update spring-next build profile versions. 2021-09-16 12:40:14 +02:00
Oliver Drotbohm
d91b5d6651 #1622 - Upgrade to Jackson 2.12.5. 2021-09-16 12:35:25 +02:00
Oliver Drotbohm
3fe813faa9 #1621 - Upgrade to Reactor 2020.0.11. 2021-09-16 12:33:56 +02:00
Oliver Drotbohm
8d56319f21 #1620 - Upgrade to Slf4j 1.7.32. 2021-09-16 12:32:59 +02:00
Oliver Drotbohm
4e53732203 #1619 - Upgrade to Kotlin 1.4.32. 2021-09-16 12:31:35 +02:00
Oliver Drotbohm
08ce42d1ba #1618 - Upgrade to Spring Framework 5.3.10. 2021-09-16 12:30:38 +02:00
Oliver Drotbohm
676ae39b32 #1610 - Avoid superfluous object creation in Link.valueOf(…).
We now avoid calling with…-methods for every attribute parsed from an RFC-8288 link string.
2021-09-16 11:28:56 +02:00
Oliver Drotbohm
29e95974f4 #1607 - Polishing. 2021-09-14 11:43:40 +02:00
Oliver Drotbohm
6c3ce4e816 #1605 - Polish nullability for Link. 2021-09-14 10:37:01 +02:00
Oliver Drotbohm
7380e494b6 #1603 - Properly contextualize MapSuppressingUnwrappingSerializer.
According to FasterXML/jackson-databind#3272, we have to explicitly contextualize the delegate serializer we use for non-Map content in EntityModel.
2021-09-14 09:03:33 +02:00
Oliver Drotbohm
26c6ac2fe0 #1600 - Properly create Property instances in PropertyUtils.
We now hand the already known property name (from the PropertyDescriptor) to the Property instance we create when inspecting classes for metadata. This avoids ambiguities stemming from the fact that Property assumes Java Bean style properties but Spring's BeanUtils also supporting Java Records style accessors. In special naming contexts like the one used in the test case, this can lead to properties considered "the same" as their accessor methods imply their name is the same.
2021-09-09 16:06:24 +02:00