Repository: cxf Updated Branches: refs/heads/3.0.x-fixes a2182495f -> 83a6f123a
[CXF-6378] Fixing a relatve link resolution issue Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/83a6f123 Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/83a6f123 Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/83a6f123 Branch: refs/heads/3.0.x-fixes Commit: 83a6f123a37253fbe1cb135e4e53973def35d08f Parents: a218249 Author: Sergey Beryozkin <[email protected]> Authored: Wed Apr 29 13:37:20 2015 +0100 Committer: Sergey Beryozkin <[email protected]> Committed: Wed Apr 29 13:38:05 2015 +0100 ---------------------------------------------------------------------- .../java/org/apache/cxf/jaxrs/impl/LinkBuilderImpl.java | 10 ++-------- .../org/apache/cxf/jaxrs/impl/LinkBuilderImplTest.java | 4 ++-- .../org/apache/cxf/systest/jaxrs/BookStoreSpring.java | 5 +++-- 3 files changed, 7 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/83a6f123/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/LinkBuilderImpl.java ---------------------------------------------------------------------- diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/LinkBuilderImpl.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/LinkBuilderImpl.java index edfc403..2363a7a 100644 --- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/LinkBuilderImpl.java +++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/LinkBuilderImpl.java @@ -57,15 +57,9 @@ public class LinkBuilderImpl implements Builder { private URI getResolvedUri(Object... values) { URI uri = ub.build(values); - if (baseUri != null) { + if (!uri.isAbsolute() && baseUri != null) { UriBuilder linkUriBuilder = UriBuilder.fromUri(baseUri); - String scheme = uri.getScheme(); - if (scheme != null && scheme.startsWith("http")) { - return HttpUtils.resolve(linkUriBuilder, uri); - } else { - String theUri = uri.toString(); - return linkUriBuilder.path(theUri).build(); - } + return HttpUtils.resolve(linkUriBuilder, uri); } else { return uri; } http://git-wip-us.apache.org/repos/asf/cxf/blob/83a6f123/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/LinkBuilderImplTest.java ---------------------------------------------------------------------- diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/LinkBuilderImplTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/LinkBuilderImplTest.java index 4d84863..a3790dc 100644 --- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/LinkBuilderImplTest.java +++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/LinkBuilderImplTest.java @@ -79,7 +79,7 @@ public class LinkBuilderImplTest extends Assert { Link.Builder linkBuilder = Link.fromUri("relative"); linkBuilder.baseUri("http://localhost:8080/base/path"); Link link = linkBuilder.rel("next").build(); - assertEquals("<http://localhost:8080/base/path/relative>;rel=\"next\"", link.toString()); + assertEquals("<http://localhost:8080/base/relative>;rel=\"next\"", link.toString()); } @Test @@ -87,7 +87,7 @@ public class LinkBuilderImplTest extends Assert { Link.Builder linkBuilder = Link.fromUri("/relative"); linkBuilder.baseUri("http://localhost:8080/base/path"); Link link = linkBuilder.rel("next").build(); - assertEquals("<http://localhost:8080/base/path/relative>;rel=\"next\"", link.toString()); + assertEquals("<http://localhost:8080/relative>;rel=\"next\"", link.toString()); } @Test http://git-wip-us.apache.org/repos/asf/cxf/blob/83a6f123/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreSpring.java ---------------------------------------------------------------------- diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreSpring.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreSpring.java index d264d0b..ab08c96 100644 --- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreSpring.java +++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreSpring.java @@ -21,6 +21,7 @@ package org.apache.cxf.systest.jaxrs; import java.io.ByteArrayOutputStream; +import java.net.URI; import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -95,8 +96,8 @@ public class BookStoreSpring { @GET @Path("/link") public Response getBookLink() { - Link link = Link.fromResource(BookStoreSpring.class) - .baseUri(ui.getBaseUri()).rel("self").build(); + URI selfUri = ui.getBaseUriBuilder().path(BookStoreSpring.class).build(); + Link link = Link.fromUri(selfUri).rel("self").build(); return Response.ok().links(link).build(); }
