Commit Graph

1039 Commits

Author SHA1 Message Date
Oliver Drotbohm
da4cde5e5e #1774 - Upgrade to Jackson 2.13.2.1. 2022-04-19 10:32:56 +02:00
Oliver Drotbohm
6b156feacf #1769 - Upgrade to Reactor 2020.0.18. 2022-04-19 09:59:51 +02:00
Oliver Drotbohm
b1dd51a028 #1768 - Upgrade to Spring Framework 5.3.19. 2022-04-19 09:58:27 +02:00
Oliver Drotbohm
0558bd0cd2 #1766 - Performance tweaks in TemplateVariable.toString(…).
Heavily inspired by the PR @MikeRocke, we removed all usage of String.format(…) from hot code paths triggered by ….toString() as it's used in general output a lot.

Before:

Benchmark                                    Mode  Cnt         Score        Error  Units
TemplateVariableBenchmark.toString(…)       thrpt    3   2803239,270 ± 110258,955  ops/s

After:

Benchmark                                    Mode  Cnt         Score        Error  Units
TemplateVariableBenchmark.toString(…)       thrpt    3  10753653,459 ± 156684,459  ops/s
2022-04-14 14:46:44 +02:00
Oliver Drotbohm
afb87f83b8 #1747 - Update copyright years to 2022. 2022-02-07 10:36:22 +01:00
Oliver Drotbohm
5403fa5b9d #1747 - Continue development on 1.4.2-SNAPSHOT. 2022-01-14 09:38:57 +01:00
Oliver Drotbohm
39d121e74c #1747 - Releasing Spring HATEOAS 1.4.1. 2022-01-14 09:38:55 +01:00
Oliver Drotbohm
cb3656cdfb #1747 - Prepare changelog. 2022-01-14 09:37:41 +01:00
Oliver Drotbohm
ee2f35048c #1746 - Upgrade to Jackson 2.13.1. 2022-01-14 09:33:26 +01:00
Oliver Drotbohm
3c89f8dd6c #1745 - Upgrade to Reactor 2020.0.15. 2022-01-14 09:08:55 +01:00
Oliver Drotbohm
364f7226dc #1744 - Upgrade to Spring Framework 5.3.15. 2022-01-14 08:54:44 +01:00
Oliver Drotbohm
75bb8f4dac #1731 - Prevent premature base encoding in UriTemplate if host is templated. 2021-12-10 11:02:57 +01:00
Oliver Drotbohm
705260d128 #1730 - Polishing. 2021-12-10 11:02:38 +01:00
Oliver Drotbohm
3b47c13f2d #1730 - Added equals(…) and hashCode() methods to TypeBasedPayloadMetadata. 2021-12-10 11:02:38 +01:00
Oliver Drotbohm
7f93694c69 #1723 - Fix performance degradations introduced by #467.
The commits for #467 significantly degraded performance as CachingMappingDiscoverer.getParams(Method) doesn't properly cache the result of the call which causes quite expensive, unnecessarily repeated annotation lookups for the very same method. We also avoid the creation of an Optional instance for the sole purpose of a simple null check.

Introduce FormatterFactory to potentially cache the to-String formatting functions and thus avoid repeated evaluation and Function object creation.

We now also avoid the creation of ParamRequestCondition instances if no @RequestParams(params = …) values could be found in the first place.
2021-11-23 23:25:54 +01:00
Oliver Drotbohm
db46db5c6f #1723 - 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:25:53 +01:00
Oliver Drotbohm
c4b4e6d405 #1714 - Continue development on 1.4.1-SNAPSHOT. 2021-11-23 23:22:19 +01:00
Oliver Drotbohm
9646ab6790 #1714 - Releasing Spring HATEOAS 1.4.0. 2021-11-11 15:24:59 +01:00
Oliver Drotbohm
7b46211790 #1714 - Update change log prior to release. 2021-11-11 15:24:20 +01:00
Oliver Drotbohm
cea7b3ac26 #1716 - Upgrade to Spring Framework 5.3.13. 2021-11-11 15:19:56 +01:00
Oliver Drotbohm
9faf91546b #1715 - Upgrade to Reactor 2020.0.13. 2021-11-11 15:19:01 +01:00
Oliver Drotbohm
c487fcc802 #1697 - 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 00:15:11 +01:00
Oliver Drotbohm
07125638f4 #1696 - Re-instantiate conversion for request parameter template variables.
When adding a request parameter template variable and the URI part of the template already contains a request parameter we now automatically turn the variable type into request parameter continuation. That apparently got lost in the move to level 4 URI templates in #1583.
2021-10-28 20:42:55 +02:00
Oliver Drotbohm
2cac83fcef #1686 - 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:54:18 +02:00
Oliver Drotbohm
e0f1643448 #1688 - Use Links.collector() in JsonPathLinkDiscoverer. 2021-10-19 13:24:38 +02:00
Oliver Drotbohm
b78d6d59b9 #1687 - Fix Javadoc in LinkDiscovererfindLinkWithRel(…). 2021-10-19 13:23:16 +02:00
Oliver Drotbohm
d1b7219c1f #1682 - Continue development on 1.4.0-SNAPSHOT. 2021-10-14 16:57:40 +02:00
Oliver Drotbohm
f8c73d2686 #1682 - Releasing Spring HATEOAS 1.4.0-RC1. 2021-10-14 16:57:38 +02:00
Oliver Drotbohm
59b861b158 #1682 - Update changelog prior to release. 2021-10-14 16:57:06 +02:00
Oliver Drotbohm
cf74550f1c #1681 - Upgrade to Kotlin 1.5.31. 2021-10-14 16:42:30 +02:00
Oliver Drotbohm
4f5bb1f65b #1680 - Upgrade toReactor 2020.0.12. 2021-10-14 16:40:20 +02:00
Oliver Drotbohm
23ebbbee3a #1679 - Upgrade to Lombok 1.18.22. 2021-10-14 16:39:11 +02:00
Oliver Drotbohm
40514d1dfa #1678 - Upgrade to JUnit 5.8.1. 2021-10-14 16:38:29 +02:00
Oliver Drotbohm
d9ced02300 #1677 - Upgrade to Jackson 2.13.0. 2021-10-14 16:35:49 +02:00
Oliver Drotbohm
02442362ed #1676 - Upgrade to AssertJ 3.21.0. 2021-10-14 16:34:48 +02:00
Oliver Drotbohm
7021ecf7cf #1647 - Upgrade to Spring Framework 5.3.11. 2021-10-14 16:33:09 +02:00
Josh Gough
994bf861d2 #1659 - Documentation fix in HalModelBuilder usage.
Changed ….halModel(order) to ….halModelOf(order) for plain entities.
2021-10-13 16:31:47 +02:00
Oliver Drotbohm
3d7458b5f6 #1662 - HAL FORMS template target must be a URL.
We now expand the affordance link before we add it to the HAL FORMS template.

Also see #1660.
2021-10-12 13:52:34 +02:00
Oliver Drotbohm
ab02d45b8e #1657 - 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:14:08 +02:00
Oliver Drotbohm
eca7fc23e7 #1658 - Re-expose AnnotationMappingDiscoverer.
It's required from Spring Data REST.
2021-10-08 10:50:28 +02:00
Oliver Drotbohm
f0a000a07e #1652 - 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:36:53 +02:00
Oliver Drotbohm
3b94d4b862 #1448 - 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:55:28 +02:00
Oliver Drotbohm
fe1657386d #1648 - Removed further deprecations. 2021-09-21 17:46:04 +02:00
Oliver Drotbohm
054d2bf7d1 #1639 - Update build plugins to be JDK 17 compatible. 2021-09-21 14:21:04 +02:00
Oliver Drotbohm
fc99a84439 #1639 - Javadoc polishing in preparation of stringer linting in JDK 17. 2021-09-21 14:20:50 +02:00
Oliver Drotbohm
690ea3e967 #1638 - 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:27:35 +02:00
Oliver Drotbohm
2fcad81d6c #1640 - Tweak CI build to run compatibility builds against JDK 17. 2021-09-20 13:14:06 +02:00
Oliver Drotbohm
56b4dcc255 #1637 - Upgrade to Lombok 1.18.20.
For JDK 17 support.
2021-09-20 13:11:36 +02:00
Oliver Drotbohm
95174ae911 #1635 - Continue development on 1.4.0-SNAPSHOT. 2021-09-16 15:07:20 +02:00
Oliver Drotbohm
21597fe1b9 #1635 - Releasing Spring HATEOAS 1.4.0-M3. 2021-09-16 15:07:17 +02:00