diff --git a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/RepositoryRestMvcConfiguration.java b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/RepositoryRestMvcConfiguration.java index 36b07eb8d..2cd4f8e26 100644 --- a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/RepositoryRestMvcConfiguration.java +++ b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/RepositoryRestMvcConfiguration.java @@ -116,6 +116,7 @@ import org.springframework.data.rest.webmvc.support.RepositoryEntityLinks; import org.springframework.data.util.AnnotatedTypeScanner; import org.springframework.data.web.HateoasPageableHandlerMethodArgumentResolver; import org.springframework.data.web.HateoasSortHandlerMethodArgumentResolver; +import org.springframework.data.web.PageableHandlerMethodArgumentResolver; import org.springframework.data.web.config.EnableSpringDataWebSupport; import org.springframework.data.web.config.HateoasAwareSpringDataWebConfiguration; import org.springframework.data.web.config.SpringDataJacksonConfiguration; @@ -801,7 +802,7 @@ public class RepositoryRestMvcConfiguration extends HateoasAwareSpringDataWebCon persistentEntities(), selfLinkProvider(), config().getProjectionConfiguration(), projectionFactory, associationLinks()); - HateoasPageableHandlerMethodArgumentResolver pageableResolver = pageableResolver(); + PageableHandlerMethodArgumentResolver pageableResolver = pageableResolver(); JacksonMappingAwareSortTranslator sortTranslator = new JacksonMappingAwareSortTranslator(objectMapper(), repositories(), DomainClassResolver.of(repositories(), resourceMappings(), baseUri())); diff --git a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/MappingAwareDefaultedPageableArgumentResolver.java b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/MappingAwareDefaultedPageableArgumentResolver.java index da896b5d1..0583a86b3 100644 --- a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/MappingAwareDefaultedPageableArgumentResolver.java +++ b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/MappingAwareDefaultedPageableArgumentResolver.java @@ -39,7 +39,7 @@ import org.springframework.web.method.support.ModelAndViewContainer; * * @author Mark Paluch * @author Oliver Gierke - * @since 2.6, 2.5.3 + * @since 2.6 */ @RequiredArgsConstructor public class MappingAwareDefaultedPageableArgumentResolver implements HandlerMethodArgumentResolver { diff --git a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/MappingAwarePageableArgumentResolver.java b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/MappingAwarePageableArgumentResolver.java index f58fffe35..161688ee1 100644 --- a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/MappingAwarePageableArgumentResolver.java +++ b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/MappingAwarePageableArgumentResolver.java @@ -22,15 +22,15 @@ import org.springframework.core.MethodParameter; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; -import org.springframework.data.web.PageableHandlerMethodArgumentResolver; +import org.springframework.data.web.PageableArgumentResolver; import org.springframework.web.bind.support.WebDataBinderFactory; import org.springframework.web.context.request.NativeWebRequest; import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.method.support.ModelAndViewContainer; /** - * {@link HandlerMethodArgumentResolver} to resolve {@link Pageable} from a - * {@link PageableHandlerMethodArgumentResolver} applying field to property mapping. + * {@link HandlerMethodArgumentResolver} to resolve {@link Pageable} from a {@link PageableArgumentResolver} applying + * field to property mapping. *
* A resolved {@link Pageable} is post-processed by applying Jackson field-to-property mapping if it contains a * {@link Sort} instance. Customized fields are resolved to their property names. Unknown properties are removed from @@ -38,13 +38,13 @@ import org.springframework.web.method.support.ModelAndViewContainer; * * @author Mark Paluch * @author Oliver Gierke - * @since 2.6, 2.5.3 + * @since 2.6 */ @RequiredArgsConstructor -public class MappingAwarePageableArgumentResolver implements HandlerMethodArgumentResolver { +public class MappingAwarePageableArgumentResolver implements HandlerMethodArgumentResolver, PageableArgumentResolver { private final @NonNull JacksonMappingAwareSortTranslator translator; - private final @NonNull PageableHandlerMethodArgumentResolver delegate; + private final @NonNull PageableArgumentResolver delegate; /* * (non-Javadoc) @@ -57,20 +57,19 @@ public class MappingAwarePageableArgumentResolver implements HandlerMethodArgume /* * (non-Javadoc) - * @see org.springframework.web.method.support.HandlerMethodArgumentResolver#resolveArgument(org.springframework.core.MethodParameter, org.springframework.web.method.support.ModelAndViewContainer, org.springframework.web.context.request.NativeWebRequest, org.springframework.web.bind.support.WebDataBinderFactory) + * @see org.springframework.data.web.PageableArgumentResolver#resolveArgument(org.springframework.core.MethodParameter, org.springframework.web.method.support.ModelAndViewContainer, org.springframework.web.context.request.NativeWebRequest, org.springframework.web.bind.support.WebDataBinderFactory) */ @Override - public Pageable resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, - NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { + public Pageable resolveArgument(MethodParameter methodParameter, ModelAndViewContainer mavContainer, + NativeWebRequest webRequest, WebDataBinderFactory binderFactory) { - Pageable pageable = delegate.resolveArgument(parameter, mavContainer, webRequest, binderFactory); + Pageable pageable = delegate.resolveArgument(methodParameter, mavContainer, webRequest, binderFactory); if (pageable == null || pageable.getSort() == null) { return pageable; } - Sort translated = translator.translateSort(pageable.getSort(), parameter, webRequest); + Sort translated = translator.translateSort(pageable.getSort(), methodParameter, webRequest); return new PageRequest(pageable.getPageNumber(), pageable.getPageSize(), translated); } - } diff --git a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/MappingAwareSortArgumentResolver.java b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/MappingAwareSortArgumentResolver.java index e5f7b1747..db7815fec 100644 --- a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/MappingAwareSortArgumentResolver.java +++ b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/MappingAwareSortArgumentResolver.java @@ -20,6 +20,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.core.MethodParameter; import org.springframework.data.domain.Sort; +import org.springframework.data.web.SortArgumentResolver; import org.springframework.data.web.SortHandlerMethodArgumentResolver; import org.springframework.web.bind.support.WebDataBinderFactory; import org.springframework.web.context.request.NativeWebRequest; @@ -35,13 +36,13 @@ import org.springframework.web.method.support.ModelAndViewContainer; * * @author Mark Paluch * @author Oliver Gierke - * @since 2.6, 2.5.3 + * @since 2.6 */ @RequiredArgsConstructor -public class MappingAwareSortArgumentResolver implements HandlerMethodArgumentResolver { +public class MappingAwareSortArgumentResolver implements HandlerMethodArgumentResolver, SortArgumentResolver { private final @NonNull JacksonMappingAwareSortTranslator translator; - private final @NonNull SortHandlerMethodArgumentResolver delegate; + private final @NonNull SortArgumentResolver delegate; /* * (non-Javadoc) @@ -57,11 +58,11 @@ public class MappingAwareSortArgumentResolver implements HandlerMethodArgumentRe * @see org.springframework.web.method.support.HandlerMethodArgumentResolver#resolveArgument(org.springframework.core.MethodParameter, org.springframework.web.method.support.ModelAndViewContainer, org.springframework.web.context.request.NativeWebRequest, org.springframework.web.bind.support.WebDataBinderFactory) */ @Override - public Sort resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, - NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { + public Sort resolveArgument(MethodParameter methodParameter, ModelAndViewContainer mavContainer, + NativeWebRequest webRequest, WebDataBinderFactory binderFactory) { - Sort sort = delegate.resolveArgument(parameter, mavContainer, webRequest, binderFactory); + Sort sort = delegate.resolveArgument(methodParameter, mavContainer, webRequest, binderFactory); - return sort == null ? null : translator.translateSort(sort, parameter, webRequest); + return sort == null ? null : translator.translateSort(sort, methodParameter, webRequest); } }