From 3ec069bfee574947b252a2b5802e51f799a14afe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20B=C3=A9ti?= Date: Thu, 28 Sep 2023 10:48:13 +0200 Subject: [PATCH 1/4] 2531 HateoasSortHandlerMethodArgumentResolver should append * to the 'sort' parameter template variable --- .../web/HateoasSortHandlerMethodArgumentResolver.java | 6 ++++-- ...PageableHandlerMethodArgumentResolverUnitTests.java | 10 +++++----- ...eoasSortHandlerMethodArgumentResolverUnitTests.java | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolver.java b/src/main/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolver.java index 86a92c82e8..1ce2c7e8a0 100644 --- a/src/main/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolver.java +++ b/src/main/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolver.java @@ -56,9 +56,11 @@ public TemplateVariables getSortTemplateVariables(MethodParameter parameter, Uri return TemplateVariables.NONE; } - String description = String.format("pagination.%s.description", sortParameter); + String sortParameterExplode = sortParameter + '*'; + + String description = String.format("pagination.%s.description", sortParameterExplode); TemplateVariable.VariableType type = append ? REQUEST_PARAM_CONTINUED : REQUEST_PARAM; - return new TemplateVariables(new TemplateVariable(sortParameter, type, description)); + return new TemplateVariables(new TemplateVariable(sortParameterExplode, type, description)); } @Override diff --git a/src/test/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolverUnitTests.java b/src/test/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolverUnitTests.java index 5c6c51a182..7c152c6247 100755 --- a/src/test/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolverUnitTests.java +++ b/src/test/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolverUnitTests.java @@ -69,10 +69,10 @@ void preventsPageSizeFromExceedingMayValueIfConfiguredOnWrite() throws Exception @Test // DATACMNS-418 void appendsTemplateVariablesCorrectly() { - assertTemplateEnrichment("/foo", "{?page,size,sort}"); - assertTemplateEnrichment("/foo?bar=1", "{&page,size,sort}"); - assertTemplateEnrichment("/foo?page=1", "{&size,sort}"); - assertTemplateEnrichment("/foo?page=1&size=10", "{&sort}"); + assertTemplateEnrichment("/foo", "{?page,size,sort*}"); + assertTemplateEnrichment("/foo?bar=1", "{&page,size,sort*}"); + assertTemplateEnrichment("/foo?page=1", "{&size,sort*}"); + assertTemplateEnrichment("/foo?page=1&size=10", "{&sort*}"); assertTemplateEnrichment("/foo?page=1&sort=foo,asc", "{&size}"); assertTemplateEnrichment("/foo?page=1&size=10&sort=foo,asc", ""); } @@ -86,7 +86,7 @@ void returnsCustomizedTemplateVariables() { resolver.setPageParameterName("foo"); var variables = resolver.getPaginationTemplateVariables(null, uriComponents).toString(); - assertThat(variables).isEqualTo("{?foo,size,sort}"); + assertThat(variables).isEqualTo("{?foo,size,sort*}"); } @Test // DATACMNS-563 diff --git a/src/test/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolverUnitTests.java b/src/test/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolverUnitTests.java index 16563ccb0c..bdd13a471b 100755 --- a/src/test/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolverUnitTests.java +++ b/src/test/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolverUnitTests.java @@ -52,7 +52,7 @@ void returnCorrectTemplateVariables() { var uriComponents = UriComponentsBuilder.fromPath("/").build(); var resolver = new HateoasSortHandlerMethodArgumentResolver(); - assertThat(resolver.getSortTemplateVariables(null, uriComponents).toString()).isEqualTo("{?sort}"); + assertThat(resolver.getSortTemplateVariables(null, uriComponents).toString()).isEqualTo("{?sort*}"); } private void assertUriStringFor(Sort sort, String expected) throws Exception { From 8c769787121d7e8d6071d285601bb22354d9a0fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20B=C3=A9ti?= Date: Thu, 28 Sep 2023 11:37:27 +0200 Subject: [PATCH 2/4] 2531 HateoasSortHandlerMethodArgumentResolver should append * to the 'sort' parameter template variable Adding author in header --- .../data/web/HateoasSortHandlerMethodArgumentResolver.java | 1 + .../HateoasPageableHandlerMethodArgumentResolverUnitTests.java | 1 + .../web/HateoasSortHandlerMethodArgumentResolverUnitTests.java | 1 + 3 files changed, 3 insertions(+) diff --git a/src/main/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolver.java b/src/main/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolver.java index 1ce2c7e8a0..90a3f8ed5b 100644 --- a/src/main/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolver.java +++ b/src/main/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolver.java @@ -35,6 +35,7 @@ * @author Oliver Gierke * @author Thomas Darimont * @author Nick Williams + * @author Julien Béti */ public class HateoasSortHandlerMethodArgumentResolver extends SortHandlerMethodArgumentResolver implements UriComponentsContributor { diff --git a/src/test/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolverUnitTests.java b/src/test/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolverUnitTests.java index 7c152c6247..5baed1f854 100755 --- a/src/test/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolverUnitTests.java +++ b/src/test/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolverUnitTests.java @@ -28,6 +28,7 @@ * Unit tests for {@link HateoasPageableHandlerMethodArgumentResolver}. * * @author Oliver Gierke + * @author Julien Béti */ class HateoasPageableHandlerMethodArgumentResolverUnitTests extends PageableHandlerMethodArgumentResolverUnitTests { diff --git a/src/test/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolverUnitTests.java b/src/test/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolverUnitTests.java index bdd13a471b..6906511717 100755 --- a/src/test/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolverUnitTests.java +++ b/src/test/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolverUnitTests.java @@ -28,6 +28,7 @@ * Unit tests for {@link HateoasSortHandlerMethodArgumentResolver} * * @author Oliver Gierke + * @author Julien Béti */ class HateoasSortHandlerMethodArgumentResolverUnitTests extends SortHandlerMethodArgumentResolverUnitTests { From fb0b9459620dd8df1fa5d1c059cce22749137387 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Fri, 29 Sep 2023 09:34:18 +0200 Subject: [PATCH 3/4] Upgrade to OpenWebBeans 4.0. Closes #2947 --- pom.xml | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/pom.xml b/pom.xml index 565738b5bb..0925107f18 100644 --- a/pom.xml +++ b/pom.xml @@ -207,21 +207,6 @@ org.apache.openwebbeans openwebbeans-se - jakarta - test - - - - org.apache.openwebbeans - openwebbeans-spi - jakarta - test - - - - org.apache.openwebbeans - openwebbeans-impl - jakarta test From 47c7923e63af1d81d33b7d69b3384cace96bf580 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20B=C3=A9ti?= Date: Mon, 2 Oct 2023 19:15:23 +0200 Subject: [PATCH 4/4] 2531 HateoasSortHandlerMethodArgumentResolver should append * to the 'sort' parameter template variable Using TemplateVariable.composite --- .../data/web/HateoasSortHandlerMethodArgumentResolver.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolver.java b/src/main/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolver.java index 90a3f8ed5b..1d1a18beb6 100644 --- a/src/main/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolver.java +++ b/src/main/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolver.java @@ -57,11 +57,9 @@ public TemplateVariables getSortTemplateVariables(MethodParameter parameter, Uri return TemplateVariables.NONE; } - String sortParameterExplode = sortParameter + '*'; - - String description = String.format("pagination.%s.description", sortParameterExplode); + String description = String.format("pagination.%s.description", sortParameter); TemplateVariable.VariableType type = append ? REQUEST_PARAM_CONTINUED : REQUEST_PARAM; - return new TemplateVariables(new TemplateVariable(sortParameterExplode, type, description)); + return new TemplateVariables(new TemplateVariable(sortParameter, type, description).composite()); } @Override