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

Reply via email to