Skip to content

Commit 82c2fb9

Browse files
authored
Merge pull request #1043 from watson-developer-cloud/common-class
Add common project
2 parents 1fe7a2a + 5802ab6 commit 82c2fb9

File tree

17 files changed

+143
-23
lines changed

17 files changed

+143
-23
lines changed

assistant/build.gradle

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,9 @@ checkstyle {
5555
}
5656

5757
dependencies {
58-
compile 'com.ibm.cloud:sdk-core:1.2.1'
59-
testCompile group: 'com.ibm.cloud', name:'sdk-core', version: '1.2.1', classifier: 'tests'
58+
compile project(':common')
59+
compile 'com.ibm.cloud:sdk-core:1.2.2'
60+
testCompile group: 'com.ibm.cloud', name:'sdk-core', version: '1.2.2', classifier: 'tests'
6061
signature 'org.codehaus.mojo.signature:java17:1.0@signature'
6162
}
6263

common/build.gradle

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import org.apache.tools.ant.filters.*
2+
3+
apply plugin: 'checkstyle'
4+
apply plugin: 'java'
5+
6+
checkstyle {
7+
configFile = rootProject.file('checkstyle.xml')
8+
ignoreFailures = false
9+
}
10+
11+
repositories {
12+
mavenCentral()
13+
}
14+
15+
dependencies {
16+
compile 'com.ibm.cloud:sdk-core:1.2.2'
17+
testCompile group: 'com.ibm.cloud', name:'sdk-core', version: '1.2.2', classifier: 'tests'
18+
}
19+
20+
processResources {
21+
filter ReplaceTokens, tokens: ["pom.version": project.version]
22+
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package com.ibm.watson.common;
2+
3+
import com.ibm.cloud.sdk.core.http.HttpHeaders;
4+
import com.ibm.cloud.sdk.core.util.RequestUtils;
5+
6+
import java.io.InputStream;
7+
import java.util.HashMap;
8+
import java.util.Map;
9+
import java.util.Properties;
10+
import java.util.logging.Level;
11+
import java.util.logging.Logger;
12+
13+
public class SdkCommon {
14+
private static final Logger LOG = Logger.getLogger(SdkCommon.class.getName());
15+
private static String userAgent;
16+
17+
private SdkCommon() { }
18+
19+
private static String loadSdkVersion() {
20+
ClassLoader classLoader = SdkCommon.class.getClassLoader();
21+
InputStream inputStream = classLoader.getResourceAsStream("java-sdk-version.properties");
22+
Properties properties = new Properties();
23+
24+
try {
25+
properties.load(inputStream);
26+
} catch (Exception e) {
27+
LOG.log(Level.WARNING, "Could not load java-sdk-version.properties", e);
28+
}
29+
30+
return properties.getProperty("version", "unknown-version");
31+
}
32+
33+
private static String getUserAgent() {
34+
if (userAgent == null) {
35+
userAgent = "watson-apis-java-sdk/" + loadSdkVersion() + "; " + RequestUtils.getUserAgent();
36+
}
37+
return userAgent;
38+
}
39+
40+
public static Map<String, String> getDefaultHeaders(String serviceName, String serviceVersion, String operationId) {
41+
Map<String, String> headers = new HashMap<>();
42+
43+
String sdkAnalyticsHeaderValue = String.format(
44+
"service_name=%s;service_version=%s;operation_id=%s",
45+
serviceName,
46+
serviceVersion,
47+
operationId
48+
);
49+
50+
headers.put(WatsonHttpHeaders.X_IBMCLOUD_SDK_ANALYTICS, sdkAnalyticsHeaderValue);
51+
headers.put(HttpHeaders.USER_AGENT, getUserAgent());
52+
return headers;
53+
}
54+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.ibm.watson.common;
2+
3+
public interface WatsonHttpHeaders {
4+
/** Header containing analytics info. */
5+
String X_IBMCLOUD_SDK_ANALYTICS = "X-IBMCloud-SDK-Analytics";
6+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.ibm.watson.common;
2+
3+
import com.ibm.cloud.sdk.core.http.HttpHeaders;
4+
import org.junit.Test;
5+
6+
import java.util.Map;
7+
8+
import static org.junit.Assert.assertTrue;
9+
10+
public class SdkCommonTest {
11+
@Test
12+
public void testGetDefaultHeaders() {
13+
String serviceName = "test_name";
14+
String serviceVersion = "v1";
15+
String operationId = "test_method";
16+
Map<String, String> defaultHeaders = SdkCommon.getDefaultHeaders(serviceName, serviceVersion, operationId);
17+
18+
assertTrue(defaultHeaders.containsKey(WatsonHttpHeaders.X_IBMCLOUD_SDK_ANALYTICS));
19+
String analyticsHeaderValue = defaultHeaders.get(WatsonHttpHeaders.X_IBMCLOUD_SDK_ANALYTICS);
20+
assertTrue(analyticsHeaderValue.contains(serviceName));
21+
assertTrue(analyticsHeaderValue.contains(serviceVersion));
22+
assertTrue(analyticsHeaderValue.contains(operationId));
23+
assertTrue(defaultHeaders.containsKey(HttpHeaders.USER_AGENT));
24+
assertTrue(defaultHeaders.get(HttpHeaders.USER_AGENT).startsWith("watson-apis-java-sdk/"));
25+
}
26+
}

compare-comply/build.gradle

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,9 @@ checkstyle {
5555
}
5656

5757
dependencies {
58-
compile 'com.ibm.cloud:sdk-core:1.2.1'
59-
testCompile group: 'com.ibm.cloud', name:'sdk-core', version: '1.2.1', classifier: 'tests'
58+
compile project(':common')
59+
compile 'com.ibm.cloud:sdk-core:1.2.2'
60+
testCompile group: 'com.ibm.cloud', name:'sdk-core', version: '1.2.2', classifier: 'tests'
6061
signature 'org.codehaus.mojo.signature:java17:1.0@signature'
6162
}
6263

discovery/build.gradle

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,9 @@ checkstyle {
5959
}
6060

6161
dependencies {
62-
compile 'com.ibm.cloud:sdk-core:1.2.1'
63-
testCompile group: 'com.ibm.cloud', name:'sdk-core', version: '1.2.1', classifier: 'tests'
62+
compile project(':common')
63+
compile 'com.ibm.cloud:sdk-core:1.2.2'
64+
testCompile group: 'com.ibm.cloud', name:'sdk-core', version: '1.2.2', classifier: 'tests'
6465
signature 'org.codehaus.mojo.signature:java17:1.0@signature'
6566
}
6667

language-translator/build.gradle

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,9 @@ checkstyle {
5555
}
5656

5757
dependencies {
58-
compile 'com.ibm.cloud:sdk-core:1.2.1'
59-
testCompile group: 'com.ibm.cloud', name:'sdk-core', version: '1.2.1', classifier: 'tests'
58+
compile project(':common')
59+
compile 'com.ibm.cloud:sdk-core:1.2.2'
60+
testCompile group: 'com.ibm.cloud', name:'sdk-core', version: '1.2.2', classifier: 'tests'
6061
signature 'org.codehaus.mojo.signature:java17:1.0@signature'
6162
}
6263

natural-language-classifier/build.gradle

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,9 @@ checkstyle {
5959
}
6060

6161
dependencies {
62-
compile 'com.ibm.cloud:sdk-core:1.2.1'
63-
testCompile group: 'com.ibm.cloud', name:'sdk-core', version: '1.2.1', classifier: 'tests'
62+
compile project(':common')
63+
compile 'com.ibm.cloud:sdk-core:1.2.2'
64+
testCompile group: 'com.ibm.cloud', name:'sdk-core', version: '1.2.2', classifier: 'tests'
6465
signature 'org.codehaus.mojo.signature:java17:1.0@signature'
6566
}
6667

natural-language-understanding/build.gradle

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,9 @@ checkstyle {
5555
}
5656

5757
dependencies {
58-
compile 'com.ibm.cloud:sdk-core:1.2.1'
59-
testCompile group: 'com.ibm.cloud', name:'sdk-core', version: '1.2.1', classifier: 'tests'
58+
compile project(':common')
59+
compile 'com.ibm.cloud:sdk-core:1.2.2'
60+
testCompile group: 'com.ibm.cloud', name:'sdk-core', version: '1.2.2', classifier: 'tests'
6061
signature 'org.codehaus.mojo.signature:java17:1.0@signature'
6162
}
6263

personality-insights/build.gradle

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,9 @@ checkstyle {
5555
}
5656

5757
dependencies {
58-
compile 'com.ibm.cloud:sdk-core:1.2.1'
59-
testCompile group: 'com.ibm.cloud', name:'sdk-core', version: '1.2.1', classifier: 'tests'
58+
compile project(':common')
59+
compile 'com.ibm.cloud:sdk-core:1.2.2'
60+
testCompile group: 'com.ibm.cloud', name:'sdk-core', version: '1.2.2', classifier: 'tests'
6061
signature 'org.codehaus.mojo.signature:java17:1.0@signature'
6162
}
6263

settings.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
rootProject.name = 'ibm-watson'
22
include ':assistant', ':compare-comply', ':discovery', ':language-translator', ':natural-language-classifier',
33
':natural-language-understanding', ':personality-insights', ':speech-to-text', ':text-to-speech',
4-
':tone-analyzer', ':visual-recognition', ':ibm-watson'
4+
':tone-analyzer', ':visual-recognition', ':ibm-watson', ':common'

speech-to-text/build.gradle

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,9 @@ checkstyle {
5959
}
6060

6161
dependencies {
62-
compile 'com.ibm.cloud:sdk-core:1.2.1'
63-
testCompile group: 'com.ibm.cloud', name:'sdk-core', version: '1.2.1', classifier: 'tests'
62+
compile project(':common')
63+
compile 'com.ibm.cloud:sdk-core:1.2.2'
64+
testCompile group: 'com.ibm.cloud', name:'sdk-core', version: '1.2.2', classifier: 'tests'
6465
signature 'org.codehaus.mojo.signature:java17:1.0@signature'
6566
}
6667

text-to-speech/build.gradle

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,9 @@ checkstyle {
5555
}
5656

5757
dependencies {
58-
compile 'com.ibm.cloud:sdk-core:1.2.1'
59-
testCompile group: 'com.ibm.cloud', name:'sdk-core', version: '1.2.1', classifier: 'tests'
58+
compile project(':common')
59+
compile 'com.ibm.cloud:sdk-core:1.2.2'
60+
testCompile group: 'com.ibm.cloud', name:'sdk-core', version: '1.2.2', classifier: 'tests'
6061
signature 'org.codehaus.mojo.signature:java17:1.0@signature'
6162
}
6263

tone-analyzer/build.gradle

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,9 @@ checkstyle {
5555
}
5656

5757
dependencies {
58-
compile 'com.ibm.cloud:sdk-core:1.2.1'
59-
testCompile group: 'com.ibm.cloud', name:'sdk-core', version: '1.2.1', classifier: 'tests'
58+
compile project(':common')
59+
compile 'com.ibm.cloud:sdk-core:1.2.2'
60+
testCompile group: 'com.ibm.cloud', name:'sdk-core', version: '1.2.2', classifier: 'tests'
6061
signature 'org.codehaus.mojo.signature:java17:1.0@signature'
6162
}
6263

visual-recognition/build.gradle

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,9 @@ checkstyle {
5959
}
6060

6161
dependencies {
62-
compile 'com.ibm.cloud:sdk-core:1.2.1'
63-
testCompile group: 'com.ibm.cloud', name:'sdk-core', version: '1.2.1', classifier: 'tests'
62+
compile project(':common')
63+
compile 'com.ibm.cloud:sdk-core:1.2.2'
64+
testCompile group: 'com.ibm.cloud', name:'sdk-core', version: '1.2.2', classifier: 'tests'
6465
signature 'org.codehaus.mojo.signature:java17:1.0@signature'
6566
}
6667

0 commit comments

Comments
 (0)