Repository: brooklyn-server Updated Branches: refs/heads/master 972854a8c -> 2845946a1
Don't require rest-client users to append "v1" to the endpoing url Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/37f4942f Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/37f4942f Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/37f4942f Branch: refs/heads/master Commit: 37f4942f283acb5b4a9785881925e1851a163829 Parents: 972854a Author: Svetoslav Neykov <[email protected]> Authored: Sun Feb 28 16:20:21 2016 +0200 Committer: Svetoslav Neykov <[email protected]> Committed: Sun Feb 28 16:20:21 2016 +0200 ---------------------------------------------------------------------- .../org/apache/brooklyn/rest/client/BrooklynApi.java | 14 ++++++++++++-- .../rest/client/BrooklynApiRestClientTest.java | 15 +++++++++++++-- .../brooklyn/rest/client/BrooklynApiUtilTest.java | 6 +++--- 3 files changed, 28 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/37f4942f/rest/rest-client/src/main/java/org/apache/brooklyn/rest/client/BrooklynApi.java ---------------------------------------------------------------------- diff --git a/rest/rest-client/src/main/java/org/apache/brooklyn/rest/client/BrooklynApi.java b/rest/rest-client/src/main/java/org/apache/brooklyn/rest/client/BrooklynApi.java index 30351b2..d222e39 100644 --- a/rest/rest-client/src/main/java/org/apache/brooklyn/rest/client/BrooklynApi.java +++ b/rest/rest-client/src/main/java/org/apache/brooklyn/rest/client/BrooklynApi.java @@ -69,6 +69,8 @@ import org.apache.brooklyn.rest.api.UsageApi; import org.apache.brooklyn.rest.api.VersionApi; import org.apache.brooklyn.rest.client.util.http.BuiltResponsePreservingError; import org.apache.brooklyn.util.exceptions.Exceptions; +import org.apache.brooklyn.util.net.Urls; +import org.apache.brooklyn.util.os.Os; import io.swagger.annotations.ApiOperation; @@ -143,7 +145,7 @@ public class BrooklynApi { * @see #getClientExecutor(org.apache.http.auth.Credentials) */ public BrooklynApi(URL endpoint, ClientExecutor clientExecutor) { - this.target = checkNotNull(endpoint, "endpoint").toString(); + this.target = addV1SuffixIfNeeded(checkNotNull(endpoint, "endpoint").toString()); this.maxPoolSize = -1; this.timeOutInMillis = -1; this.clientExecutor = checkNotNull(clientExecutor, "clientExecutor"); @@ -163,12 +165,20 @@ public class BrooklynApi { } catch (MalformedURLException e) { throw new IllegalArgumentException(e); } - this.target = endpoint; + this.target = addV1SuffixIfNeeded(endpoint); this.maxPoolSize = maxPoolSize; this.timeOutInMillis = timeOutInMillis; this.clientExecutor = getClientExecutor(credentials); } + private String addV1SuffixIfNeeded(String endpoint) { + if (!endpoint.endsWith("/v1/") && !endpoint.endsWith("/v1")) { + return Urls.mergePaths(endpoint, "v1"); + } else { + return endpoint; + } + } + private Supplier<PoolingHttpClientConnectionManager> connectionManagerSupplier = Suppliers.memoize(new Supplier<PoolingHttpClientConnectionManager>() { @Override public PoolingHttpClientConnectionManager get() { http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/37f4942f/rest/rest-client/src/test/java/org/apache/brooklyn/rest/client/BrooklynApiRestClientTest.java ---------------------------------------------------------------------- diff --git a/rest/rest-client/src/test/java/org/apache/brooklyn/rest/client/BrooklynApiRestClientTest.java b/rest/rest-client/src/test/java/org/apache/brooklyn/rest/client/BrooklynApiRestClientTest.java index adbdeda..f933e57 100644 --- a/rest/rest-client/src/test/java/org/apache/brooklyn/rest/client/BrooklynApiRestClientTest.java +++ b/rest/rest-client/src/test/java/org/apache/brooklyn/rest/client/BrooklynApiRestClientTest.java @@ -18,6 +18,8 @@ */ package org.apache.brooklyn.rest.client; +import static org.testng.Assert.assertEquals; + import java.net.URL; import java.nio.charset.Charset; import java.nio.file.Files; @@ -29,6 +31,7 @@ import javax.ws.rs.core.Response; import org.apache.brooklyn.api.entity.Application; import org.apache.brooklyn.api.mgmt.ManagementContext; +import org.apache.brooklyn.core.BrooklynVersion; import org.apache.brooklyn.core.entity.Entities; import org.apache.brooklyn.core.entity.StartableApplication; import org.apache.brooklyn.core.location.BasicLocationRegistry; @@ -55,7 +58,7 @@ public class BrooklynApiRestClientTest { private static final Logger log = LoggerFactory.getLogger(BrooklynApiRestClientTest.class); private ManagementContext manager; - + private Server server; private BrooklynApi api; protected synchronized ManagementContext getManagementContext() throws Exception { @@ -70,7 +73,7 @@ public class BrooklynApiRestClientTest { @BeforeClass public void setUp() throws Exception { - Server server = BrooklynRestApiLauncher.launcher() + server = BrooklynRestApiLauncher.launcher() .managementContext(manager) .securityProvider(TestSecurityProvider.class) .start(); @@ -89,6 +92,14 @@ public class BrooklynApiRestClientTest { } } Entities.destroyAll(getManagementContext()); + server.stop(); + } + + public void testNoV1InUrl() { + api = BrooklynApi.newInstance("http://localhost:" + ((NetworkConnector)server.getConnectors()[0]).getPort(), + TestSecurityProvider.USER, TestSecurityProvider.PASSWORD); + + assertEquals(api.getServerApi().getVersion().getVersion(), BrooklynVersion.get()); } public void testLocationApi() throws Exception { http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/37f4942f/rest/rest-client/src/test/java/org/apache/brooklyn/rest/client/BrooklynApiUtilTest.java ---------------------------------------------------------------------- diff --git a/rest/rest-client/src/test/java/org/apache/brooklyn/rest/client/BrooklynApiUtilTest.java b/rest/rest-client/src/test/java/org/apache/brooklyn/rest/client/BrooklynApiUtilTest.java index 2543238..9cae021 100644 --- a/rest/rest-client/src/test/java/org/apache/brooklyn/rest/client/BrooklynApiUtilTest.java +++ b/rest/rest-client/src/test/java/org/apache/brooklyn/rest/client/BrooklynApiUtilTest.java @@ -65,9 +65,9 @@ public class BrooklynApiUtilTest { BrooklynApiUtil.deployBlueprint(api, YAML); RecordedRequest request = server.takeRequest(); - assertEquals("/applications", request.getPath()); - assertEquals("POST", request.getMethod()); - assertEquals(YAML, new String(request.getBody())); + assertEquals(request.getPath(), "/v1/applications"); + assertEquals(request.getMethod(), "POST"); + assertEquals(new String(request.getBody()), YAML); } @Test
