Skip to content

Commit 3f67576

Browse files
authored
Merge pull request #14 from IBM/remove-watson-references
Remove Watson references
2 parents 386a772 + 4e2d279 commit 3f67576

27 files changed

+230
-884
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ venv
88
.factorypath
99
/test-output/
1010
config
11+
.iml

build/bintray-config.template

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,6 @@
2525
"includePattern": "target/sdk-core-${TRAVIS_TAG}-javadoc.jar",
2626
"uploadPattern": "com/ibm/cloud/sdk-core/${TRAVIS_TAG}/sdk-core-${TRAVIS_TAG}-javadoc.jar"
2727
},
28-
{
29-
"includePattern": "target/sdk-core-${TRAVIS_TAG}-tests.jar",
30-
"uploadPattern": "com/ibm/cloud/sdk-core/${TRAVIS_TAG}/sdk-core-${TRAVIS_TAG}-tests.jar"
31-
},
3228
{
3329
"includePattern": "pom.xml",
3430
"uploadPattern": "com/ibm/cloud/sdk-core/${TRAVIS_TAG}/sdk-core-${TRAVIS_TAG}.pom"

pom.xml

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -257,18 +257,6 @@
257257
<!-- <configuration> <suiteXmlFiles> <suiteXmlFile>src/test/java/testng.xml</suiteXmlFile>
258258
</suiteXmlFiles> </configuration> -->
259259
</plugin>
260-
<plugin>
261-
<groupId>org.apache.maven.plugins</groupId>
262-
<artifactId>maven-jar-plugin</artifactId>
263-
<version>3.0.2</version>
264-
<executions>
265-
<execution>
266-
<goals>
267-
<goal>test-jar</goal>
268-
</goals>
269-
</execution>
270-
</executions>
271-
</plugin>
272260
</plugins>
273261
<resources>
274262
<resource>

src/main/java/com/ibm/cloud/sdk/core/http/HttpClientSingleton.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,9 @@
1212
*/
1313
package com.ibm.cloud.sdk.core.http;
1414

15-
import com.ibm.cloud.sdk.core.service.WatsonService;
15+
import com.ibm.cloud.sdk.core.service.BaseService;
1616
import com.ibm.cloud.sdk.core.service.security.DelegatingSSLSocketFactory;
1717
import com.ibm.cloud.sdk.core.util.HttpLogging;
18-
1918
import okhttp3.ConnectionSpec;
2019
import okhttp3.OkHttpClient;
2120
import okhttp3.OkHttpClient.Builder;
@@ -52,7 +51,7 @@
5251
public class HttpClientSingleton {
5352
private static HttpClientSingleton instance = null;
5453

55-
private static final Logger LOG = Logger.getLogger(WatsonService.class.getName());
54+
private static final Logger LOG = Logger.getLogger(BaseService.class.getName());
5655

5756
/**
5857
* TrustManager for disabling SSL verification, which essentially lets everything through.
@@ -130,7 +129,7 @@ private void addCookieJar(final OkHttpClient.Builder builder) {
130129
final CookieManager cookieManager = new CookieManager();
131130
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
132131

133-
builder.cookieJar(new WatsonCookieJar(cookieManager));
132+
builder.cookieJar(new ServiceCookieJar(cookieManager));
134133
}
135134

136135
/**
@@ -213,7 +212,7 @@ protected SSLSocket configureSocket(SSLSocket socket) throws IOException {
213212
}
214213

215214
/**
216-
* Creates an {@link OkHttpClient} instance with a new {@link WatsonCookieJar}.
215+
* Creates an {@link OkHttpClient} instance with a new {@link ServiceCookieJar}.
217216
*
218217
* @return the client
219218
*/

src/main/java/com/ibm/cloud/sdk/core/http/HttpHeaders.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -152,14 +152,4 @@ public interface HttpHeaders {
152152
* See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.47">HTTP/1.1 documentation</a>.
153153
*/
154154
String WWW_AUTHENTICATE = "WWW-Authenticate";
155-
156-
/** The Authorization token header. */
157-
String X_WATSON_AUTHORIZATION_TOKEN = "X-Watson-Authorization-Token";
158-
159-
/** Allow Watson to collect the payload. */
160-
String X_WATSON_LEARNING_OPT_OUT = "X-Watson-Learning-Opt-Out";
161-
162-
/** Mark Bluemix interactions from tests. */
163-
String X_WATSON_TEST = "X-Watson-Test";
164-
165155
}

src/main/java/com/ibm/cloud/sdk/core/http/RequestBuilder.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,21 @@
1212
*/
1313
package com.ibm.cloud.sdk.core.http;
1414

15-
import java.io.InputStream;
16-
import java.util.ArrayList;
17-
import java.util.List;
18-
1915
import com.google.gson.JsonObject;
20-
import com.ibm.cloud.sdk.core.service.WatsonService;
16+
import com.ibm.cloud.sdk.core.service.BaseService;
2117
import com.ibm.cloud.sdk.core.util.GsonSingleton;
2218
import com.ibm.cloud.sdk.core.util.StringHelper;
2319
import com.ibm.cloud.sdk.core.util.Validator;
24-
2520
import okhttp3.FormBody;
2621
import okhttp3.HttpUrl;
2722
import okhttp3.MediaType;
2823
import okhttp3.Request;
2924
import okhttp3.RequestBody;
3025

26+
import java.io.InputStream;
27+
import java.util.ArrayList;
28+
import java.util.List;
29+
3130
/**
3231
* Convenience class for constructing HTTP/HTTPS requests.
3332
*/
@@ -334,10 +333,10 @@ public RequestBuilder bodyContent(InputStream stream, String contentType) {
334333
public RequestBuilder bodyContent(String contentType, Object jsonContent, Object jsonPatchContent,
335334
InputStream nonJsonContent) {
336335
if (contentType != null) {
337-
if (WatsonService.isJsonMimeType(contentType)) {
336+
if (BaseService.isJsonMimeType(contentType)) {
338337
this.bodyContent(
339338
GsonSingleton.getGson().toJsonTree(jsonContent).getAsJsonObject().toString(), contentType);
340-
} else if (WatsonService.isJsonPatchMimeType(contentType)) {
339+
} else if (BaseService.isJsonPatchMimeType(contentType)) {
341340
this.bodyContent(
342341
GsonSingleton.getGson().toJsonTree(jsonPatchContent).getAsJsonObject().toString(), contentType);
343342
} else {

src/main/java/com/ibm/cloud/sdk/core/http/WatsonCookieJar.java renamed to src/main/java/com/ibm/cloud/sdk/core/http/ServiceCookieJar.java

Lines changed: 8 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -12,31 +12,27 @@
1212
*/
1313
package com.ibm.cloud.sdk.core.http;
1414

15-
import java.net.CookieHandler;
16-
import java.util.ArrayList;
17-
import java.util.List;
18-
1915
import okhttp3.Cookie;
2016
import okhttp3.CookieJar;
2117
import okhttp3.HttpUrl;
2218
import okhttp3.JavaNetCookieJar;
2319

20+
import java.net.CookieHandler;
21+
import java.util.List;
22+
2423
/**
25-
* This is an adapter that uses {@link JavaNetCookieJar} and ignore Speech to Text sessions for session less requests.
24+
* This is an adapter that uses {@link JavaNetCookieJar}.
2625
*
2726
*/
28-
public final class WatsonCookieJar implements CookieJar {
29-
private static final String SESSIONID = "SESSIONID";
30-
private static final String SESSIONS = "sessions";
31-
private static final String SPEECH_TO_TEXT = "speech-to-text";
27+
public final class ServiceCookieJar implements CookieJar {
3228
private JavaNetCookieJar adapter;
3329

3430
/**
35-
* Instantiates a new Watson cookie jar.
31+
* Instantiates a new ServiceCookieJar.
3632
*
3733
* @param cookieHandler the cookie handler
3834
*/
39-
public WatsonCookieJar(CookieHandler cookieHandler) {
35+
public ServiceCookieJar(CookieHandler cookieHandler) {
4036
this.adapter = new JavaNetCookieJar(cookieHandler);
4137
}
4238

@@ -58,19 +54,7 @@ public void saveFromResponse(HttpUrl url, List<Cookie> cookies) {
5854
*/
5955
@Override
6056
public List<Cookie> loadForRequest(HttpUrl url) {
61-
List<Cookie> cookies = this.adapter.loadForRequest(url);
62-
63-
// TODO: Removes the SESSIONID for speech to text session lest requests
64-
if (url.encodedPathSegments().contains(SPEECH_TO_TEXT) && !url.encodedPathSegments().contains(SESSIONS)) {
65-
List<Cookie> sessionLessCookies = new ArrayList<Cookie>();
66-
for (Cookie cookie : cookies) {
67-
if (!cookie.name().equalsIgnoreCase(SESSIONID)) {
68-
sessionLessCookies.add(cookie);
69-
}
70-
}
71-
cookies = sessionLessCookies;
72-
}
73-
return cookies;
57+
return this.adapter.loadForRequest(url);
7458
}
7559

7660
}

src/main/java/com/ibm/cloud/sdk/core/service/WatsonService.java renamed to src/main/java/com/ibm/cloud/sdk/core/service/BaseService.java

Lines changed: 7 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,7 @@
1515
import com.ibm.cloud.sdk.core.http.HttpClientSingleton;
1616
import com.ibm.cloud.sdk.core.http.HttpConfigOptions;
1717
import com.ibm.cloud.sdk.core.http.HttpHeaders;
18-
import com.ibm.cloud.sdk.core.http.HttpMediaType;
1918
import com.ibm.cloud.sdk.core.http.HttpStatus;
20-
import com.ibm.cloud.sdk.core.http.RequestBuilder;
2119
import com.ibm.cloud.sdk.core.http.ResponseConverter;
2220
import com.ibm.cloud.sdk.core.http.ServiceCall;
2321
import com.ibm.cloud.sdk.core.http.ServiceCallback;
@@ -37,13 +35,11 @@
3735
import com.ibm.cloud.sdk.core.service.security.IamTokenManager;
3836
import com.ibm.cloud.sdk.core.util.CredentialUtils;
3937
import com.ibm.cloud.sdk.core.util.RequestUtils;
40-
import com.ibm.cloud.sdk.core.util.ResponseConverterUtils;
4138
import jersey.repackaged.jsr166e.CompletableFuture;
4239
import okhttp3.Call;
4340
import okhttp3.Callback;
4441
import okhttp3.Credentials;
4542
import okhttp3.Headers;
46-
import okhttp3.HttpUrl;
4743
import okhttp3.OkHttpClient;
4844
import okhttp3.Request;
4945
import okhttp3.Request.Builder;
@@ -55,24 +51,15 @@
5551
import java.util.regex.Pattern;
5652

5753
/**
58-
* Watson service abstract common functionality of various Watson Services. It handle authentication and default url.
59-
*
60-
* @see <a href="http://www.ibm.com/watson/developercloud/"> IBM Watson Developer Cloud</a>
54+
* Abstracts common functionality of various IBM Cloud services.
6155
*/
62-
public abstract class WatsonService {
56+
public abstract class BaseService {
6357

64-
private static final String URL = "url";
65-
private static final String PATH_AUTHORIZATION_V1_TOKEN = "/v1/token";
66-
private static final String AUTHORIZATION = "authorization";
6758
private static final String BASIC = "Basic ";
6859
private static final String BEARER = "Bearer ";
6960
private static final String APIKEY_AS_USERNAME = "apikey";
7061
private static final String ICP_PREFIX = "icp-";
71-
private static final Logger LOG = Logger.getLogger(WatsonService.class.getName());
72-
private static final String AUTH_HEADER_DEPRECATION_MESSAGE = "Authenticating with the X-Watson-Authorization-Token"
73-
+ "header is deprecated. The token continues to work with Cloud Foundry services, but is not supported for "
74-
+ "services that use Identity and Access Management (IAM) authentication. For details see the IAM "
75-
+ "authentication section in the README.";
62+
private static final Logger LOG = Logger.getLogger(BaseService.class.getName());
7663
private String apiKey;
7764
private String username;
7865
private String password;
@@ -84,17 +71,10 @@ public abstract class WatsonService {
8471
private OkHttpClient client;
8572

8673
/** The default headers. */
87-
protected Headers defaultHeaders = null;
74+
private Headers defaultHeaders = null;
8875

8976
/** The skip authentication. */
90-
protected boolean skipAuthentication = false;
91-
92-
/** The Constant MESSAGE_CODE. */
93-
protected static final String MESSAGE_CODE = "code";
94-
95-
96-
/** The Constant VERSION. */
97-
protected static final String VERSION = "version";
77+
private boolean skipAuthentication = false;
9878

9979

10080
// Regular expression for JSON-related mimetypes.
@@ -104,11 +84,11 @@ public abstract class WatsonService {
10484
Pattern.compile("(?i)application\\/json\\-patch\\+json(;.*)?");
10585

10686
/**
107-
* Instantiates a new Watson service.
87+
* Instantiates a new IBM Cloud service.
10888
*
10989
* @param name the service name
11090
*/
111-
public WatsonService(final String name) {
91+
public BaseService(final String name) {
11292
this.name = name;
11393

11494
// file credentials take precedence
@@ -280,23 +260,6 @@ public String getEndPoint() {
280260
return endPoint;
281261
}
282262

283-
/**
284-
* Gets an authorization token that can be use to authorize API calls.
285-
*
286-
*
287-
* @return the token
288-
*/
289-
public ServiceCall<String> getToken() {
290-
HttpUrl url = HttpUrl.parse(getEndPoint()).newBuilder()
291-
.setPathSegment(0, AUTHORIZATION)
292-
.addPathSegment(PATH_AUTHORIZATION_V1_TOKEN)
293-
.build();
294-
Request request = RequestBuilder.get(url)
295-
.header(HttpHeaders.ACCEPT, HttpMediaType.TEXT_PLAIN).query(URL, getEndPoint()).build();
296-
297-
return createServiceCall(request, ResponseConverterUtils.getString());
298-
}
299-
300263
/**
301264
* Checks the status of the tokenManager.
302265
*
@@ -343,10 +306,6 @@ protected void setAuthentication(final Builder builder) {
343306
builder.addHeader(HttpHeaders.AUTHORIZATION, BEARER + accessToken);
344307
} else if (getApiKey() == null) {
345308
if (skipAuthentication) {
346-
Headers currentHeaders = builder.build().headers();
347-
if (currentHeaders.get(HttpHeaders.X_WATSON_AUTHORIZATION_TOKEN) != null) {
348-
LOG.warning(AUTH_HEADER_DEPRECATION_MESSAGE);
349-
}
350309
return;
351310
}
352311
throw new IllegalArgumentException("apiKey or username and password were not specified");

src/main/java/com/ibm/cloud/sdk/core/service/exception/package-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
*/
1313

1414
/**
15-
* This package contains a collection of runtime exceptions thrown by the Watson services.
15+
* This package contains a collection of runtime exceptions thrown by IBM Cloud services.
1616
*/
1717
package com.ibm.cloud.sdk.core.service.exception;
1818

0 commit comments

Comments
 (0)