diff --git a/pom.xml b/pom.xml
index 8ca1078f2..9b3848ed2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,6 +20,7 @@
0.10.0
2.11.7
1.4.15
+ 1.0.0.BUILD-SNAPSHOT
spring.data.commons
diff --git a/src/main/java/org/springframework/data/web/PagedResourcesAssembler.java b/src/main/java/org/springframework/data/web/PagedResourcesAssembler.java
index 0ef7d899e..146c22d37 100644
--- a/src/main/java/org/springframework/data/web/PagedResourcesAssembler.java
+++ b/src/main/java/org/springframework/data/web/PagedResourcesAssembler.java
@@ -26,6 +26,7 @@ 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.IanaLinkRelation;
import org.springframework.hateoas.Link;
import org.springframework.hateoas.PagedResources;
import org.springframework.hateoas.PagedResources.PageMetadata;
@@ -220,27 +221,27 @@ public class PagedResourcesAssembler implements ResourceAssembler, Pa
boolean isNavigable = page.hasPrevious() || page.hasNext();
if (isNavigable || forceFirstAndLastRels) {
- resources.add(createLink(base, PageRequest.of(0, page.getSize(), page.getSort()), Link.REL_FIRST));
+ resources.add(createLink(base, PageRequest.of(0, page.getSize(), page.getSort()), IanaLinkRelation.FIRST.value()));
}
if (page.hasPrevious()) {
- resources.add(createLink(base, page.previousPageable(), Link.REL_PREVIOUS));
+ resources.add(createLink(base, page.previousPageable(), IanaLinkRelation.PREV.value()));
}
Link selfLink = link.map(it -> it.withSelfRel())//
- .orElseGet(() -> createLink(base, page.getPageable(), Link.REL_SELF));
+ .orElseGet(() -> createLink(base, page.getPageable(), IanaLinkRelation.SELF.value()));
resources.add(selfLink);
if (page.hasNext()) {
- resources.add(createLink(base, page.nextPageable(), Link.REL_NEXT));
+ resources.add(createLink(base, page.nextPageable(), IanaLinkRelation.NEXT.value()));
}
if (isNavigable || forceFirstAndLastRels) {
int lastIndex = page.getTotalPages() == 0 ? 0 : page.getTotalPages() - 1;
- resources.add(createLink(base, PageRequest.of(lastIndex, page.getSize(), page.getSort()), Link.REL_LAST));
+ resources.add(createLink(base, PageRequest.of(lastIndex, page.getSize(), page.getSort()), IanaLinkRelation.LAST.value()));
}
return resources;
diff --git a/src/test/java/org/springframework/data/domain/jaxb/SpringDataJaxbUnitTests.java b/src/test/java/org/springframework/data/domain/jaxb/SpringDataJaxbUnitTests.java
index dad96b168..b7e46a7a4 100755
--- a/src/test/java/org/springframework/data/domain/jaxb/SpringDataJaxbUnitTests.java
+++ b/src/test/java/org/springframework/data/domain/jaxb/SpringDataJaxbUnitTests.java
@@ -45,6 +45,7 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;
+import org.springframework.hateoas.IanaLinkRelation;
import org.springframework.hateoas.Link;
/**
@@ -159,7 +160,9 @@ public class SpringDataJaxbUnitTests {
@Override
protected List getLinks(Page> source) {
- return Arrays.asList(new Link(Link.REL_NEXT, "next"), new Link(Link.REL_PREVIOUS, "previous"));
+ return Arrays.asList(
+ new Link(IanaLinkRelation.NEXT.value(), IanaLinkRelation.NEXT.value()),
+ new Link(IanaLinkRelation.PREV.value(), IanaLinkRelation.PREVIOUS.value()));
}
}
}
diff --git a/src/test/java/org/springframework/data/web/PagedResourcesAssemblerUnitTests.java b/src/test/java/org/springframework/data/web/PagedResourcesAssemblerUnitTests.java
index 8cc45ec01..61f16bf43 100755
--- a/src/test/java/org/springframework/data/web/PagedResourcesAssemblerUnitTests.java
+++ b/src/test/java/org/springframework/data/web/PagedResourcesAssemblerUnitTests.java
@@ -30,6 +30,7 @@ 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.IanaLinkRelation;
import org.springframework.hateoas.Link;
import org.springframework.hateoas.PagedResources;
import org.springframework.hateoas.PagedResources.PageMetadata;
@@ -65,9 +66,9 @@ public class PagedResourcesAssemblerUnitTests {
PagedResources> resources = assembler.toResource(createPage(0));
- assertThat(resources.getLink(Link.REL_PREVIOUS)).isNull();
- assertThat(resources.getLink(Link.REL_SELF)).isNotNull();
- assertThat(resources.getLink(Link.REL_NEXT)).isNotNull();
+ assertThat(resources.getLink(IanaLinkRelation.PREV.value())).isEmpty();
+ assertThat(resources.getLink(IanaLinkRelation.SELF.value())).isNotEmpty();
+ assertThat(resources.getLink(IanaLinkRelation.NEXT.value())).isNotEmpty();
}
@Test
@@ -75,9 +76,9 @@ public class PagedResourcesAssemblerUnitTests {
PagedResources> resources = assembler.toResource(createPage(1));
- assertThat(resources.getLink(Link.REL_PREVIOUS)).isNotNull();
- assertThat(resources.getLink(Link.REL_SELF)).isNotNull();
- assertThat(resources.getLink(Link.REL_NEXT)).isNotNull();
+ assertThat(resources.getLink(IanaLinkRelation.PREV.value())).isNotEmpty();
+ assertThat(resources.getLink(IanaLinkRelation.SELF.value())).isNotEmpty();
+ assertThat(resources.getLink(IanaLinkRelation.NEXT.value())).isNotEmpty();
}
@Test
@@ -85,9 +86,9 @@ public class PagedResourcesAssemblerUnitTests {
PagedResources> resources = assembler.toResource(createPage(2));
- assertThat(resources.getLink(Link.REL_PREVIOUS)).isNotNull();
- assertThat(resources.getLink(Link.REL_SELF)).isNotNull();
- assertThat(resources.getLink(Link.REL_NEXT)).isNull();
+ assertThat(resources.getLink(IanaLinkRelation.PREV.value())).isNotEmpty();
+ assertThat(resources.getLink(IanaLinkRelation.SELF.value())).isNotEmpty();
+ assertThat(resources.getLink(IanaLinkRelation.NEXT.value())).isEmpty();
}
@Test
@@ -98,9 +99,9 @@ public class PagedResourcesAssemblerUnitTests {
PagedResourcesAssembler assembler = new PagedResourcesAssembler<>(resolver, baseUri);
PagedResources> resources = assembler.toResource(createPage(1));
- assertThat(resources.getLink(Link.REL_PREVIOUS).getHref()).startsWith(baseUri.toUriString());
- assertThat(resources.getLink(Link.REL_SELF)).isNotNull();
- assertThat(resources.getLink(Link.REL_NEXT).getHref()).startsWith(baseUri.toUriString());
+ assertThat(resources.getRequiredLink(IanaLinkRelation.PREV.value()).getHref()).startsWith(baseUri.toUriString());
+ assertThat(resources.getRequiredLink(IanaLinkRelation.SELF.value())).isNotNull();
+ assertThat(resources.getRequiredLink(IanaLinkRelation.NEXT.value()).getHref()).startsWith(baseUri.toUriString());
}
@Test
@@ -110,9 +111,9 @@ public class PagedResourcesAssemblerUnitTests {
PagedResources> resources = assembler.toResource(createPage(1), link);
- assertThat(resources.getLink(Link.REL_PREVIOUS).getHref()).startsWith(link.getHref());
- assertThat(resources.getLink(Link.REL_SELF)).isEqualTo(link.withSelfRel());
- assertThat(resources.getLink(Link.REL_NEXT).getHref()).startsWith(link.getHref());
+ assertThat(resources.getRequiredLink(IanaLinkRelation.PREV.value()).getHref()).startsWith(link.getHref());
+ assertThat(resources.getRequiredLink(IanaLinkRelation.SELF.value())).isEqualTo(link.withSelfRel());
+ assertThat(resources.getRequiredLink(IanaLinkRelation.NEXT.value()).getHref()).startsWith(link.getHref());
}
@Test // DATACMNS-358
@@ -131,7 +132,7 @@ public class PagedResourcesAssemblerUnitTests {
PagedResources> resources = assembler.toResource(createPage(1));
- assertThat(resources.getLink(Link.REL_SELF).getHref()).doesNotContain("{").doesNotContain("}");
+ assertThat(resources.getRequiredLink(IanaLinkRelation.SELF.value()).getHref()).doesNotContain("{").doesNotContain("}");
}
@Test // DATACMNS-418
@@ -141,8 +142,8 @@ public class PagedResourcesAssemblerUnitTests {
PagedResources resources = assembler.toResource(createPage(0), personAssembler);
- assertThat(resources.hasLink(Link.REL_SELF)).isTrue();
- assertThat(resources.hasLink(Link.REL_NEXT)).isTrue();
+ assertThat(resources.hasLink(IanaLinkRelation.SELF.value())).isTrue();
+ assertThat(resources.hasLink(IanaLinkRelation.NEXT.value())).isTrue();
Collection content = resources.getContent();
assertThat(content).hasSize(1);
assertThat(content.iterator().next().name).isEqualTo("Dave");
@@ -163,8 +164,8 @@ public class PagedResourcesAssemblerUnitTests {
// We expect 2 as the created page has index 1. Pages itself are always 0 indexed, so we created page 2 above.
assertThat(resource.getMetadata().getNumber()).isEqualTo(2);
- assertThat(getQueryParameters(resource.getLink("prev"))).containsEntry("page", "1");
- assertThat(getQueryParameters(resource.getLink("next"))).containsEntry("page", "3");
+ assertThat(getQueryParameters(resource.getRequiredLink("prev"))).containsEntry("page", "1");
+ assertThat(getQueryParameters(resource.getRequiredLink("next"))).containsEntry("page", "3");
}
@Test // DATACMNS-515
@@ -172,9 +173,9 @@ public class PagedResourcesAssemblerUnitTests {
PagedResources> resources = assembler.toResource(createPage(1));
- assertThat(resources.getLink(Link.REL_SELF).getHref()).doesNotContain("{").doesNotContain("}");
- assertThat(resources.getLink(Link.REL_NEXT).getHref()).endsWith("?page=2&size=1");
- assertThat(resources.getLink(Link.REL_PREVIOUS).getHref()).endsWith("?page=0&size=1");
+ assertThat(resources.getRequiredLink(IanaLinkRelation.SELF.value()).getHref()).doesNotContain("{").doesNotContain("}");
+ assertThat(resources.getRequiredLink(IanaLinkRelation.NEXT.value()).getHref()).endsWith("?page=2&size=1");
+ assertThat(resources.getRequiredLink(IanaLinkRelation.PREV.value()).getHref()).endsWith("?page=0&size=1");
}
@Test // DATACMNS-699
@@ -205,8 +206,8 @@ public class PagedResourcesAssemblerUnitTests {
PagedResources> resources = assembler.toResource(createPage(1));
- assertThat(resources.getLink(Link.REL_FIRST).getHref()).endsWith("?page=0&size=1");
- assertThat(resources.getLink(Link.REL_LAST).getHref()).endsWith("?page=2&size=1");
+ assertThat(resources.getRequiredLink(IanaLinkRelation.FIRST.value()).getHref()).endsWith("?page=0&size=1");
+ assertThat(resources.getRequiredLink(IanaLinkRelation.LAST.value()).getHref()).endsWith("?page=2&size=1");
}
@Test // DATACMNS-701
@@ -214,8 +215,8 @@ public class PagedResourcesAssemblerUnitTests {
PagedResources> resources = assembler.toResource(createPage(0));
- assertThat(resources.getLink(Link.REL_FIRST).getHref()).endsWith("?page=0&size=1");
- assertThat(resources.getLink(Link.REL_LAST).getHref()).endsWith("?page=2&size=1");
+ assertThat(resources.getRequiredLink(IanaLinkRelation.FIRST.value()).getHref()).endsWith("?page=0&size=1");
+ assertThat(resources.getRequiredLink(IanaLinkRelation.LAST.value()).getHref()).endsWith("?page=2&size=1");
}
@Test // DATACMNS-701
@@ -223,8 +224,8 @@ public class PagedResourcesAssemblerUnitTests {
PagedResources> resources = assembler.toResource(createPage(2));
- assertThat(resources.getLink(Link.REL_FIRST).getHref()).endsWith("?page=0&size=1");
- assertThat(resources.getLink(Link.REL_LAST).getHref()).endsWith("?page=2&size=1");
+ assertThat(resources.getRequiredLink(IanaLinkRelation.FIRST.value()).getHref()).endsWith("?page=0&size=1");
+ assertThat(resources.getRequiredLink(IanaLinkRelation.LAST.value()).getHref()).endsWith("?page=2&size=1");
}
@Test // DATACMNS-701
@@ -235,8 +236,8 @@ public class PagedResourcesAssemblerUnitTests {
PagedResources> resources = assembler.toResource(EMPTY_PAGE);
- assertThat(resources.getLink(Link.REL_FIRST).getHref()).endsWith("?page=0&size=20");
- assertThat(resources.getLink(Link.REL_LAST).getHref()).endsWith("?page=0&size=20");
+ assertThat(resources.getRequiredLink(IanaLinkRelation.FIRST.value()).getHref()).endsWith("?page=0&size=20");
+ assertThat(resources.getRequiredLink(IanaLinkRelation.LAST.value()).getHref()).endsWith("?page=0&size=20");
}
@Test // DATACMNS-802
@@ -253,7 +254,7 @@ public class PagedResourcesAssemblerUnitTests {
PagedResources> resource = assembler.toResource(createPage(0));
- assertThat(resource.getLink(Link.REL_SELF).getHref()).endsWith("?page=0&size=1");
+ assertThat(resource.getRequiredLink(IanaLinkRelation.SELF.value()).getHref()).endsWith("?page=0&size=1");
}
private static Page createPage(int index) {
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 2548a5f96..afba4bb9e 100755
--- a/src/test/java/org/springframework/data/web/config/PageableResourcesAssemblerIntegrationTests.java
+++ b/src/test/java/org/springframework/data/web/config/PageableResourcesAssemblerIntegrationTests.java
@@ -17,7 +17,6 @@ package org.springframework.data.web.config;
import static org.assertj.core.api.Assertions.*;
-import java.util.Arrays;
import java.util.Collections;
import org.junit.Before;
@@ -32,7 +31,7 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.web.PagedResourcesAssembler;
import org.springframework.data.web.WebTestUtils;
-import org.springframework.hateoas.Link;
+import org.springframework.hateoas.IanaLinkRelation;
import org.springframework.hateoas.PagedResources;
import org.springframework.hateoas.Resource;
import org.springframework.stereotype.Controller;
@@ -71,9 +70,9 @@ public class PageableResourcesAssemblerIntegrationTests {
PagedResources> resources = controller.sample(PageRequest.of(1, 1));
- assertThat(resources.getLink(Link.REL_PREVIOUS)).isNotNull();
- assertThat(resources.getLink(Link.REL_NEXT)).isNotNull();
- assertThat(resources.getLink(Link.REL_SELF)).isNotNull();
+ assertThat(resources.getLink(IanaLinkRelation.PREV.value())).isNotNull();
+ assertThat(resources.getLink(IanaLinkRelation.NEXT.value())).isNotNull();
+ assertThat(resources.getLink(IanaLinkRelation.SELF.value())).isNotNull();
}
@Test // DATACMNS-471