From 435aaaaa356f0b85b04d2d9f2bc9bc75f7540dc3 Mon Sep 17 00:00:00 2001 From: Oliver Drotbohm Date: Wed, 27 Feb 2019 12:59:10 +0100 Subject: [PATCH] DATACMNS-1470 - Adapt to package refactorings in Spring HATEOAS. --- .../data/domain/jaxb/SpringDataJaxb.java | 4 +- ...PageableHandlerMethodArgumentResolver.java | 4 +- ...eoasSortHandlerMethodArgumentResolver.java | 4 +- .../data/web/PagedResourcesAssembler.java | 65 +++++++++--------- ...gedResourcesAssemblerArgumentResolver.java | 10 +-- ...andlerMethodArgumentResolverUnitTests.java | 2 +- .../web/PagedResourcesAssemblerUnitTests.java | 68 ++++++++++--------- ...bleResourcesAssemblerIntegrationTests.java | 10 +-- ...dslPredicateArgumentResolverUnitTests.java | 4 +- 9 files changed, 88 insertions(+), 83 deletions(-) diff --git a/src/main/java/org/springframework/data/domain/jaxb/SpringDataJaxb.java b/src/main/java/org/springframework/data/domain/jaxb/SpringDataJaxb.java index 2d5ec644a..01402a895 100644 --- a/src/main/java/org/springframework/data/domain/jaxb/SpringDataJaxb.java +++ b/src/main/java/org/springframework/data/domain/jaxb/SpringDataJaxb.java @@ -35,7 +35,7 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Direction; import org.springframework.data.domain.Sort.Order; -import org.springframework.hateoas.ResourceSupport; +import org.springframework.hateoas.RepresentationModel; import org.springframework.lang.Nullable; import org.springframework.util.Assert; @@ -96,7 +96,7 @@ public abstract class SpringDataJaxb { */ @XmlRootElement(name = "page", namespace = NAMESPACE) @XmlAccessorType(XmlAccessType.FIELD) - public static class PageDto extends ResourceSupport { + public static class PageDto extends RepresentationModel { @Nullable @XmlAnyElement @XmlElementWrapper(name = "content") List content; } diff --git a/src/main/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolver.java b/src/main/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolver.java index 59c5350cd..43bd6b569 100644 --- a/src/main/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolver.java +++ b/src/main/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolver.java @@ -26,7 +26,7 @@ import org.springframework.data.domain.Pageable; import org.springframework.hateoas.TemplateVariable; import org.springframework.hateoas.TemplateVariable.VariableType; import org.springframework.hateoas.TemplateVariables; -import org.springframework.hateoas.mvc.UriComponentsContributor; +import org.springframework.hateoas.server.mvc.UriComponentsContributor; import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.util.MultiValueMap; @@ -100,7 +100,7 @@ public class HateoasPageableHandlerMethodArgumentResolver extends PageableHandle /* * (non-Javadoc) - * @see org.springframework.hateoas.mvc.UriComponentsContributor#enhance(org.springframework.web.util.UriComponentsBuilder, org.springframework.core.MethodParameter, java.lang.Object) + * @see org.springframework.hateoas.server.mvc.UriComponentsContributor#enhance(org.springframework.web.util.UriComponentsBuilder, org.springframework.core.MethodParameter, java.lang.Object) */ @Override public void enhance(UriComponentsBuilder builder, @Nullable MethodParameter parameter, Object value) { diff --git a/src/main/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolver.java b/src/main/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolver.java index 681b0999e..5443fe6f8 100644 --- a/src/main/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolver.java +++ b/src/main/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolver.java @@ -22,7 +22,7 @@ import org.springframework.data.domain.Sort; import org.springframework.hateoas.TemplateVariable; import org.springframework.hateoas.TemplateVariable.VariableType; import org.springframework.hateoas.TemplateVariables; -import org.springframework.hateoas.mvc.UriComponentsContributor; +import org.springframework.hateoas.server.mvc.UriComponentsContributor; import org.springframework.util.MultiValueMap; import org.springframework.web.util.UriComponents; import org.springframework.web.util.UriComponentsBuilder; @@ -64,7 +64,7 @@ public class HateoasSortHandlerMethodArgumentResolver extends SortHandlerMethodA /* * (non-Javadoc) - * @see org.springframework.hateoas.mvc.UriComponentsContributor#enhance(org.springframework.web.util.UriComponentsBuilder, org.springframework.core.MethodParameter, java.lang.Object) + * @see org.springframework.hateoas.server.mvc.UriComponentsContributor#enhance(org.springframework.web.util.UriComponentsBuilder, org.springframework.core.MethodParameter, java.lang.Object) */ @Override public void enhance(UriComponentsBuilder builder, MethodParameter parameter, Object value) { diff --git a/src/main/java/org/springframework/data/web/PagedResourcesAssembler.java b/src/main/java/org/springframework/data/web/PagedResourcesAssembler.java index 39dfed867..60b613092 100644 --- a/src/main/java/org/springframework/data/web/PagedResourcesAssembler.java +++ b/src/main/java/org/springframework/data/web/PagedResourcesAssembler.java @@ -26,17 +26,17 @@ import org.springframework.core.MethodParameter; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; +import org.springframework.hateoas.EntityModel; import org.springframework.hateoas.IanaLinkRelations; import org.springframework.hateoas.Link; import org.springframework.hateoas.LinkRelation; -import org.springframework.hateoas.PagedResources; -import org.springframework.hateoas.PagedResources.PageMetadata; -import org.springframework.hateoas.Resource; -import org.springframework.hateoas.ResourceAssembler; -import org.springframework.hateoas.ResourceSupport; +import org.springframework.hateoas.PagedModel; +import org.springframework.hateoas.PagedModel.PageMetadata; +import org.springframework.hateoas.RepresentationModel; import org.springframework.hateoas.UriTemplate; -import org.springframework.hateoas.core.EmbeddedWrapper; -import org.springframework.hateoas.core.EmbeddedWrappers; +import org.springframework.hateoas.server.RepresentationModelAssembler; +import org.springframework.hateoas.server.core.EmbeddedWrapper; +import org.springframework.hateoas.server.core.EmbeddedWrappers; import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.web.servlet.support.ServletUriComponentsBuilder; @@ -51,7 +51,7 @@ import org.springframework.web.util.UriComponentsBuilder; * @author Nick Williams * @author Marcel Overdijk */ -public class PagedResourcesAssembler implements ResourceAssembler, PagedResources>> { +public class PagedResourcesAssembler implements RepresentationModelAssembler, PagedModel>> { private final HateoasPageableHandlerMethodArgumentResolver pageableResolver; private final Optional baseUri; @@ -62,7 +62,7 @@ public class PagedResourcesAssembler implements ResourceAssembler, Pa /** * Creates a new {@link PagedResourcesAssembler} using the given {@link PageableHandlerMethodArgumentResolver} and * base URI. If the former is {@literal null}, a default one will be created. If the latter is {@literal null}, calls - * to {@link #toResource(Page)} will use the current request's URI to build the relevant previous and next links. + * to {@link #toModel(Page)} will use the current request's URI to build the relevant previous and next links. * * @param resolver can be {@literal null}. * @param baseUri can be {@literal null}. @@ -89,12 +89,12 @@ public class PagedResourcesAssembler implements ResourceAssembler, Pa /* * (non-Javadoc) - * @see org.springframework.hateoas.ResourceAssembler#toResource(java.lang.Object) + * @see org.springframework.hateoas.server.RepresentationModelAssembler#toModel(java.lang.Object) */ @Override @SuppressWarnings("null") - public PagedResources> toResource(Page entity) { - return toResource(entity, it -> new Resource<>(it)); + public PagedModel> toModel(Page entity) { + return toModel(entity, it -> new EntityModel<>(it)); } /** @@ -106,8 +106,8 @@ public class PagedResourcesAssembler implements ResourceAssembler, Pa * @param selfLink must not be {@literal null}. * @return */ - public PagedResources> toResource(Page page, Link selfLink) { - return toResource(page, it -> new Resource<>(it), selfLink); + public PagedModel> toModel(Page page, Link selfLink) { + return toModel(page, it -> new EntityModel<>(it), selfLink); } /** @@ -118,8 +118,9 @@ public class PagedResourcesAssembler implements ResourceAssembler, Pa * @param assembler must not be {@literal null}. * @return */ - public PagedResources toResource(Page page, ResourceAssembler assembler) { - return createResource(page, assembler, Optional.empty()); + public > PagedModel toModel(Page page, + RepresentationModelAssembler assembler) { + return createModel(page, assembler, Optional.empty()); } /** @@ -132,12 +133,12 @@ public class PagedResourcesAssembler implements ResourceAssembler, Pa * @param link must not be {@literal null}. * @return */ - public PagedResources toResource(Page page, ResourceAssembler assembler, - Link link) { + public > PagedModel toModel(Page page, + RepresentationModelAssembler assembler, Link link) { Assert.notNull(link, "Link must not be null!"); - return createResource(page, assembler, Optional.of(link)); + return createModel(page, assembler, Optional.of(link)); } /** @@ -148,8 +149,8 @@ public class PagedResourcesAssembler implements ResourceAssembler, Pa * @return * @since 2.0 */ - public PagedResources toEmptyResource(Page page, Class type) { - return toEmptyResource(page, type, Optional.empty()); + public PagedModel toEmptyModel(Page page, Class type) { + return toEmptyModel(page, type, Optional.empty()); } /** @@ -161,11 +162,11 @@ public class PagedResourcesAssembler implements ResourceAssembler, Pa * @return * @since 1.11 */ - public PagedResources toEmptyResource(Page page, Class type, Link link) { - return toEmptyResource(page, type, Optional.of(link)); + public PagedModel toEmptyModel(Page page, Class type, Link link) { + return toEmptyModel(page, type, Optional.of(link)); } - private PagedResources toEmptyResource(Page page, Class type, Optional link) { + private PagedModel toEmptyModel(Page page, Class type, Optional link) { Assert.notNull(page, "Page must must not be null!"); Assert.isTrue(!page.hasContent(), "Page must not have any content!"); @@ -177,7 +178,7 @@ public class PagedResourcesAssembler implements ResourceAssembler, Pa EmbeddedWrapper wrapper = wrappers.emptyCollectionOf(type); List embedded = Collections.singletonList(wrapper); - return addPaginationLinks(new PagedResources<>(embedded, metadata), page, link); + return addPaginationLinks(new PagedModel<>(embedded, metadata), page, link); } /** @@ -188,18 +189,18 @@ public class PagedResourcesAssembler implements ResourceAssembler, Pa * @param page the original page handed to the assembler, must not be {@literal null}. * @return must not be {@literal null}. */ - protected PagedResources createPagedResource(List resources, + protected , S> PagedModel createPagedModel(List resources, PageMetadata metadata, Page page) { Assert.notNull(resources, "Content resources must not be null!"); Assert.notNull(metadata, "PageMetadata must not be null!"); Assert.notNull(page, "Page must not be null!"); - return new PagedResources<>(resources, metadata); + return new PagedModel<>(resources, metadata); } - private PagedResources createResource(Page page, - ResourceAssembler assembler, Optional link) { + private > PagedModel createModel(Page page, + RepresentationModelAssembler assembler, Optional link) { Assert.notNull(page, "Page must not be null!"); Assert.notNull(assembler, "ResourceAssembler must not be null!"); @@ -207,15 +208,15 @@ public class PagedResourcesAssembler implements ResourceAssembler, Pa List resources = new ArrayList<>(page.getNumberOfElements()); for (S element : page) { - resources.add(assembler.toResource(element)); + resources.add(assembler.toModel(element)); } - PagedResources resource = createPagedResource(resources, asPageMetadata(page), page); + PagedModel resource = createPagedModel(resources, asPageMetadata(page), page); return addPaginationLinks(resource, page, link); } - private PagedResources addPaginationLinks(PagedResources resources, Page page, Optional link) { + private PagedModel addPaginationLinks(PagedModel resources, Page page, Optional link) { UriTemplate base = getUriTemplate(link); diff --git a/src/main/java/org/springframework/data/web/PagedResourcesAssemblerArgumentResolver.java b/src/main/java/org/springframework/data/web/PagedResourcesAssemblerArgumentResolver.java index ce8e49497..0aa110759 100644 --- a/src/main/java/org/springframework/data/web/PagedResourcesAssemblerArgumentResolver.java +++ b/src/main/java/org/springframework/data/web/PagedResourcesAssemblerArgumentResolver.java @@ -25,9 +25,9 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.core.MethodParameter; import org.springframework.data.domain.Pageable; import org.springframework.hateoas.Link; -import org.springframework.hateoas.MethodLinkBuilderFactory; -import org.springframework.hateoas.core.MethodParameters; -import org.springframework.hateoas.mvc.ControllerLinkBuilderFactory; +import org.springframework.hateoas.server.MethodLinkBuilderFactory; +import org.springframework.hateoas.server.core.MethodParameters; +import org.springframework.hateoas.server.mvc.WebMvcLinkBuilderFactory; import org.springframework.lang.Nullable; import org.springframework.web.bind.support.WebDataBinderFactory; import org.springframework.web.context.request.NativeWebRequest; @@ -60,13 +60,13 @@ public class PagedResourcesAssemblerArgumentResolver implements HandlerMethodArg * {@link PageableHandlerMethodArgumentResolver} and {@link MethodLinkBuilderFactory}. * * @param resolver can be {@literal null}. - * @param linkBuilderFactory can be {@literal null}, will be defaulted to a {@link ControllerLinkBuilderFactory}. + * @param linkBuilderFactory can be {@literal null}, will be defaulted to a {@link WebMvcLinkBuilderFactory}. */ public PagedResourcesAssemblerArgumentResolver(HateoasPageableHandlerMethodArgumentResolver resolver, @Nullable MethodLinkBuilderFactory linkBuilderFactory) { this.resolver = resolver; - this.linkBuilderFactory = linkBuilderFactory == null ? new ControllerLinkBuilderFactory() : linkBuilderFactory; + this.linkBuilderFactory = linkBuilderFactory == null ? new WebMvcLinkBuilderFactory() : linkBuilderFactory; } /* diff --git a/src/test/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolverUnitTests.java b/src/test/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolverUnitTests.java index 0bdb5283c..ff98608d3 100755 --- a/src/test/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolverUnitTests.java +++ b/src/test/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolverUnitTests.java @@ -23,7 +23,7 @@ import org.junit.Test; import org.springframework.core.MethodParameter; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; -import org.springframework.hateoas.mvc.UriComponentsContributor; +import org.springframework.hateoas.server.mvc.UriComponentsContributor; import org.springframework.util.MultiValueMap; import org.springframework.web.util.UriComponents; import org.springframework.web.util.UriComponentsBuilder; diff --git a/src/test/java/org/springframework/data/web/PagedResourcesAssemblerUnitTests.java b/src/test/java/org/springframework/data/web/PagedResourcesAssemblerUnitTests.java index 1b1bc5a3d..90715e944 100755 --- a/src/test/java/org/springframework/data/web/PagedResourcesAssemblerUnitTests.java +++ b/src/test/java/org/springframework/data/web/PagedResourcesAssemblerUnitTests.java @@ -30,14 +30,14 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; +import org.springframework.hateoas.EntityModel; import org.springframework.hateoas.IanaLinkRelations; import org.springframework.hateoas.Link; -import org.springframework.hateoas.PagedResources; -import org.springframework.hateoas.PagedResources.PageMetadata; -import org.springframework.hateoas.Resource; -import org.springframework.hateoas.ResourceAssembler; -import org.springframework.hateoas.ResourceSupport; -import org.springframework.hateoas.core.EmbeddedWrapper; +import org.springframework.hateoas.PagedModel; +import org.springframework.hateoas.PagedModel.PageMetadata; +import org.springframework.hateoas.RepresentationModel; +import org.springframework.hateoas.server.RepresentationModelAssembler; +import org.springframework.hateoas.server.core.EmbeddedWrapper; import org.springframework.web.util.UriComponents; import org.springframework.web.util.UriComponentsBuilder; @@ -64,7 +64,7 @@ public class PagedResourcesAssemblerUnitTests { @Test public void addsNextLinkForFirstPage() { - PagedResources> resources = assembler.toResource(createPage(0)); + PagedModel> resources = assembler.toModel(createPage(0)); assertThat(resources.getLink(IanaLinkRelations.PREV)).isEmpty(); assertThat(resources.getLink(IanaLinkRelations.SELF)).isNotEmpty(); @@ -74,7 +74,7 @@ public class PagedResourcesAssemblerUnitTests { @Test public void addsPreviousAndNextLinksForMiddlePage() { - PagedResources> resources = assembler.toResource(createPage(1)); + PagedModel> resources = assembler.toModel(createPage(1)); assertThat(resources.getLink(IanaLinkRelations.PREV)).isNotEmpty(); assertThat(resources.getLink(IanaLinkRelations.SELF)).isNotEmpty(); @@ -84,7 +84,7 @@ public class PagedResourcesAssemblerUnitTests { @Test public void addsPreviousLinkForLastPage() { - PagedResources> resources = assembler.toResource(createPage(2)); + PagedModel> resources = assembler.toModel(createPage(2)); assertThat(resources.getLink(IanaLinkRelations.PREV)).isNotEmpty(); assertThat(resources.getLink(IanaLinkRelations.SELF)).isNotEmpty(); @@ -97,7 +97,7 @@ public class PagedResourcesAssemblerUnitTests { UriComponents baseUri = UriComponentsBuilder.fromUriString("http://foo:9090").build(); PagedResourcesAssembler assembler = new PagedResourcesAssembler<>(resolver, baseUri); - PagedResources> resources = assembler.toResource(createPage(1)); + PagedModel> resources = assembler.toModel(createPage(1)); assertThat(resources.getRequiredLink(IanaLinkRelations.PREV).getHref()).startsWith(baseUri.toUriString()); assertThat(resources.getRequiredLink(IanaLinkRelations.SELF)).isNotNull(); @@ -109,7 +109,7 @@ public class PagedResourcesAssemblerUnitTests { Link link = new Link("http://foo:9090", "rel"); - PagedResources> resources = assembler.toResource(createPage(1), link); + PagedModel> resources = assembler.toModel(createPage(1), link); assertThat(resources.getRequiredLink(IanaLinkRelations.PREV).getHref()).startsWith(link.getHref()); assertThat(resources.getRequiredLink(IanaLinkRelations.SELF)).isEqualTo(link.withSelfRel()); @@ -124,13 +124,13 @@ public class PagedResourcesAssemblerUnitTests { AbstractPageRequest request = PageRequest.of(0, 1); Page page = new PageImpl<>(Collections.emptyList(), request, 0); - assembler.toResource(page); + assembler.toModel(page); } @Test // DATACMNS-418, DATACMNS-515 public void createsACanonicalLinkWithoutTemplateParameters() { - PagedResources> resources = assembler.toResource(createPage(1)); + PagedModel> resources = assembler.toModel(createPage(1)); assertThat(resources.getRequiredLink(IanaLinkRelations.SELF).getHref()).doesNotContain("{").doesNotContain("}"); } @@ -140,7 +140,7 @@ public class PagedResourcesAssemblerUnitTests { PersonResourceAssembler personAssembler = new PersonResourceAssembler(); - PagedResources resources = assembler.toResource(createPage(0), personAssembler); + PagedModel resources = assembler.toModel(createPage(0), personAssembler); assertThat(resources.hasLink(IanaLinkRelations.SELF)).isTrue(); assertThat(resources.hasLink(IanaLinkRelations.NEXT)).isTrue(); @@ -156,7 +156,7 @@ public class PagedResourcesAssemblerUnitTests { argumentResolver.setOneIndexedParameters(true); PagedResourcesAssembler assembler = new PagedResourcesAssembler<>(argumentResolver, null); - PagedResources> resource = assembler.toResource(createPage(1)); + PagedModel> resource = assembler.toModel(createPage(1)); assertThat(resource.hasLink("prev")).isTrue(); assertThat(resource.hasLink("next")).isTrue(); @@ -171,7 +171,7 @@ public class PagedResourcesAssemblerUnitTests { @Test // DATACMNS-515 public void generatedLinksShouldNotBeTemplated() { - PagedResources> resources = assembler.toResource(createPage(1)); + PagedModel> resources = assembler.toModel(createPage(1)); assertThat(resources.getRequiredLink(IanaLinkRelations.SELF).getHref()).doesNotContain("{").doesNotContain("}"); assertThat(resources.getRequiredLink(IanaLinkRelations.NEXT).getHref()).endsWith("?page=2&size=1"); @@ -181,7 +181,7 @@ public class PagedResourcesAssemblerUnitTests { @Test // DATACMNS-699 public void generatesEmptyPagedResourceWithEmbeddedWrapper() { - PagedResources result = assembler.toEmptyResource(EMPTY_PAGE, Person.class); + PagedModel result = assembler.toEmptyModel(EMPTY_PAGE, Person.class); Collection content = result.getContent(); assertThat(content).hasSize(1); @@ -193,18 +193,18 @@ public class PagedResourcesAssemblerUnitTests { @Test(expected = IllegalArgumentException.class) // DATACMNS-699 public void emptyPageCreatorRejectsPageWithContent() { - assembler.toEmptyResource(createPage(1), Person.class); + assembler.toEmptyModel(createPage(1), Person.class); } @Test(expected = IllegalArgumentException.class) // DATACMNS-699 public void emptyPageCreatorRejectsNullType() { - assembler.toEmptyResource(EMPTY_PAGE, null); + assembler.toEmptyModel(EMPTY_PAGE, null); } @Test // DATACMNS-701 public void addsFirstAndLastLinksForMultiplePages() { - PagedResources> resources = assembler.toResource(createPage(1)); + PagedModel> resources = assembler.toModel(createPage(1)); assertThat(resources.getRequiredLink(IanaLinkRelations.FIRST).getHref()).endsWith("?page=0&size=1"); assertThat(resources.getRequiredLink(IanaLinkRelations.LAST).getHref()).endsWith("?page=2&size=1"); @@ -213,7 +213,7 @@ public class PagedResourcesAssemblerUnitTests { @Test // DATACMNS-701 public void addsFirstAndLastLinksForFirstPage() { - PagedResources> resources = assembler.toResource(createPage(0)); + PagedModel> resources = assembler.toModel(createPage(0)); assertThat(resources.getRequiredLink(IanaLinkRelations.FIRST).getHref()).endsWith("?page=0&size=1"); assertThat(resources.getRequiredLink(IanaLinkRelations.LAST).getHref()).endsWith("?page=2&size=1"); @@ -222,7 +222,7 @@ public class PagedResourcesAssemblerUnitTests { @Test // DATACMNS-701 public void addsFirstAndLastLinksForLastPage() { - PagedResources> resources = assembler.toResource(createPage(2)); + PagedModel> resources = assembler.toModel(createPage(2)); assertThat(resources.getRequiredLink(IanaLinkRelations.FIRST).getHref()).endsWith("?page=0&size=1"); assertThat(resources.getRequiredLink(IanaLinkRelations.LAST).getHref()).endsWith("?page=2&size=1"); @@ -234,7 +234,7 @@ public class PagedResourcesAssemblerUnitTests { PagedResourcesAssembler assembler = new PagedResourcesAssembler<>(resolver, null); assembler.setForceFirstAndLastRels(true); - PagedResources> resources = assembler.toResource(EMPTY_PAGE); + PagedModel> resources = assembler.toModel(EMPTY_PAGE); assertThat(resources.getRequiredLink(IanaLinkRelations.FIRST).getHref()).endsWith("?page=0&size=20"); assertThat(resources.getRequiredLink(IanaLinkRelations.LAST).getHref()).endsWith("?page=0&size=20"); @@ -243,16 +243,16 @@ public class PagedResourcesAssemblerUnitTests { @Test // DATACMNS-802 public void usesCustomPagedResources() { - ResourceAssembler, PagedResources>> assembler = new CustomPagedResourcesAssembler<>( + RepresentationModelAssembler, PagedModel>> assembler = new CustomPagedResourcesAssembler<>( resolver, null); - assertThat(assembler.toResource(EMPTY_PAGE)).isInstanceOf(CustomPagedResources.class); + assertThat(assembler.toModel(EMPTY_PAGE)).isInstanceOf(CustomPagedResources.class); } @Test // DATACMNS-1042 public void selfLinkContainsCoordinatesForCurrentPage() { - PagedResources> resource = assembler.toResource(createPage(0)); + PagedModel> resource = assembler.toModel(createPage(0)); assertThat(resource.getRequiredLink(IanaLinkRelations.SELF).getHref()).endsWith("?page=0&size=1"); } @@ -277,18 +277,18 @@ public class PagedResourcesAssemblerUnitTests { String name; } - static class PersonResource extends ResourceSupport { + static class PersonResource extends RepresentationModel { String name; } - static class PersonResourceAssembler implements ResourceAssembler { + static class PersonResourceAssembler implements RepresentationModelAssembler { /* * (non-Javadoc) - * @see org.springframework.hateoas.ResourceAssembler#toResource(java.lang.Object) + * @see org.springframework.hateoas.server.RepresentationModelAssembler#toModel(java.lang.Object) */ @Override - public PersonResource toResource(Person entity) { + public PersonResource toModel(Person entity) { PersonResource resource = new PersonResource(); resource.name = entity.name; return resource; @@ -301,14 +301,18 @@ public class PagedResourcesAssemblerUnitTests { super(resolver, baseUri); } + /* + * (non-Javadoc) + * @see org.springframework.data.web.PagedResourcesAssembler#createPagedModel(java.util.List, org.springframework.hateoas.PagedModel.PageMetadata, org.springframework.data.domain.Page) + */ @Override - protected PagedResources createPagedResource(List resources, + protected , S> PagedModel createPagedModel(List resources, PageMetadata metadata, Page page) { return new CustomPagedResources<>(resources, metadata); } } - static class CustomPagedResources extends PagedResources { + static class CustomPagedResources extends PagedModel { public CustomPagedResources(Collection content, PageMetadata metadata) { super(content, metadata); diff --git a/src/test/java/org/springframework/data/web/config/PageableResourcesAssemblerIntegrationTests.java b/src/test/java/org/springframework/data/web/config/PageableResourcesAssemblerIntegrationTests.java index 0bd713dae..747b4529b 100755 --- a/src/test/java/org/springframework/data/web/config/PageableResourcesAssemblerIntegrationTests.java +++ b/src/test/java/org/springframework/data/web/config/PageableResourcesAssemblerIntegrationTests.java @@ -32,8 +32,8 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.web.PagedResourcesAssembler; import org.springframework.data.web.WebTestUtils; import org.springframework.hateoas.IanaLinkRelations; -import org.springframework.hateoas.PagedResources; -import org.springframework.hateoas.Resource; +import org.springframework.hateoas.PagedModel; +import org.springframework.hateoas.EntityModel; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.context.WebApplicationContext; @@ -68,7 +68,7 @@ public class PageableResourcesAssemblerIntegrationTests { assertThat(controller.assembler).isNotNull(); - PagedResources> resources = controller.sample(PageRequest.of(1, 1)); + PagedModel> resources = controller.sample(PageRequest.of(1, 1)); assertThat(resources.getLink(IanaLinkRelations.PREV)).isNotNull(); assertThat(resources.getLink(IanaLinkRelations.NEXT)).isNotNull(); @@ -97,12 +97,12 @@ public class PageableResourcesAssemblerIntegrationTests { @Autowired PagedResourcesAssembler assembler; @RequestMapping("/persons") - PagedResources> sample(Pageable pageable) { + PagedModel> sample(Pageable pageable) { Page page = new PageImpl<>(Collections.singletonList(new Person()), pageable, pageable.getOffset() + pageable.getPageSize() + 1); - return assembler.toResource(page); + return assembler.toModel(page); } } diff --git a/src/test/java/org/springframework/data/web/querydsl/QuerydslPredicateArgumentResolverUnitTests.java b/src/test/java/org/springframework/data/web/querydsl/QuerydslPredicateArgumentResolverUnitTests.java index 27b6167c4..79e3c6191 100755 --- a/src/test/java/org/springframework/data/web/querydsl/QuerydslPredicateArgumentResolverUnitTests.java +++ b/src/test/java/org/springframework/data/web/querydsl/QuerydslPredicateArgumentResolverUnitTests.java @@ -36,7 +36,7 @@ import org.springframework.data.querydsl.binding.QuerydslBindingsFactory; import org.springframework.data.querydsl.binding.QuerydslPredicate; import org.springframework.data.util.ClassTypeInformation; import org.springframework.data.util.TypeInformation; -import org.springframework.hateoas.Resource; +import org.springframework.hateoas.EntityModel; import org.springframework.http.HttpEntity; import org.springframework.http.ResponseEntity; import org.springframework.mock.web.MockHttpServletRequest; @@ -246,7 +246,7 @@ public class QuerydslPredicateArgumentResolverUnitTests { ModelAndView forModelAndView(); - ResponseEntity> forResourceOfUser(); + ResponseEntity> forResourceOfUser(); } public static class SampleRepo implements QuerydslBinderCustomizer {