diff --git a/src/main/java/org/springframework/data/web/config/HateoasAwareSpringDataWebConfiguration.java b/src/main/java/org/springframework/data/web/config/HateoasAwareSpringDataWebConfiguration.java index 069f2d6c0..d9875dac7 100644 --- a/src/main/java/org/springframework/data/web/config/HateoasAwareSpringDataWebConfiguration.java +++ b/src/main/java/org/springframework/data/web/config/HateoasAwareSpringDataWebConfiguration.java @@ -58,8 +58,8 @@ public class HateoasAwareSpringDataWebConfiguration extends SpringDataWebConfigu @Override public HateoasPageableHandlerMethodArgumentResolver pageableResolver() { - HateoasPageableHandlerMethodArgumentResolver pageableResolver = // - new HateoasPageableHandlerMethodArgumentResolver(sortResolver()); + HateoasPageableHandlerMethodArgumentResolver pageableResolver = new HateoasPageableHandlerMethodArgumentResolver( + sortResolver()); customizePageableResolver(pageableResolver); return pageableResolver; } diff --git a/src/main/java/org/springframework/data/web/config/PageableHandlerMethodArgumentResolverCustomizer.java b/src/main/java/org/springframework/data/web/config/PageableHandlerMethodArgumentResolverCustomizer.java index 6b8220e9c..89a74a718 100644 --- a/src/main/java/org/springframework/data/web/config/PageableHandlerMethodArgumentResolverCustomizer.java +++ b/src/main/java/org/springframework/data/web/config/PageableHandlerMethodArgumentResolverCustomizer.java @@ -22,14 +22,17 @@ import org.springframework.data.web.PageableHandlerMethodArgumentResolver; * {@link PageableHandlerMethodArgumentResolver} configuration. * * @author Vedran Pavic + * @author Oliver Gierke + * @since 2.0 */ +@FunctionalInterface public interface PageableHandlerMethodArgumentResolverCustomizer { /** - * Customize the pageable resolver + * Customize the given {@link PageableHandlerMethodArgumentResolver}. * - * @param pageableResolver the {@link PageableHandlerMethodArgumentResolver} to customize + * @param pageableResolver the {@link PageableHandlerMethodArgumentResolver} to customize, will never be + * {@literal null}. */ void customize(PageableHandlerMethodArgumentResolver pageableResolver); - } diff --git a/src/main/java/org/springframework/data/web/config/QuerydslWebConfiguration.java b/src/main/java/org/springframework/data/web/config/QuerydslWebConfiguration.java index 9e3f38c69..8a8949308 100644 --- a/src/main/java/org/springframework/data/web/config/QuerydslWebConfiguration.java +++ b/src/main/java/org/springframework/data/web/config/QuerydslWebConfiguration.java @@ -29,7 +29,7 @@ import org.springframework.data.querydsl.SimpleEntityPathResolver; import org.springframework.data.querydsl.binding.QuerydslBindingsFactory; import org.springframework.data.web.querydsl.QuerydslPredicateArgumentResolver; import org.springframework.web.method.support.HandlerMethodArgumentResolver; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import com.querydsl.core.types.Predicate; @@ -42,7 +42,7 @@ import com.querydsl.core.types.Predicate; * @soundtrack Anika Nilles - Alter Ego */ @Configuration -public class QuerydslWebConfiguration extends WebMvcConfigurerAdapter { +public class QuerydslWebConfiguration implements WebMvcConfigurer { @Autowired @Qualifier("mvcConversionService") ObjectFactory conversionService; diff --git a/src/main/java/org/springframework/data/web/config/SortHandlerMethodArgumentResolverCustomizer.java b/src/main/java/org/springframework/data/web/config/SortHandlerMethodArgumentResolverCustomizer.java index 67bf79985..dedd11658 100644 --- a/src/main/java/org/springframework/data/web/config/SortHandlerMethodArgumentResolverCustomizer.java +++ b/src/main/java/org/springframework/data/web/config/SortHandlerMethodArgumentResolverCustomizer.java @@ -22,14 +22,15 @@ import org.springframework.data.web.SortHandlerMethodArgumentResolver; * {@link SortHandlerMethodArgumentResolver} configuration. * * @author Vedran Pavic + * @author Oliver Gierke + * @since 2.0 */ public interface SortHandlerMethodArgumentResolverCustomizer { /** - * Customize the sort resolver + * Customize the given {@link SortHandlerMethodArgumentResolver}. * - * @param sortResolver the {@link SortHandlerMethodArgumentResolver} to customize + * @param sortResolver the {@link SortHandlerMethodArgumentResolver} to customize, will never be {@literal null}. */ void customize(SortHandlerMethodArgumentResolver sortResolver); - } diff --git a/src/main/java/org/springframework/data/web/config/SpringDataWebConfiguration.java b/src/main/java/org/springframework/data/web/config/SpringDataWebConfiguration.java index 76b4af18e..890d6bb43 100644 --- a/src/main/java/org/springframework/data/web/config/SpringDataWebConfiguration.java +++ b/src/main/java/org/springframework/data/web/config/SpringDataWebConfiguration.java @@ -36,9 +36,10 @@ import org.springframework.data.web.XmlBeamHttpMessageConverter; import org.springframework.format.FormatterRegistry; import org.springframework.format.support.FormattingConversionService; import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.util.Assert; import org.springframework.util.ClassUtils; import org.springframework.web.method.support.HandlerMethodArgumentResolver; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import com.fasterxml.jackson.databind.ObjectMapper; @@ -52,18 +53,19 @@ import com.fasterxml.jackson.databind.ObjectMapper; * @author Jens Schauder */ @Configuration -public class SpringDataWebConfiguration extends WebMvcConfigurerAdapter { +public class SpringDataWebConfiguration implements WebMvcConfigurer { private final ApplicationContext context; private final ObjectFactory conversionService; - @Autowired private Optional pageableResolverCustomizer; - @Autowired private Optional sortResolverCustomizer; + private @Autowired Optional pageableResolverCustomizer; + private @Autowired Optional sortResolverCustomizer; - public SpringDataWebConfiguration( // - ApplicationContext context, // - @Qualifier("mvcConversionService") ObjectFactory conversionService // - ) { + public SpringDataWebConfiguration(ApplicationContext context, + @Qualifier("mvcConversionService") ObjectFactory conversionService) { + + Assert.notNull(context, "ApplicationContext must not be null!"); + Assert.notNull(conversionService, "ConversionService must not be null!"); this.context = context; this.conversionService = conversionService; @@ -161,5 +163,4 @@ public class SpringDataWebConfiguration extends WebMvcConfigurerAdapter { protected void customizeSortResolver(SortHandlerMethodArgumentResolver sortResolver) { sortResolverCustomizer.ifPresent(c -> c.customize(sortResolver)); } - }