Commit Graph

1086 Commits

Author SHA1 Message Date
Oliver Drotbohm
5b68dbcc40 #1819 - Revert build time initialization for static constants in MediaTypes.
This reverts commit 2804e6d0a7.
2022-09-12 18:14:26 +02:00
Oliver Drotbohm
3f6cb3269c #1822 - Add native runtime hint for the custom serializer in EntityModel. 2022-08-02 14:46:54 +02:00
Oliver Drotbohm
2804e6d0a7 #1819 - Add build time initialization for static constants in MediaTypes. 2022-07-15 17:41:52 +02:00
Oliver Drotbohm
2d3bc26d1d #1818 - Continue development on 2.0.0-SNAPSHOT. 2022-07-15 14:53:17 +02:00
Oliver Drotbohm
8d795be93b #1818 - Releasing Spring HATEOAS 2.0.0-M5. 2022-07-15 14:53:15 +02:00
Oliver Drotbohm
9448e7d276 #1818 - Update changelog. 2022-07-15 14:52:50 +02:00
Oliver Drotbohm
44af5a6b43 #1817 - Improve JavaConfig to work on AOT. 2022-07-15 13:58:42 +02:00
Oliver Drotbohm
81f7e7677e #1814 - Continue development on 2.0.0-SNAPSHOT. 2022-07-14 11:57:21 +02:00
Oliver Drotbohm
1e44a8797f #1814 - Releasing Spring HATEOAS 2.0.0-M4. 2022-07-14 11:57:20 +02:00
Oliver Drotbohm
c11d21d123 #1814 - Update changelog. 2022-07-14 11:56:14 +02:00
Oliver Drotbohm
43a95322b4 #1813 - Upgrade to Spring Framework 6.0 M5. 2022-07-14 11:14:47 +02:00
Oliver Drotbohm
1235c5174d #1813 - Re-activate CI build for the spring-next profile. 2022-07-14 10:55:25 +02:00
Oliver Drotbohm
0098f2931a #1813 - Tweak integration tests to adapt to changed trailing slash handling in Spring 6.
See [0] for details.

[0] https://github.com/spring-projects/spring-framework/issues/28552
2022-07-14 10:51:38 +02:00
Oliver Drotbohm
9a3f8968a5 #1812 - Upgrade to Slf4j 1.7.36. 2022-07-14 10:37:15 +02:00
Oliver Drotbohm
f1574fa2f8 #1811 - Upgrade to Lombok 1.18.24. 2022-07-14 10:36:08 +02:00
Oliver Drotbohm
9e7da931bd #1810 - Upgrade to AssertJ 3.23.1. 2022-07-14 10:34:34 +02:00
Oliver Drotbohm
5af68b83e4 #1809 - Upgrade to Reactor 2022.0.0 M4. 2022-07-14 10:32:57 +02:00
Oliver Drotbohm
c74bb84ed4 #1808 - Upgrade to Kotlin 1.7. 2022-07-14 10:32:15 +02:00
Oliver Drotbohm
42ae74b90d #1800 - Allow dots in template variable names. 2022-06-18 19:15:10 +02:00
Oliver Drotbohm
3dfab2ec03 #1775 - Polishing.
Avoid grouping of template variables via stream.

Before:

Benchmark                          Mode  Cnt      Score      Error  Units
TemplateVariableBenchmark.concat  thrpt    3  55275,436 ± 3778,690  ops/s

After:

Benchmark                          Mode  Cnt      Score     Error  Units
TemplateVariableBenchmark.concat  thrpt    3  64587,790 ± 735,705  ops/s
2022-06-01 17:43:30 +02:00
Michael.Rocke
c2394603fc #1775 - Optimization around constructing UriTemplate when supplying TemplateVariables of same type
Reduce the repeated merge routines on ExpandGroups.

Before:
Benchmark                          Mode  Cnt     Score     Error  Units
TemplateVariableBenchmark.concat  thrpt    3  3150,261 ± 263,525  ops/s

After:
Benchmark                          Mode  Cnt      Score      Error  Units
TemplateVariableBenchmark.concat  thrpt    3  55275,436 ± 3778,690  ops/s
2022-06-01 17:43:30 +02:00
Oliver Drotbohm
2de450531b #1796 - Relax generics bound in ReactiveRepresentationModelAssembler.
We now relax the generic bound of D to … extends RepresentationModel<?> as otherwise implementation code of, for example, toModel(…) has to produce a concrete representation model and cannot be typed to return RepresentationModel<?>.
2022-05-31 12:26:19 +02:00
Oliver Drotbohm
3730a6f270 #1793 - Revamped mapping handling.
Introduced UriMapping to contain the original request mapping used on a controller method as well as a MappingVariables instance that captures all used variables of those mappings. These mappings and variables are not following URI template semantics but rather PathPattern. One example of this playing into the processing is the path segment capture syntax {*…}. This is roughly equivalent to URI template's composite path syntax {/…*}, which however looks different (as the leading slash is contained in the variable expression).

While the handling of those has been added in the commit before, we now introduce the proper abstractions that cause a couple of internal deprecations and binary-incompatible changes and we only want to impose them on implementors upgrading to 2.0. Also, this allows simplifying WebHandler which has accumulated quite a bit of logic already.
2022-05-30 20:21:38 +02:00
Oliver Drotbohm
e29d83d5ea #1793 - Fix handling of {*…} pattern variables in URI mappings.
We now properly handle path segment capture variables in URI mappings. Values handed into the dummy method invocations are expanded properly and a given null results in the composite segment template variable {/…*} being rendered to advertise the ability to add further segments.
2022-05-30 20:21:37 +02:00
Oliver Drotbohm
19c2480f48 #1722 - Fix double encoding of request parameters in LinkBuilderSupport.toUri(…).
We unfortunately cannot use UriComponentsBuilder in a way that we can populate it with encoded parameters *and* expand encoded path variable values. We currently use ….buildAndExpand(…) which considers the values provided unencoded but we never actually call ….toUri() on the resulting UriComponents instance.

We unfortunately cannot fix the problem at its root, as the only alternative would be to call ….build(true) indicating values already encoded but that stumbles above the template variables still present in the original template.

The only workaround right now is never calling UriComponents.toUri() but ….toUriString() as that doesn't apply the pending encoding that's not actually needed as we start with fully encoded values in the first place.
2022-05-16 09:48:54 +02:00
Oliver Drotbohm
57317d0db8 #1722 - Original test case. 2022-05-16 09:42:10 +02:00
Oliver Drotbohm
f4f7f69e1f #1790 - Upgrade to Reactor 2022.0.0 M2. 2022-05-12 20:54:00 +02:00
Oliver Drotbohm
f69e4fbdc4 #1789 - Continue development on 2.0.0-SNAPSHOT. 2022-05-12 18:03:59 +02:00
Oliver Drotbohm
d75324acbb #1789 - Releasing Spring HATEOAS 2.0.0-M3. 2022-05-12 18:03:57 +02:00
Oliver Drotbohm
872e514654 #1789 - Update changelog. 2022-05-12 18:01:35 +02:00
Oliver Drotbohm
06ca2f7238 #1788 - Upgrade to Reactor 2020.0.19. 2022-05-12 17:49:17 +02:00
Oliver Drotbohm
a13ab9ac22 #1787 - Upgrade to Spring Framework 6.0 M4. 2022-05-12 17:47:50 +02:00
Réda Housni Alaoui
4be0e28f30 #1776 - Do not expose URL template variable for MultipartFile parameter. 2022-05-10 15:02:00 +02:00
Oliver Drotbohm
7214ef41b8 #1750 - Tweak Javadoc creation on JDK 17.
Falling back to JDK 8 mode as the 17 one barks on the spring-docs-resources ZIP being on the path.
2022-04-14 14:58:03 +02:00
Oliver Drotbohm
233f50780b #1764 - 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:47:14 +02:00
Oliver Drotbohm
5f701b46ec #1763 - Temporarily upgrade to Spring Framework 6.0 snapshots. 2022-04-11 12:18:57 +02:00
Oliver Drotbohm
e030b4f551 #1760 - Continue development on 2.0.0-SNAPSHOT. 2022-02-17 12:48:57 +01:00
Oliver Drotbohm
e29e2833d8 #1760 - Releasing Spring HATEOAS 2.0.0-M2. 2022-02-17 12:48:55 +01:00
Oliver Drotbohm
ab45ba3f11 #1760 - Prepare changelog for 2.0 M2. 2022-02-17 12:48:14 +01:00
Oliver Drotbohm
a7099a8394 #1750 - Update copyright years to 2022. 2022-02-07 10:35:09 +01:00
Oliver Drotbohm
80c28defba #1757 - Polishing.
Slightly more compact default regex pattern. Untangle defaulting condition in PropertyMetdata.getPattern(). Extract test cases into dedicated methods. Couple of Javadoc fixes. Java-9-based polishing by using Optional.or(…) in JSR 303 PropertyMetadata implementation.
2022-01-28 09:28:40 +01:00
Faron Dutton
1f6f1e24d4 #1757 - Add support for javax.validation.constraints.NotBlank.
The presence of @NonBlank on a representation model's property now causes it to be considered required. It will also cause a default pattern exposed that allows clients to validate input values.

Fixes #1757.
2022-01-28 09:28:40 +01:00
Oliver Drotbohm
c501fa20f7 #1750 - Continue development on 2.0.0-SNAPSHOT. 2022-01-17 08:39:05 +01:00
Oliver Drotbohm
a4829bf519 #1750 - Releasing Spring HATEOAS 2.0.0-M1. 2022-01-14 13:55:00 +01:00
Oliver Drotbohm
9e96df3ae3 #1750 - Consistently upgrade to Artifactory Maven Plugin 3.3.0. 2022-01-14 13:54:35 +01:00
Oliver Drotbohm
4f5600a91e #1752 - Upgrade to Spring Plugin 3.0 M1. 2022-01-14 12:13:01 +01:00
Oliver Drotbohm
edd7f1fa51 #1751 - Upgrade to Spring Framework 6.0 M2. 2022-01-14 12:11:36 +01:00
Oliver Drotbohm
83c072b8cb #1639 - Adapt to HttpMethod now being a class instead of an enum. 2022-01-14 12:05:37 +01:00
Oliver Drotbohm
2431358a83 #1719 - Move off DefaultUriTemplateHandler.
DefaultUriTemplateHandler was deprecated and removed in Spring 6.0. We now use DefaultUriBuilderFactory as recommended in the deprecation part of DUTH's Javadoc.
2022-01-14 12:05:37 +01:00
Oliver Drotbohm
a370fb93fa #1651 - Upgrade to Spring Plugin 3.0 snapshots. 2022-01-14 12:05:35 +01:00