diff --git a/src/main/java/com/openshift/client/IHttpClient.java b/src/main/java/com/openshift/client/IHttpClient.java index 8bc58163..6b76389d 100755 --- a/src/main/java/com/openshift/client/IHttpClient.java +++ b/src/main/java/com/openshift/client/IHttpClient.java @@ -52,6 +52,8 @@ public interface IHttpClient { public void setUserAgent(String userAgent); + public String getUserAgent(); + public void setVersion(String serviceVersion); public String get(URL url) throws HttpClientException, SocketTimeoutException; diff --git a/src/main/java/com/openshift/internal/client/httpclient/UrlConnectionHttpClient.java b/src/main/java/com/openshift/internal/client/httpclient/UrlConnectionHttpClient.java index 3b92c80e..6a017717 100755 --- a/src/main/java/com/openshift/internal/client/httpclient/UrlConnectionHttpClient.java +++ b/src/main/java/com/openshift/internal/client/httpclient/UrlConnectionHttpClient.java @@ -106,6 +106,10 @@ public void setUserAgent(String userAgent) { this.userAgent = userAgent; } + public String getUserAgent() { + return userAgent; + } + public void setVersion(String version) { this.version = version; } diff --git a/src/main/java/com/openshift/internal/client/httpclient/UrlConnectionHttpClientBuilder.java b/src/main/java/com/openshift/internal/client/httpclient/UrlConnectionHttpClientBuilder.java index 9320e346..f687cb36 100755 --- a/src/main/java/com/openshift/internal/client/httpclient/UrlConnectionHttpClientBuilder.java +++ b/src/main/java/com/openshift/internal/client/httpclient/UrlConnectionHttpClientBuilder.java @@ -65,9 +65,15 @@ public UrlConnectionHttpClientBuilder setVersion(String version) { } public IHttpClient client() { - if (authKey != null && authKey.trim().length() > 0) - userAgent = "OpenShift"; - return new UrlConnectionHttpClient(username, password, userAgent, sslChecks, requestMediaType, - acceptedMediaType, version, authKey, authIV); + if (authKey != null && authKey.trim().length() > 0) { + if (userAgent == null) { + userAgent = "OpenShift"; + } else if (!userAgent.startsWith("OpenShift")) { + userAgent = "OpenShift-" + userAgent; + } + } + return new UrlConnectionHttpClient(username, password, userAgent, + sslChecks, requestMediaType, acceptedMediaType, version, + authKey, authIV); } } diff --git a/src/test/java/com/openshift/internal/client/HttpClientTest.java b/src/test/java/com/openshift/internal/client/HttpClientTest.java index a70239ea..e3fffbd1 100755 --- a/src/test/java/com/openshift/internal/client/HttpClientTest.java +++ b/src/test/java/com/openshift/internal/client/HttpClientTest.java @@ -127,6 +127,24 @@ public void canAcceptJson() throws SocketTimeoutException, HttpClientException, assertNotNull(response); assertTrue(response.indexOf(ACCEPT_APPLICATION_JSON) > 0); } + + @Test + public void hasProperAgentWhenUsingKeys() { + httpClient = new UrlConnectionHttpClientBuilder() + .setUserAgent("com.needskey").setCredentials("blah", "bluh", "authkey", "authiv") + .client(); + + assertEquals("OpenShift-com.needskey", httpClient.getUserAgent()); + } + + @Test + public void hasProperAgentWhenUsingKeysAndNoAgent() { + httpClient = new UrlConnectionHttpClientBuilder() + .setCredentials("blah", "bluh", "authkey", "authiv") + .client(); + + assertEquals("OpenShift", httpClient.getUserAgent()); + } @Test public void shouldEncodeParametersCorrectly() throws HttpClientException, FileNotFoundException, IOException,