From f568845146d28a35795678d3b3d4583df519e3c6 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Fri, 1 Mar 2013 12:20:11 +0100 Subject: [PATCH] #52 - ControllerLinkBuilder builds absolute URIs again. Commit 8039c306e9 introduced a glitch in ControllerLinkBuilderFactory that caused URIs created not being absolute ones anymore. This commit fixes that glitch. --- .../hateoas/mvc/ControllerLinkBuilderFactory.java | 10 +++++++--- .../java/org/springframework/hateoas/TestUtils.java | 6 +++++- .../mvc/ControllerLinkBuilderFactoryUnitTest.java | 5 ++++- .../hateoas/mvc/ControllerLinkBuilderUnitTest.java | 2 ++ 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/springframework/hateoas/mvc/ControllerLinkBuilderFactory.java b/src/main/java/org/springframework/hateoas/mvc/ControllerLinkBuilderFactory.java index 93832ae5..f4fc0d14 100644 --- a/src/main/java/org/springframework/hateoas/mvc/ControllerLinkBuilderFactory.java +++ b/src/main/java/org/springframework/hateoas/mvc/ControllerLinkBuilderFactory.java @@ -40,6 +40,7 @@ import org.springframework.util.Assert; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.util.UriComponents; import org.springframework.web.util.UriComponentsBuilder; import org.springframework.web.util.UriTemplate; @@ -102,7 +103,10 @@ public class ControllerLinkBuilderFactory implements MethodLinkBuilderFactory classMappingParameters = invocations.getObjectParameters(); Method method = invocation.getMethod(); - UriTemplate template = new UriTemplate(DISCOVERER.getMapping(method)); + String mapping = DISCOVERER.getMapping(method); + UriComponentsBuilder builder = ControllerLinkBuilder.getBuilder().path(mapping); + + UriTemplate template = new UriTemplate(mapping); Map values = new HashMap(); if (classMappingParameters.hasNext()) { @@ -112,7 +116,6 @@ public class ControllerLinkBuilderFactory implements MethodLinkBuilderFactory param : REQUEST_PARAM_ACCESSOR.getBoundParameters(invocation).entrySet()) { @@ -128,7 +131,8 @@ public class ControllerLinkBuilderFactory implements MethodLinkBuilderFactory