diff --git a/.travis.yml b/.travis.yml index 0e0047ab..8465b006 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,8 +4,6 @@ jdk: env: matrix: - PROFILE=non-existant - - PROFILE=spring43-next - - PROFILE=spring5 - PROFILE=spring5-next addons: apt: diff --git a/pom.xml b/pom.xml index 360495f1..3711d60a 100644 --- a/pom.xml +++ b/pom.xml @@ -88,6 +88,7 @@ spring5-next 5.0.2.BUILD-SNAPSHOT + 2.9.2 diff --git a/src/main/java/org/springframework/hateoas/Links.java b/src/main/java/org/springframework/hateoas/Links.java index 8ba46929..a8afb751 100644 --- a/src/main/java/org/springframework/hateoas/Links.java +++ b/src/main/java/org/springframework/hateoas/Links.java @@ -35,7 +35,7 @@ import org.springframework.util.StringUtils; */ public class Links implements Iterable { - private static final Pattern LINK_HEADER_PATTERN = Pattern.compile("(<[^>]*>(;\\w+=\"[^\"]*\")+)"); + private static final Pattern LINK_HEADER_PATTERN = Pattern.compile("(<[^>]*>(;\\s*\\w+=\"[^\"]*\")+)"); static final Links NO_LINKS = new Links(Collections.emptyList()); diff --git a/src/test/java/org/springframework/hateoas/LinksUnitTest.java b/src/test/java/org/springframework/hateoas/LinksUnitTest.java index 813a4965..78c30bc2 100755 --- a/src/test/java/org/springframework/hateoas/LinksUnitTest.java +++ b/src/test/java/org/springframework/hateoas/LinksUnitTest.java @@ -34,6 +34,7 @@ public class LinksUnitTest { static final String FIRST = ";rel=\"foo\""; static final String SECOND = ";rel=\"bar\""; static final String WITH_COMMA = ";rel=\"foo\""; + static final String WITH_WHITESPACE = "; rel=\"foo\"," + SECOND; static final String LINKS = StringUtils.collectionToCommaDelimitedString(Arrays.asList(FIRST, SECOND)); @@ -93,4 +94,12 @@ public class LinksUnitTest { assertThat(twoWithCommaInFirst.getLink("foo")).hasValue(withComma); assertThat(twoWithCommaInFirst.getLink("bar")).hasValue(new Link("/somethingElse", "bar")); } + + /** + * @see https://tools.ietf.org/html/rfc5988#section-5.5 + */ + @Test + public void parsesLinksWithWhitespace() { + assertThat(Links.valueOf(WITH_WHITESPACE)).isEqualTo(reference); + } }