From ab2f41377fc18b5e5425c2001dd2e1a28886444e Mon Sep 17 00:00:00 2001 From: Tibor Dumitriu Date: Fri, 31 Mar 2017 14:23:48 -0400 Subject: [PATCH 01/19] :bug: create or update a document from an InputStream and optionally specify a filename Fixes #672 --- .../discovery/v1/Discovery.java | 1 - .../model/document/CreateDocumentRequest.java | 56 ++++++++ .../discovery/v1/DiscoveryServiceTest.java | 120 +++++++++++++++++- 3 files changed, 172 insertions(+), 5 deletions(-) diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/Discovery.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/Discovery.java index 14fad62e703..49dc89a21c8 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/Discovery.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/Discovery.java @@ -356,7 +356,6 @@ public ServiceCall createDocument(CreateDocumentRequest } Validator.notNull(createRequest.getFile(), "Document " + FILE + " cannot be null"); MediaType mediaType = supportedMediaTypes.get(createRequest.getMediaType()); - Validator.notNull(mediaType, String.format("Media Type '%s' not supported", createRequest.getMediaType())); RequestBody file = InputStreamRequestBody.create(mediaType, createRequest.getFile()); MultipartBody.Builder multipartBuilder = new MultipartBody.Builder(); multipartBuilder.setType(MultipartBody.FORM); diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/document/CreateDocumentRequest.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/document/CreateDocumentRequest.java index 14501086f30..cb9b6843cae 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/document/CreateDocumentRequest.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/document/CreateDocumentRequest.java @@ -31,6 +31,7 @@ public class CreateDocumentRequest extends GenericModel { private JsonObject metadata; private InputStream file; private String mediaType; + private String fileName; //TODO add configuration protected CreateDocumentRequest(Builder builder) { @@ -40,6 +41,7 @@ protected CreateDocumentRequest(Builder builder) { this.metadata = builder.metadata; this.file = builder.file; this.mediaType = builder.mediaType; + this.fileName = builder.fileName; } public String getEnvironmentId() { @@ -66,6 +68,10 @@ public String getMediaType() { return mediaType; } + public String getFileName() { + return fileName; + } + public static class Builder { private final String environmentId; private final String collectionId; @@ -73,10 +79,12 @@ public static class Builder { private JsonObject metadata; private InputStream file; private String mediaType; + private String fileName; public Builder(String environmentId, String collectionId) { this.environmentId = environmentId; this.collectionId = collectionId; + this.fileName = this.fileName == null || this.fileName.isEmpty() ? "file_name_not_provided" : this.fileName; } public Builder configurationId(String configurationId) { @@ -89,17 +97,65 @@ public Builder metadata(JsonObject metadata) { return this; } + /** + * @deprecated + * Use instead file(InputStream content, String mediaType) + * + * @param file An input stream of bytes + * @param mediaType The media type + * @return A document builder + */ + @Deprecated public Builder inputStream(InputStream file, String mediaType) { this.file = file; this.mediaType = mediaType; return this; } + public Builder file(InputStream content) { + this.file = content; + return this; + } + + public Builder file(InputStream content, String mediaType) { + this.file = content; + this.mediaType = mediaType; + return this; + } + + /** + * Create a document builder with an input stream, file name, and media type. + * + * @param content An input stream of bytes + * @param fileName The file name + * @param mediaType The media type. If the media type is unknown then use null or empty string. + * @return A document builder + */ + public Builder file(InputStream content, String fileName, String mediaType) { + this.file = content; + this.mediaType = mediaType; + this.fileName = fileName; + return this; + } + public Builder file(File inputFile, String mediaType) { InputStream file; try { file = new FileInputStream(inputFile); this.mediaType = mediaType; + this.fileName = inputFile.getName(); + } catch (FileNotFoundException e) { + file = null; + } + this.file = file; + return this; + } + + public Builder file(File inputFile) { + InputStream file; + try { + file = new FileInputStream(inputFile); + this.fileName = inputFile.getName(); } catch (FileNotFoundException e) { file = null; } diff --git a/discovery/src/test/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryServiceTest.java b/discovery/src/test/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryServiceTest.java index fe7f3461057..7020cfc6e4b 100644 --- a/discovery/src/test/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryServiceTest.java +++ b/discovery/src/test/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryServiceTest.java @@ -73,10 +73,7 @@ import static org.junit.Assert.assertEquals; -import java.io.ByteArrayInputStream; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.InputStream; +import java.io.*; import java.util.HashSet; import java.util.Set; @@ -440,6 +437,121 @@ public void createDocumentIsSuccessful() throws InterruptedException { assertEquals(createDocResp, response); } + @Test + public void createDocumentFromInputStreamIsSuccessful() throws InterruptedException { + server.enqueue(jsonResponse(createDocResp)); + String myDocumentJson = "{\"field\":\"value\"}"; + JsonObject myMetadata = new JsonObject(); + myMetadata.add("foo", new JsonPrimitive("bar")); + InputStream documentStream = new ByteArrayInputStream(myDocumentJson.getBytes()); + + CreateDocumentRequest.Builder builder = new CreateDocumentRequest.Builder(environmentId, collectionId); + builder.file(documentStream); + builder.metadata(myMetadata); + CreateDocumentResponse response = discoveryService.createDocument(builder.build()).execute(); + RecordedRequest request = server.takeRequest(); + + assertEquals(DOCS1_PATH, request.getPath()); + assertEquals(POST, request.getMethod()); + assertEquals(createDocResp, response); + } + + @Test + public void createDocumentFromInputStreamWithMediaTypeIsSuccessful() throws InterruptedException { + server.enqueue(jsonResponse(createDocResp)); + String myDocumentJson = "{\"field\":\"value\"}"; + JsonObject myMetadata = new JsonObject(); + myMetadata.add("foo", new JsonPrimitive("bar")); + InputStream documentStream = new ByteArrayInputStream(myDocumentJson.getBytes()); + + CreateDocumentRequest.Builder builder = new CreateDocumentRequest.Builder(environmentId, collectionId); + builder.file(documentStream, HttpMediaType.APPLICATION_JSON); + builder.metadata(myMetadata); + CreateDocumentResponse response = discoveryService.createDocument(builder.build()).execute(); + RecordedRequest request = server.takeRequest(); + + assertEquals(DOCS1_PATH, request.getPath()); + assertEquals(POST, request.getMethod()); + assertEquals(createDocResp, response); + } + + @Test + public void createDocumentFromInputStreamWithFileNameAndMediaTypeIsSuccessful() throws InterruptedException { + server.enqueue(jsonResponse(createDocResp)); + String fileName = "MyFileName"; + String myDocumentJson = "{\"field\":\"value\"}"; + JsonObject myMetadata = new JsonObject(); + myMetadata.add("foo", new JsonPrimitive("bar")); + InputStream documentStream = new ByteArrayInputStream(myDocumentJson.getBytes()); + + CreateDocumentRequest.Builder builder = new CreateDocumentRequest.Builder(environmentId, collectionId); + builder.file(documentStream, fileName, HttpMediaType.APPLICATION_JSON); + builder.metadata(myMetadata); + CreateDocumentResponse response = discoveryService.createDocument(builder.build()).execute(); + RecordedRequest request = server.takeRequest(); + + assertEquals(DOCS1_PATH, request.getPath()); + assertEquals(POST, request.getMethod()); + assertEquals(createDocResp, response); + } + + @Test + public void createDocumentFromFileWithMediaTypeIsSuccessful() throws InterruptedException { + server.enqueue(jsonResponse(createDocResp)); + String myDocumentJson = "{\"field\":\"value\"}"; + JsonObject myMetadata = new JsonObject(); + myMetadata.add("foo", new JsonPrimitive("bar")); + + CreateDocumentRequest.Builder builder = new CreateDocumentRequest.Builder(environmentId, collectionId); + + try { + File tempFile = File.createTempFile("CreateDocTest1", ".json"); + tempFile.deleteOnExit(); + BufferedWriter out = new BufferedWriter(new FileWriter(tempFile)); + out.write(myDocumentJson); + out.close(); + + builder.file(tempFile, HttpMediaType.APPLICATION_JSON); + builder.metadata(myMetadata); + CreateDocumentResponse response = discoveryService.createDocument(builder.build()).execute(); + RecordedRequest request = server.takeRequest(); + + assertEquals(DOCS1_PATH, request.getPath()); + assertEquals(POST, request.getMethod()); + assertEquals(createDocResp, response); + } catch (final IOException e) { + e.printStackTrace(); + } + } + + @Test + public void createDocumentFromFileIsSuccessful() throws InterruptedException { + server.enqueue(jsonResponse(createDocResp)); + String myDocumentJson = "{\"field\":\"value\"}"; + JsonObject myMetadata = new JsonObject(); + myMetadata.add("foo", new JsonPrimitive("bar")); + + CreateDocumentRequest.Builder builder = new CreateDocumentRequest.Builder(environmentId, collectionId); + try { + File tempFile = File.createTempFile("CreateDocTest2", ".json"); + tempFile.deleteOnExit(); + BufferedWriter out = new BufferedWriter(new FileWriter(tempFile)); + out.write(myDocumentJson); + out.close(); + + builder.file(tempFile); + builder.metadata(myMetadata); + CreateDocumentResponse response = discoveryService.createDocument(builder.build()).execute(); + RecordedRequest request = server.takeRequest(); + + assertEquals(DOCS1_PATH, request.getPath()); + assertEquals(POST, request.getMethod()); + assertEquals(createDocResp, response); + } catch (final IOException e) { + e.printStackTrace(); + } + } + @Test public void updateDocumentIsSuccessful() throws InterruptedException { server.enqueue(jsonResponse(updateDocResp)); From f0aac33db6d9ad3bbdc7bde623605c3458513483 Mon Sep 17 00:00:00 2001 From: Blake Ball Date: Tue, 4 Apr 2017 10:49:55 -0500 Subject: [PATCH 02/19] Checkstyle Fail build if checkstyle fails (#636) * :bug: fix checkstyle ignore failure * :bug: test that checkstyle fails build * :bug: test that checkstyle fails build * :bug: checkstyle ignoreFailure false * :bug: checkstyle block * :bug: add more specific checkstyle blocks * :bug: checkstyle added to travis * :bug: checkstyle fix trailing space * :bug: checkstyle fixes --- .travis.yml | 2 ++ alchemy/build.gradle | 1 + build.gradle | 19 ++++++++++++++++++- conversation/build.gradle | 1 + core/build.gradle | 5 +---- .../service/WatsonService.java | 2 +- .../watson/developer_cloud/util/WaitFor.java | 4 +++- dialog/build.gradle | 4 +--- discovery/build.gradle | 4 ++-- .../discovery/v1/DiscoveryServiceTest.java | 9 ++++++++- document-conversion/build.gradle | 1 + java-sdk/build.gradle | 4 ++-- language-translation/build.gradle | 1 + language-translator/build.gradle | 1 + natural-language-classifier/build.gradle | 4 ++-- natural-language-understanding/build.gradle | 1 + personality-insights/build.gradle | 1 + retrieve-and-rank/build.gradle | 1 + speech-to-text/build.gradle | 5 +++++ text-to-speech/build.gradle | 1 + tone-analyzer/build.gradle | 1 + tradeoff-analytics/build.gradle | 1 + visual-recognition/build.gradle | 4 ++-- 23 files changed, 58 insertions(+), 19 deletions(-) diff --git a/.travis.yml b/.travis.yml index 215d2572edb..1769051582c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -34,6 +34,8 @@ script: - ./gradlew test - ./gradlew codeCoverageReport - ./gradlew docs > /dev/null # build the javadoc + - ./gradlew checkstyleMain + - ./gradlew checkstyleTest after_success: - bash <(curl -s https://codecov.io/bash) diff --git a/alchemy/build.gradle b/alchemy/build.gradle index c359a9fb9a8..79388f8f6eb 100644 --- a/alchemy/build.gradle +++ b/alchemy/build.gradle @@ -51,6 +51,7 @@ signArchives { checkstyle { configFile = rootProject.file('checkstyle.xml') + ignoreFailures = false } dependencies { diff --git a/build.gradle b/build.gradle index 278ed990bb1..bff5f8770b9 100644 --- a/build.gradle +++ b/build.gradle @@ -17,6 +17,19 @@ javadoc { source = 'src/main/java' } +checkstyle { + ignoreFailures = false +} + +checkstyleMain { + ignoreFailures = false +} + +checkstyleTest { + ignoreFailures = false +} + + task docs(type: Javadoc) { destinationDir = file("$buildDir/docs/all") } @@ -45,8 +58,12 @@ allprojects { subprojects { + checkstyleMain { + ignoreFailures = false + } + checkstyleTest { - ignoreFailures = true + ignoreFailures = false } afterEvaluate { diff --git a/conversation/build.gradle b/conversation/build.gradle index 6ae2f4f4e6a..8144c7cc135 100644 --- a/conversation/build.gradle +++ b/conversation/build.gradle @@ -51,6 +51,7 @@ signArchives { checkstyle { configFile = rootProject.file('checkstyle.xml') + ignoreFailures = false } dependencies { diff --git a/core/build.gradle b/core/build.gradle index e0cce6588b2..d3603ea02f5 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -49,13 +49,10 @@ signArchives { } } -checkstyleTest { - ignoreFailures = true -} checkstyle { configFile = rootProject.file('checkstyle.xml') - ignoreFailures = true + ignoreFailures = false } task testJar(type: Jar) { diff --git a/core/src/main/java/com/ibm/watson/developer_cloud/service/WatsonService.java b/core/src/main/java/com/ibm/watson/developer_cloud/service/WatsonService.java index d1e7e302f21..a6063b671b4 100644 --- a/core/src/main/java/com/ibm/watson/developer_cloud/service/WatsonService.java +++ b/core/src/main/java/com/ibm/watson/developer_cloud/service/WatsonService.java @@ -134,7 +134,7 @@ protected OkHttpClient configureHttpClient() { .build(); builder.connectionSpecs(Arrays.asList(spec, ConnectionSpec.CLEARTEXT)); - + return builder.build(); } diff --git a/core/src/test/java/com/ibm/watson/developer_cloud/util/WaitFor.java b/core/src/test/java/com/ibm/watson/developer_cloud/util/WaitFor.java index b161c2ee557..4120bc59502 100644 --- a/core/src/test/java/com/ibm/watson/developer_cloud/util/WaitFor.java +++ b/core/src/test/java/com/ibm/watson/developer_cloud/util/WaitFor.java @@ -21,7 +21,9 @@ public class WaitFor { - private WaitFor() {} + private WaitFor() { + + } /** * Static method used to wait for a specific condition to be satisfied. diff --git a/dialog/build.gradle b/dialog/build.gradle index 05d7944b9da..89fb4be4299 100644 --- a/dialog/build.gradle +++ b/dialog/build.gradle @@ -49,11 +49,9 @@ signArchives { } } -checkstyleTest { - ignoreFailures = true -} checkstyle { configFile = rootProject.file('checkstyle.xml') + ignoreFailures = false } task testJar(type: Jar) { diff --git a/discovery/build.gradle b/discovery/build.gradle index c8f2e26897d..7a7e1f2fa50 100644 --- a/discovery/build.gradle +++ b/discovery/build.gradle @@ -50,12 +50,12 @@ signArchives { } checkstyleTest { - ignoreFailures = true + ignoreFailures = false } checkstyle { configFile = rootProject.file('checkstyle.xml') - ignoreFailures = true + ignoreFailures = false } dependencies { diff --git a/discovery/src/test/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryServiceTest.java b/discovery/src/test/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryServiceTest.java index 7020cfc6e4b..9b9a6b2a711 100644 --- a/discovery/src/test/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryServiceTest.java +++ b/discovery/src/test/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryServiceTest.java @@ -73,7 +73,14 @@ import static org.junit.Assert.assertEquals; -import java.io.*; +import java.io.FileReader; +import java.io.FileNotFoundException; +import java.io.InputStream; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.io.BufferedWriter; import java.util.HashSet; import java.util.Set; diff --git a/document-conversion/build.gradle b/document-conversion/build.gradle index bd73f24dc49..6a0f685688a 100644 --- a/document-conversion/build.gradle +++ b/document-conversion/build.gradle @@ -51,6 +51,7 @@ signArchives { checkstyle { configFile = rootProject.file('checkstyle.xml') + ignoreFailures = false } dependencies { diff --git a/java-sdk/build.gradle b/java-sdk/build.gradle index 1832b6dba4e..ea81fbae672 100644 --- a/java-sdk/build.gradle +++ b/java-sdk/build.gradle @@ -58,12 +58,12 @@ signArchives { } checkstyleTest { - ignoreFailures = true + ignoreFailures = false } checkstyle { configFile = rootProject.file('checkstyle.xml') - ignoreFailures = true + ignoreFailures = false } task testJar(type: Jar) { diff --git a/language-translation/build.gradle b/language-translation/build.gradle index fe5471c1bd0..90bea4844d4 100644 --- a/language-translation/build.gradle +++ b/language-translation/build.gradle @@ -51,6 +51,7 @@ signArchives { checkstyle { configFile = rootProject.file('checkstyle.xml') + ignoreFailures = false } dependencies { diff --git a/language-translator/build.gradle b/language-translator/build.gradle index e802c516ab0..364ba8e67fa 100644 --- a/language-translator/build.gradle +++ b/language-translator/build.gradle @@ -51,6 +51,7 @@ signArchives { checkstyle { configFile = rootProject.file('checkstyle.xml') + ignoreFailures = false } dependencies { diff --git a/natural-language-classifier/build.gradle b/natural-language-classifier/build.gradle index 8ea18151de4..317d94ae457 100644 --- a/natural-language-classifier/build.gradle +++ b/natural-language-classifier/build.gradle @@ -50,12 +50,12 @@ signArchives { } checkstyleTest { - ignoreFailures = true + ignoreFailures = false } checkstyle { configFile = rootProject.file('checkstyle.xml') - ignoreFailures = true + ignoreFailures = false } dependencies { diff --git a/natural-language-understanding/build.gradle b/natural-language-understanding/build.gradle index 4131fcd4723..7158f4f733d 100644 --- a/natural-language-understanding/build.gradle +++ b/natural-language-understanding/build.gradle @@ -51,6 +51,7 @@ signArchives { checkstyle { configFile = rootProject.file('checkstyle.xml') + ignoreFailures = false } dependencies { diff --git a/personality-insights/build.gradle b/personality-insights/build.gradle index ceaaa4581dd..01ee609fec7 100644 --- a/personality-insights/build.gradle +++ b/personality-insights/build.gradle @@ -51,6 +51,7 @@ signArchives { checkstyle { configFile = rootProject.file('checkstyle.xml') + ignoreFailures = false } dependencies { diff --git a/retrieve-and-rank/build.gradle b/retrieve-and-rank/build.gradle index bee1cb9be16..111a0dfb6aa 100644 --- a/retrieve-and-rank/build.gradle +++ b/retrieve-and-rank/build.gradle @@ -51,6 +51,7 @@ signArchives { checkstyle { configFile = rootProject.file('checkstyle.xml') + ignoreFailures = false } dependencies { diff --git a/speech-to-text/build.gradle b/speech-to-text/build.gradle index 52a1e240f0b..61e34327000 100644 --- a/speech-to-text/build.gradle +++ b/speech-to-text/build.gradle @@ -49,8 +49,13 @@ signArchives { } } +checkstyleTest { + ignoreFailures = false +} + checkstyle { configFile = rootProject.file('checkstyle.xml') + ignoreFailures = false } dependencies { diff --git a/text-to-speech/build.gradle b/text-to-speech/build.gradle index e40e914d0e9..605b3f13293 100644 --- a/text-to-speech/build.gradle +++ b/text-to-speech/build.gradle @@ -51,6 +51,7 @@ signArchives { checkstyle { configFile = rootProject.file('checkstyle.xml') + ignoreFailures = false } dependencies { diff --git a/tone-analyzer/build.gradle b/tone-analyzer/build.gradle index da0897a7adf..479060e5786 100644 --- a/tone-analyzer/build.gradle +++ b/tone-analyzer/build.gradle @@ -51,6 +51,7 @@ signArchives { checkstyle { configFile = rootProject.file('checkstyle.xml') + ignoreFailures = false } dependencies { diff --git a/tradeoff-analytics/build.gradle b/tradeoff-analytics/build.gradle index 34551041b75..52e6ff64f3b 100644 --- a/tradeoff-analytics/build.gradle +++ b/tradeoff-analytics/build.gradle @@ -51,6 +51,7 @@ signArchives { checkstyle { configFile = rootProject.file('checkstyle.xml') + ignoreFailures = false } dependencies { diff --git a/visual-recognition/build.gradle b/visual-recognition/build.gradle index 1be13ac38a5..da3e28a4b8b 100644 --- a/visual-recognition/build.gradle +++ b/visual-recognition/build.gradle @@ -50,12 +50,12 @@ signArchives { } checkstyleTest { - ignoreFailures = true + ignoreFailures = false } checkstyle { configFile = rootProject.file('checkstyle.xml') - ignoreFailures = true + ignoreFailures = false } dependencies { From 2aa52145c333d27e163aabb7bed4a2a4faf0a169 Mon Sep 17 00:00:00 2001 From: Blake Ball Date: Tue, 4 Apr 2017 16:12:07 -0500 Subject: [PATCH 03/19] revert merge conflict resolution --- .../developer_cloud/text_to_speech/v1/TextToSpeech.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/text-to-speech/src/main/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeech.java b/text-to-speech/src/main/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeech.java index 04588286b05..000558c936e 100755 --- a/text-to-speech/src/main/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeech.java +++ b/text-to-speech/src/main/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeech.java @@ -31,7 +31,6 @@ import com.ibm.watson.developer_cloud.text_to_speech.v1.model.Pronunciation; import com.ibm.watson.developer_cloud.text_to_speech.v1.model.Voice; import com.ibm.watson.developer_cloud.util.GsonSingleton; -import com.ibm.watson.developer_cloud.util.RequestUtils; import com.ibm.watson.developer_cloud.util.ResponseConverterUtils; import com.ibm.watson.developer_cloud.util.ResponseUtils; import com.ibm.watson.developer_cloud.util.Validator; @@ -216,10 +215,9 @@ public ServiceCall synthesize(final String text, final Voice voice, String customizationId) { Validator.isTrue((text != null) && !text.isEmpty(), "text cannot be null or empty"); Validator.isTrue(voice != null, "voice cannot be null or empty"); - String encodedText = RequestUtils.encode(text); final RequestBuilder request = RequestBuilder.get(PATH_SYNTHESIZE); - request.query(TEXT, encodedText); + request.query(TEXT, text); request.query(VOICE, voice.getName()); request.query(ACCEPT, audioFormat != null ? audioFormat : AudioFormat.WAV); From 19948d53f3ad93ac7241ba67fccac8d023bea63e Mon Sep 17 00:00:00 2001 From: Blake Ball Date: Tue, 4 Apr 2017 17:59:14 -0500 Subject: [PATCH 04/19] :bug: escape semicolon prior to sending to server --- .../watson/developer_cloud/text_to_speech/v1/TextToSpeech.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/text-to-speech/src/main/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeech.java b/text-to-speech/src/main/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeech.java index 000558c936e..6e09c54a9a7 100755 --- a/text-to-speech/src/main/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeech.java +++ b/text-to-speech/src/main/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeech.java @@ -216,8 +216,9 @@ public ServiceCall synthesize(final String text, final Voice voice, Validator.isTrue((text != null) && !text.isEmpty(), "text cannot be null or empty"); Validator.isTrue(voice != null, "voice cannot be null or empty"); + String modifiedText = text.replace(";", "%3B"); final RequestBuilder request = RequestBuilder.get(PATH_SYNTHESIZE); - request.query(TEXT, text); + request.query(TEXT, modifiedText); request.query(VOICE, voice.getName()); request.query(ACCEPT, audioFormat != null ? audioFormat : AudioFormat.WAV); From d581c3f5a632287730b915867605965181188c98 Mon Sep 17 00:00:00 2001 From: Tibor Dumitriu Date: Wed, 5 Apr 2017 14:42:53 -0400 Subject: [PATCH 05/19] :new: Provide a specific document Id when creating a document --- .../discovery/v1/Discovery.java | 16 ++++++++-- .../model/document/CreateDocumentRequest.java | 12 ++++++++ .../discovery/v1/DiscoveryServiceTest.java | 29 +++++++++++++++++++ 3 files changed, 54 insertions(+), 3 deletions(-) diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/Discovery.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/Discovery.java index 49dc89a21c8..59088494bd8 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/Discovery.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/Discovery.java @@ -348,9 +348,19 @@ public ServiceCall getDocument(GetDocumentRequest getReques public ServiceCall createDocument(CreateDocumentRequest createRequest) { Validator.notEmpty(createRequest.getEnvironmentId(), EnvironmentManager.ID + " cannot be empty"); Validator.notEmpty(createRequest.getCollectionId(), CollectionManager.ID + " cannot be empty"); - RequestBuilder builder = RequestBuilder - .post(String - .format(PATH_DOCUMENTS, createRequest.getEnvironmentId(), createRequest.getCollectionId())); + + String pathElements; + if (createRequest.getDocumentId() == null) { + pathElements = String.format(PATH_DOCUMENTS, createRequest.getEnvironmentId(), + createRequest.getCollectionId()); + } else { + Validator.notEmpty(createRequest.getDocumentId(), DocumentManager.ID + " cannot be empty"); + pathElements = String.format(PATH_DOCUMENT, createRequest.getEnvironmentId(), + createRequest.getCollectionId(), createRequest.getDocumentId()); + } + + RequestBuilder builder = RequestBuilder.post(pathElements); + if (createRequest.getConfigurationId() != null) { builder.query(CollectionManager.CONFIGURATION_ID, createRequest.getConfigurationId()); } diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/document/CreateDocumentRequest.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/document/CreateDocumentRequest.java index cb9b6843cae..e5d03ec7ae7 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/document/CreateDocumentRequest.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/document/CreateDocumentRequest.java @@ -28,6 +28,7 @@ public class CreateDocumentRequest extends GenericModel { private final String environmentId; private final String collectionId; private String configurationId; + private String documentId; private JsonObject metadata; private InputStream file; private String mediaType; @@ -38,6 +39,7 @@ protected CreateDocumentRequest(Builder builder) { this.environmentId = builder.environmentId; this.collectionId = builder.collectionId; this.configurationId = builder.configurationId; + this.documentId = builder.documentId; this.metadata = builder.metadata; this.file = builder.file; this.mediaType = builder.mediaType; @@ -52,6 +54,10 @@ public String getCollectionId() { return collectionId; } + public String getDocumentId() { + return documentId; + } + public String getConfigurationId() { return configurationId; } @@ -76,6 +82,7 @@ public static class Builder { private final String environmentId; private final String collectionId; private String configurationId; + private String documentId; private JsonObject metadata; private InputStream file; private String mediaType; @@ -87,6 +94,11 @@ public Builder(String environmentId, String collectionId) { this.fileName = this.fileName == null || this.fileName.isEmpty() ? "file_name_not_provided" : this.fileName; } + public Builder documentId(String documentId) { + this.documentId = documentId; + return this; + } + public Builder configurationId(String configurationId) { this.configurationId = configurationId; return this; diff --git a/discovery/src/test/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryServiceTest.java b/discovery/src/test/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryServiceTest.java index 9b9a6b2a711..1a381b54736 100644 --- a/discovery/src/test/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryServiceTest.java +++ b/discovery/src/test/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryServiceTest.java @@ -559,6 +559,35 @@ public void createDocumentFromFileIsSuccessful() throws InterruptedException { } } + @Test + public void createDocumentFromFileWithGivenIdIsSuccessful() throws InterruptedException { + server.enqueue(jsonResponse(createDocResp)); + String myDocumentJson = "{\"field\":\"value\"}"; + JsonObject myMetadata = new JsonObject(); + myMetadata.add("foo", new JsonPrimitive("bar")); + + CreateDocumentRequest.Builder builder = new CreateDocumentRequest.Builder(environmentId, collectionId); + try { + File tempFile = File.createTempFile("CreateDocTest3", ".json"); + tempFile.deleteOnExit(); + BufferedWriter out = new BufferedWriter(new FileWriter(tempFile)); + out.write(myDocumentJson); + out.close(); + + builder.file(tempFile); + builder.metadata(myMetadata); + builder.documentId(documentId); + CreateDocumentResponse response = discoveryService.createDocument(builder.build()).execute(); + RecordedRequest request = server.takeRequest(); + + assertEquals(DOCS2_PATH, request.getPath()); + assertEquals(POST, request.getMethod()); + assertEquals(createDocResp, response); + } catch (final IOException e) { + e.printStackTrace(); + } + } + @Test public void updateDocumentIsSuccessful() throws InterruptedException { server.enqueue(jsonResponse(updateDocResp)); From 8acb4112dd5c5fb3184c179d55299464f6e158bf Mon Sep 17 00:00:00 2001 From: Mike Kistler Date: Wed, 5 Apr 2017 21:32:39 -0500 Subject: [PATCH 06/19] NLU: Add model for disambiguation and property in EntitiesResults --- .../v1/model/DisambiguationResult.java | 85 +++++++++++++++++++ .../v1/model/EntitiesResult.java | 23 ++++- 2 files changed, 106 insertions(+), 2 deletions(-) create mode 100644 natural-language-understanding/src/main/java/com/ibm/watson/developer_cloud/natural_language_understanding/v1/model/DisambiguationResult.java diff --git a/natural-language-understanding/src/main/java/com/ibm/watson/developer_cloud/natural_language_understanding/v1/model/DisambiguationResult.java b/natural-language-understanding/src/main/java/com/ibm/watson/developer_cloud/natural_language_understanding/v1/model/DisambiguationResult.java new file mode 100644 index 00000000000..a0ca461b172 --- /dev/null +++ b/natural-language-understanding/src/main/java/com/ibm/watson/developer_cloud/natural_language_understanding/v1/model/DisambiguationResult.java @@ -0,0 +1,85 @@ +/* + * Copyright 2017 IBM Corp. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ +package com.ibm.watson.developer_cloud.natural_language_understanding.v1.model; + +import java.util.List; + +import com.google.gson.annotations.SerializedName; +import com.ibm.watson.developer_cloud.service.model.GenericModel; + +/** + * Disambiguation information for the entity. + */ +public class DisambiguationResult extends GenericModel { + + /** Common entity name. */ + private String name; + @SerializedName("dbpedia_resource") + private String dbpediaResource; + /** Entity subtype information. */ + private List subtype; + + /** + * Gets the name. + * + * @return the name + */ + public String getName() { + return name; + } + + /** + * Gets the dbpediaResource. + * + * @return the dbpediaResource + */ + public String getDbpediaResource() { + return dbpediaResource; + } + + /** + * Gets the subtype. + * + * @return the subtype + */ + public List getSubtype() { + return subtype; + } + + /** + * Sets the name. + * + * @param name the new name + */ + public void setName(final String name) { + this.name = name; + } + + /** + * Sets the dbpediaResource. + * + * @param dbpediaResource the new dbpediaResource + */ + public void setDbpediaResource(final String dbpediaResource) { + this.dbpediaResource = dbpediaResource; + } + + /** + * Sets the subtype. + * + * @param subtype the new subtype + */ + public void setSubtype(final List subtype) { + this.subtype = subtype; + } +} diff --git a/natural-language-understanding/src/main/java/com/ibm/watson/developer_cloud/natural_language_understanding/v1/model/EntitiesResult.java b/natural-language-understanding/src/main/java/com/ibm/watson/developer_cloud/natural_language_understanding/v1/model/EntitiesResult.java index 5a4aedb962b..2943d04b987 100644 --- a/natural-language-understanding/src/main/java/com/ibm/watson/developer_cloud/natural_language_understanding/v1/model/EntitiesResult.java +++ b/natural-language-understanding/src/main/java/com/ibm/watson/developer_cloud/natural_language_understanding/v1/model/EntitiesResult.java @@ -27,10 +27,12 @@ public class EntitiesResult extends GenericModel { private Integer count; /** The name of the entity. */ private String text; - /** Emotion analysis results for the entity, enabled with the \"emotion\" option. */ + /** Emotion analysis results for the entity, enabled with the "emotion" option. */ private EmotionScores emotion; - /** Sentiment analysis results for the entity, enabled with the \"sentiment\" option. */ + /** Sentiment analysis results for the entity, enabled with the "sentiment" option. */ private FeatureSentimentResults sentiment; + /** Disambiguation information for the entity. */ + private DisambiguationResult disambiguation; /** * Gets the type. @@ -86,6 +88,15 @@ public FeatureSentimentResults getSentiment() { return sentiment; } + /** + * Gets the disambiguation. + * + * @return the disambiguation + */ + public DisambiguationResult getDisambiguation() { + return disambiguation; + } + /** * Sets the type. * @@ -140,4 +151,12 @@ public void setSentiment(final FeatureSentimentResults sentiment) { this.sentiment = sentiment; } + /** + * Sets the disambiguation. + * + * @param disambiguation the new disambiguation + */ + public void setDisambiguation(final DisambiguationResult disambiguation) { + this.disambiguation = disambiguation; + } } From 9328c5f9f06e9f5c873dec57a069a9dc66423c04 Mon Sep 17 00:00:00 2001 From: Mike Kistler Date: Thu, 6 Apr 2017 09:15:33 -0500 Subject: [PATCH 07/19] Add test for disambiguation info --- .../v1/NaturalLanguageUnderstandingIT.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/natural-language-understanding/src/test/java/com/ibm/watson/developer_cloud/natural_language_understanding/v1/NaturalLanguageUnderstandingIT.java b/natural-language-understanding/src/test/java/com/ibm/watson/developer_cloud/natural_language_understanding/v1/NaturalLanguageUnderstandingIT.java index 85fc1d58f1c..213418121ba 100644 --- a/natural-language-understanding/src/test/java/com/ibm/watson/developer_cloud/natural_language_understanding/v1/NaturalLanguageUnderstandingIT.java +++ b/natural-language-understanding/src/test/java/com/ibm/watson/developer_cloud/natural_language_understanding/v1/NaturalLanguageUnderstandingIT.java @@ -495,4 +495,31 @@ public void analyzeTextForCategoriesIsSuccessful() throws Exception { assertNotNull(result.getScore()); } } + + /** + * Analyze html for disambiguation. + * + * @throws Exception the exception + */ + @Test + public void analyzeHtmlForDisambiguationIsSuccessful() throws Exception { + EntitiesOptions entities = new EntitiesOptions.Builder().sentiment(true).limit(1).build(); + Features features = new Features.Builder().entities(entities).build(); + AnalyzeOptions parameters = + new AnalyzeOptions.Builder().url("www.cnn.com").features(features).build(); + + AnalysisResults results = service.analyze(parameters).execute(); + + assertNotNull(results); + assertEquals(results.getLanguage(), "en"); + assertNotNull(results.getEntities()); + assertTrue(results.getEntities().size() == 1); + for (EntitiesResult result : results.getEntities()) { + assertNotNull(result.getDisambiguation()); + assertEquals(result.getDisambiguation().getName(),"CNN"); + assertEquals(result.getDisambiguation().getDbpediaResource(),"http://dbpedia.org/resource/CNN"); + assertNotNull(result.getDisambiguation().getSubtype()); + assertTrue(result.getDisambiguation().getSubtype().size() > 0); + } + } } From 4e53c8f3b87383831017445706de7c8598ec2b17 Mon Sep 17 00:00:00 2001 From: Mike Kistler Date: Thu, 6 Apr 2017 16:33:32 -0500 Subject: [PATCH 08/19] Add README.md for Natural Language Understanding --- natural-language-understanding/README.md | 33 ++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 natural-language-understanding/README.md diff --git a/natural-language-understanding/README.md b/natural-language-understanding/README.md new file mode 100644 index 00000000000..74977bac90d --- /dev/null +++ b/natural-language-understanding/README.md @@ -0,0 +1,33 @@ +# Natural Language Understanding + +## Installation + +##### Maven +```xml + + com.ibm.watson.developer_cloud + natural-language-understanding + 3.7.1 + +``` + +##### Gradle +```gradle +'com.ibm.watson.developer_cloud:natural-language-understanding:3.7.1' +``` + +## Usage +Use [Natural Language Understanding](http://www.ibm.com/watson/developercloud/doc/natural-language-understanding/index.html) +to analyze various features of text content at scale. Provide text, raw HTML, or a public URL, and IBM Watson Natural +Language Understanding will give you results for the features you request. The service cleans HTML content before +analysis by default, so the results can ignore most advertisements and other unwanted content. + +```java +NaturalLanguageUnderstanding service = new NaturalLanguageUnderstanding(); +service.setUsernameAndPassword("", ""); + +EntitiesOptions entities = new EntitiesOptions.Builder().sentiment(true).limit(1).build(); +Features features = new Features.Builder().entities(entities).build(); +AnalyzeOptions parameters = new AnalyzeOptions.Builder().url("www.cnn.com").features(features).build(); +AnalysisResults results = service.analyze(parameters).execute(); +``` From a4703491f2d16f935115dcbdb3fb426881a13e36 Mon Sep 17 00:00:00 2001 From: "Joshua B. Smith" Date: Fri, 7 Apr 2017 13:54:59 -0400 Subject: [PATCH 09/19] fix broken tts test --- .../developer_cloud/text_to_speech/v1/TextToSpeechTest.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechTest.java b/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechTest.java index 35210e7e3ba..e8826c98890 100644 --- a/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechTest.java +++ b/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechTest.java @@ -197,10 +197,11 @@ public void testSynthesize() throws IOException, InterruptedException { service.synthesize(text, Voice.EN_LISA, new AudioFormat(HttpMediaType.AUDIO_PCM + "; rate=16000")).execute(); final RecordedRequest request = server.takeRequest(); final HttpUrl requestUrl = HttpUrl.parse("http://www.example.com" + request.getPath()); - String encodedText = URLEncoder.encode(text, "UTF-8"); + String modifiedText = text.replace(";", "%3B"); + String encodedText = URLEncoder.encode(modifiedText, "UTF-8"); assertEquals(SYNTHESIZE_PATH, requestUrl.encodedPath()); - assertEquals(encodedText, requestUrl.queryParameter("text")); + assertEquals(modifiedText, requestUrl.queryParameter("text")); assertEquals(Voice.EN_LISA.getName(), requestUrl.queryParameter("voice")); assertEquals(HttpMediaType.AUDIO_PCM + "; rate=16000", requestUrl.queryParameter("accept")); assertNotNull(in); From 5d69e1d54feb512569ca88c49ac51956c056adfc Mon Sep 17 00:00:00 2001 From: "Joshua B. Smith" Date: Fri, 7 Apr 2017 13:58:05 -0400 Subject: [PATCH 10/19] remove unused variable --- .../developer_cloud/text_to_speech/v1/TextToSpeechTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechTest.java b/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechTest.java index e8826c98890..5cf4da53d4e 100644 --- a/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechTest.java +++ b/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechTest.java @@ -198,7 +198,6 @@ public void testSynthesize() throws IOException, InterruptedException { final RecordedRequest request = server.takeRequest(); final HttpUrl requestUrl = HttpUrl.parse("http://www.example.com" + request.getPath()); String modifiedText = text.replace(";", "%3B"); - String encodedText = URLEncoder.encode(modifiedText, "UTF-8"); assertEquals(SYNTHESIZE_PATH, requestUrl.encodedPath()); assertEquals(modifiedText, requestUrl.queryParameter("text")); From a95c68d65d56e81c45ef90c0f5867cbdfd3e8f47 Mon Sep 17 00:00:00 2001 From: German Attanasio Ruiz Date: Fri, 7 Apr 2017 14:33:06 -0400 Subject: [PATCH 11/19] :tshirt: fix checkstyle --- .../discovery/v1/DiscoveryServiceIT.java | 165 +++++++++--------- .../v1/NaturalLanguageUnderstandingIT.java | 4 +- 2 files changed, 85 insertions(+), 84 deletions(-) diff --git a/discovery/src/test/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryServiceIT.java b/discovery/src/test/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryServiceIT.java index 77fa3b20cdf..c0448b25b4c 100644 --- a/discovery/src/test/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryServiceIT.java +++ b/discovery/src/test/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryServiceIT.java @@ -13,6 +13,31 @@ package com.ibm.watson.developer_cloud.discovery.v1; +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + +import java.io.ByteArrayInputStream; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.UUID; +import java.util.concurrent.TimeUnit; + +import org.junit.After; +import org.junit.Assume; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Ignore; +import org.junit.Test; + import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; import com.ibm.watson.developer_cloud.WatsonServiceTest; @@ -73,30 +98,6 @@ import com.ibm.watson.developer_cloud.service.exception.UnauthorizedException; import com.ibm.watson.developer_cloud.util.GsonSingleton; import com.ibm.watson.developer_cloud.util.WaitFor; -import org.junit.After; -import org.junit.Assume; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Ignore; -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.assertArrayEquals; - -import java.io.ByteArrayInputStream; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.UUID; -import java.util.concurrent.TimeUnit; /** * Integration tests for {@link Discovery}. @@ -115,7 +116,7 @@ public class DiscoveryServiceIT extends WatsonServiceTest { @BeforeClass public static void setupClass() { - //get the properties + // get the properties DiscoveryServiceIT dummyTest = new DiscoveryServiceIT(); String username = dummyTest.getProperty("discovery.username"); String password = dummyTest.getProperty("discovery.password"); @@ -130,7 +131,7 @@ public static void setupClass() { GetEnvironmentsRequest getRequest = new GetEnvironmentsRequest.Builder().build(); GetEnvironmentsResponse getResponse = discovery.getEnvironments(getRequest).execute(); for (Environment environment : getResponse.getEnvironments()) { - //look for an existing environment that isn't read only + // look for an existing environment that isn't read only if (!environment.isReadOnly()) { environmentId = environment.getEnvironmentId(); break; @@ -138,11 +139,10 @@ public static void setupClass() { } if (environmentId == null) { - //no environment found, create a new one (assuming we are a FREE plan) + // no environment found, create a new one (assuming we are a FREE plan) String environmentName = "watson_developer_cloud_test_environment"; CreateEnvironmentRequest.Size size = CreateEnvironmentRequest.Size.FREE; - CreateEnvironmentRequest createRequest = new CreateEnvironmentRequest.Builder(environmentName, size) - .build(); + CreateEnvironmentRequest createRequest = new CreateEnvironmentRequest.Builder(environmentName, size).build(); CreateEnvironmentResponse createResponse = discovery.createEnvironment(createRequest).execute(); environmentId = createResponse.getEnvironmentId(); WaitFor.Condition environmentReady = new EnvironmentReady(discovery, environmentId); @@ -166,14 +166,13 @@ public void setup() throws Exception { @After public void cleanup() { for (String collectionId : collectionIds) { - DeleteCollectionRequest deleteRequest = new DeleteCollectionRequest.Builder(environmentId, collectionId) - .build(); + DeleteCollectionRequest deleteRequest = new DeleteCollectionRequest.Builder(environmentId, collectionId).build(); discovery.deleteCollection(deleteRequest).execute(); } for (String configurationId : configurationIds) { - DeleteConfigurationRequest deleteRequest = new DeleteConfigurationRequest.Builder(environmentId, - configurationId).build(); + DeleteConfigurationRequest deleteRequest = + new DeleteConfigurationRequest.Builder(environmentId, configurationId).build(); discovery.deleteConfiguration(deleteRequest).execute(); } } @@ -242,8 +241,8 @@ public void getEnvironmentsByNameIsSuccessful() { @Ignore("Only 1 BYOD environment allowed per service instance, so we cannot create more") public void createEnvironmentIsSuccessful() { String environmentName = uniqueName + "-environment"; - CreateEnvironmentRequest createRequest = new CreateEnvironmentRequest.Builder(environmentName, - CreateEnvironmentRequest.Size.FREE).build(); + CreateEnvironmentRequest createRequest = + new CreateEnvironmentRequest.Builder(environmentName, CreateEnvironmentRequest.Size.FREE).build(); CreateEnvironmentResponse createResponse = createEnvironment(createRequest); assertEquals(environmentName, createResponse.getName()); @@ -253,12 +252,12 @@ public void createEnvironmentIsSuccessful() { @Ignore("Only 1 BYOD environment allowed per service instance, so do not delete it") public void deleteEnvironmentIsSuccessful() { String environmentName = uniqueName + "-environment"; - CreateEnvironmentRequest createRequest = new CreateEnvironmentRequest.Builder(environmentName, - CreateEnvironmentRequest.Size.FREE).build(); + CreateEnvironmentRequest createRequest = + new CreateEnvironmentRequest.Builder(environmentName, CreateEnvironmentRequest.Size.FREE).build(); CreateEnvironmentResponse createResponse = createEnvironment(createRequest); - DeleteEnvironmentRequest deleteRequest = new DeleteEnvironmentRequest.Builder(createResponse.getEnvironmentId()) - .build(); + DeleteEnvironmentRequest deleteRequest = + new DeleteEnvironmentRequest.Builder(createResponse.getEnvironmentId()).build(); DeleteEnvironmentResponse deleteRepsonse = deleteEnvironment(deleteRequest); assertEquals(createResponse.getEnvironmentId(), deleteRepsonse.getEnvironmentId()); @@ -268,13 +267,13 @@ public void deleteEnvironmentIsSuccessful() { @Ignore("Only 1 BYOD environment allowed per service instance, so we cannot create more") public void updateEnvironmentIsSuccessful() { String environmentName = uniqueName + "-environment"; - CreateEnvironmentRequest createRequest = new CreateEnvironmentRequest.Builder(environmentName, - CreateEnvironmentRequest.Size.FREE).build(); + CreateEnvironmentRequest createRequest = + new CreateEnvironmentRequest.Builder(environmentName, CreateEnvironmentRequest.Size.FREE).build(); CreateEnvironmentResponse createResponse = createEnvironment(createRequest); String randomDescription = UUID.randomUUID().toString() + " appbuilder tests"; - UpdateEnvironmentRequest.Builder updateBuilder = new UpdateEnvironmentRequest.Builder( - createResponse.getEnvironmentId(), environmentName); + UpdateEnvironmentRequest.Builder updateBuilder = + new UpdateEnvironmentRequest.Builder(createResponse.getEnvironmentId(), environmentName); updateBuilder.description(randomDescription); UpdateEnvironmentResponse updateResponse = discovery.updateEnvironment(updateBuilder.build()).execute(); @@ -305,8 +304,8 @@ public void createConfigurationIsSuccessful() { public void deleteConfigurationIsSuccessful() { CreateConfigurationResponse createResponse = createTestConfig(); - DeleteConfigurationRequest deleteRequest = new DeleteConfigurationRequest.Builder(environmentId, - createResponse.getConfigurationId()).build(); + DeleteConfigurationRequest deleteRequest = + new DeleteConfigurationRequest.Builder(environmentId, createResponse.getConfigurationId()).build(); DeleteConfigurationResponse deleteResponse = deleteConfiguration(deleteRequest); assertEquals(createResponse.getConfigurationId(), deleteResponse.getConfigurationId()); @@ -316,8 +315,8 @@ public void deleteConfigurationIsSuccessful() { public void getConfigurationIsSuccessful() { CreateConfigurationResponse createResponse = createTestConfig(); - GetConfigurationRequest getRequest = new GetConfigurationRequest.Builder(environmentId, - createResponse.getConfigurationId()).build(); + GetConfigurationRequest getRequest = + new GetConfigurationRequest.Builder(environmentId, createResponse.getConfigurationId()).build(); GetConfigurationResponse getResponse = discovery.getConfiguration(getRequest).execute(); assertEquals(createResponse.getName(), getResponse.getName()); @@ -340,8 +339,8 @@ public void updateConfigurationIsSuccessful() { CreateConfigurationResponse createResponse = createTestConfig(); String newUniqueName = createResponse.getName() + UUID.randomUUID().toString(); - UpdateConfigurationRequest.Builder updateBuilder = new UpdateConfigurationRequest.Builder(environmentId, - createResponse.getConfigurationId()); + UpdateConfigurationRequest.Builder updateBuilder = + new UpdateConfigurationRequest.Builder(environmentId, createResponse.getConfigurationId()); createResponse.setName(newUniqueName); updateBuilder.configuration(createResponse); UpdateConfigurationResponse updateResponse = discovery.updateConfiguration(updateBuilder.build()).execute(); @@ -379,10 +378,10 @@ public void deleteCollectionIsSuccessful() { createConfigResponse.getConfigurationId(), uniqueCollectionName); CreateCollectionResponse createResponse = createCollection(createCollectionBuilder.build()); - //need to wait for collection to be ready + // need to wait for collection to be ready - DeleteCollectionRequest deleteRequest = new DeleteCollectionRequest.Builder(environmentId, - createResponse.getCollectionId()).build(); + DeleteCollectionRequest deleteRequest = + new DeleteCollectionRequest.Builder(environmentId, createResponse.getCollectionId()).build(); DeleteCollectionResponse deleteResponse = deleteCollection(deleteRequest); assertEquals(Status.DELETED, deleteResponse.getStatus()); @@ -397,10 +396,10 @@ public void getCollectionIsSuccessful() { createConfigResponse.getConfigurationId(), uniqueCollectionName); CreateCollectionResponse createResponse = createCollection(createCollectionBuilder.build()); - GetCollectionRequest getRequest = new GetCollectionRequest.Builder(environmentId, - createResponse.getCollectionId()).build(); + GetCollectionRequest getRequest = + new GetCollectionRequest.Builder(environmentId, createResponse.getCollectionId()).build(); - //need to wait for collection to be ready + // need to wait for collection to be ready GetCollectionResponse getResponse = discovery.getCollection(getRequest).execute(); @@ -424,6 +423,7 @@ public void getCollectionsByNameIsSuccessful() { assertEquals(uniqueCollectionName, getResponse.getCollections().get(0).getName()); } + @SuppressWarnings("deprecation") @Test public void createDocumentIsSuccessful() { CreateCollectionResponse createCollectionResponse = createTestCollection(); @@ -431,8 +431,8 @@ public void createDocumentIsSuccessful() { String myDocumentJson = "{\"field\":\"value\"}"; InputStream documentStream = new ByteArrayInputStream(myDocumentJson.getBytes()); - CreateDocumentRequest.Builder builder = new CreateDocumentRequest.Builder(environmentId, - createCollectionResponse.getCollectionId()); + CreateDocumentRequest.Builder builder = + new CreateDocumentRequest.Builder(environmentId, createCollectionResponse.getCollectionId()); builder.inputStream(documentStream, HttpMediaType.APPLICATION_JSON); CreateDocumentResponse createResponse = discovery.createDocument(builder.build()).execute(); @@ -440,6 +440,7 @@ public void createDocumentIsSuccessful() { assertNull(createResponse.getNotices()); } + @SuppressWarnings("deprecation") @Test public void createDocumentWithMetadataIsSuccessful() { CreateCollectionResponse createCollectionResponse = createTestCollection(); @@ -473,8 +474,8 @@ public void deleteDocumentIsSuccessful() { String collectionId = createCollectionResponse.getCollectionId(); CreateDocumentResponse createDocumentResponse = createTestDocument(collectionId); - DeleteDocumentRequest deleteRequest = new DeleteDocumentRequest.Builder(environmentId, collectionId, - createDocumentResponse.getDocumentId()).build(); + DeleteDocumentRequest deleteRequest = + new DeleteDocumentRequest.Builder(environmentId, collectionId, createDocumentResponse.getDocumentId()).build(); DeleteDocumentResponse deleteResponse = discovery.deleteDocument(deleteRequest).execute(); assertEquals(Status.DELETED, deleteResponse.getStatus()); } @@ -485,8 +486,8 @@ public void getDocumentIsSuccessful() { String collectionId = createCollectionResponse.getCollectionId(); CreateDocumentResponse createDocumentResponse = createTestDocument(collectionId); - GetDocumentRequest getRequest = new GetDocumentRequest.Builder(environmentId, collectionId, - createDocumentResponse.getDocumentId()).build(); + GetDocumentRequest getRequest = + new GetDocumentRequest.Builder(environmentId, collectionId, createDocumentResponse.getDocumentId()).build(); GetDocumentResponse getResponse = discovery.getDocument(getRequest).execute(); assertEquals(Document.Status.AVAILABLE, getResponse.getStatus()); @@ -498,15 +499,15 @@ public void updateDocumentIsSuccessful() { String collectionId = createCollectionResponse.getCollectionId(); CreateDocumentResponse createDocumentResponse = createTestDocument(collectionId); - UpdateDocumentRequest.Builder updateBuilder = new UpdateDocumentRequest.Builder(environmentId, collectionId, - createDocumentResponse.getDocumentId()); + UpdateDocumentRequest.Builder updateBuilder = + new UpdateDocumentRequest.Builder(environmentId, collectionId, createDocumentResponse.getDocumentId()); String myDocumentJson = "{\"field\":\"value2\"}"; InputStream documentStream = new ByteArrayInputStream(myDocumentJson.getBytes()); updateBuilder.inputStream(documentStream, HttpMediaType.APPLICATION_JSON); UpdateDocumentResponse updateResponse = discovery.updateDocument(updateBuilder.build()).execute(); - GetDocumentRequest getRequest = new GetDocumentRequest.Builder(environmentId, collectionId, - updateResponse.getDocumentId()).build(); + GetDocumentRequest getRequest = + new GetDocumentRequest.Builder(environmentId, collectionId, updateResponse.getDocumentId()).build(); GetDocumentResponse getResponse = discovery.getDocument(getRequest).execute(); assertEquals(Document.Status.AVAILABLE, getResponse.getStatus()); @@ -525,12 +526,11 @@ public void updateDocumentWithMetadataIsSuccessful() { JsonObject myMetadata = new JsonObject(); myMetadata.add("foo", new JsonPrimitive("bar")); - UpdateDocumentRequest.Builder updateBuilder = new UpdateDocumentRequest.Builder(environmentId, collectionId, - createDocumentResponse.getDocumentId()); + UpdateDocumentRequest.Builder updateBuilder = + new UpdateDocumentRequest.Builder(environmentId, collectionId, createDocumentResponse.getDocumentId()); updateBuilder.inputStream(documentStream, HttpMediaType.APPLICATION_JSON); updateBuilder.metadata(myMetadata); - UpdateDocumentResponse updateResponse = - discovery.updateDocument(updateBuilder.build()).execute(); + UpdateDocumentResponse updateResponse = discovery.updateDocument(updateBuilder.build()).execute(); WaitFor.Condition documentAccepted = new DocumentAccepted(environmentId, collectionId, updateResponse.getDocumentId()); @@ -548,8 +548,7 @@ public void getCollectionFieldsIsSuccessful() { String collectionId = createCollectionResponse.getCollectionId(); createTestDocument(collectionId); - GetCollectionFieldsRequest getRequest = new GetCollectionFieldsRequest.Builder(environmentId, collectionId) - .build(); + GetCollectionFieldsRequest getRequest = new GetCollectionFieldsRequest.Builder(environmentId, collectionId).build(); GetCollectionFieldsResponse getResponse = discovery.getCollectionFields(getRequest).execute(); assertFalse(getResponse.getFields().isEmpty()); @@ -751,7 +750,7 @@ public void queryWithAggregationAverageIsSuccessful() throws InterruptedExceptio public void issueNumber517() { String uniqueConfigName = uniqueName + "-config"; CreateConfigurationRequest.Builder createBuilder = new CreateConfigurationRequest.Builder(environmentId); - Configuration configuration = getTestConfiguration(DISCOVERY1_TEST_CONFIG_FILE); + Configuration configuration = getTestConfiguration(DISCOVERY1_TEST_CONFIG_FILE); configuration.setName(uniqueConfigName); createBuilder.configuration(configuration); @@ -771,7 +770,7 @@ public void issueNumber518() { String uniqueConfigName = uniqueName + "-config"; CreateConfigurationRequest.Builder createBuilder = new CreateConfigurationRequest.Builder(environmentId); - Configuration configuration = getTestConfiguration(DISCOVERY2_TEST_CONFIG_FILE); + Configuration configuration = getTestConfiguration(DISCOVERY2_TEST_CONFIG_FILE); configuration.setName(uniqueConfigName); createBuilder.configuration(configuration); @@ -846,13 +845,14 @@ private CreateDocumentResponse createTestDocument(String collectionId) { return createTestDocument(myDocumentJson, collectionId); } + @SuppressWarnings("deprecation") private CreateDocumentResponse createTestDocument(String json, String collectionId) { InputStream documentStream = new ByteArrayInputStream(json.getBytes()); CreateDocumentRequest.Builder builder = new CreateDocumentRequest.Builder(environmentId, collectionId); builder.inputStream(documentStream, HttpMediaType.APPLICATION_JSON); CreateDocumentResponse createResponse = discovery.createDocument(builder.build()).execute(); - WaitFor.Condition documentAccepted = new DocumentAccepted(environmentId, collectionId, - createResponse.getDocumentId()); + WaitFor.Condition documentAccepted = + new DocumentAccepted(environmentId, collectionId, createResponse.getDocumentId()); WaitFor.waitFor(documentAccepted, 5, TimeUnit.SECONDS, 500); return createResponse; } @@ -887,7 +887,7 @@ private static class EnvironmentReady implements WaitFor.Condition { private final Discovery discovery; private final String environmentId; - public EnvironmentReady(Discovery discovery, String environmentId) { + private EnvironmentReady(Discovery discovery, String environmentId) { this.discovery = discovery; this.environmentId = environmentId; } @@ -901,10 +901,6 @@ public boolean isSatisfied() { } private class DocumentAccepted implements WaitFor.Condition { - private final String environmentId; - private final String collectionId; - private final String documentId; - public DocumentAccepted(String environmentId, String collectionId, String documentId) { this.environmentId = environmentId; this.collectionId = collectionId; @@ -913,10 +909,15 @@ public DocumentAccepted(String environmentId, String collectionId, String docume @Override public boolean isSatisfied() { - GetDocumentRequest getRequest = new GetDocumentRequest.Builder(environmentId, collectionId, documentId) - .build(); + GetDocumentRequest getRequest = new GetDocumentRequest.Builder(environmentId, collectionId, documentId).build(); Document.Status status = discovery.getDocument(getRequest).execute().getStatus(); return status.equals(Document.Status.AVAILABLE); } + + private final String environmentId; + private final String collectionId; + private final String documentId; + } + } diff --git a/natural-language-understanding/src/test/java/com/ibm/watson/developer_cloud/natural_language_understanding/v1/NaturalLanguageUnderstandingIT.java b/natural-language-understanding/src/test/java/com/ibm/watson/developer_cloud/natural_language_understanding/v1/NaturalLanguageUnderstandingIT.java index 213418121ba..49bd5d1c122 100644 --- a/natural-language-understanding/src/test/java/com/ibm/watson/developer_cloud/natural_language_understanding/v1/NaturalLanguageUnderstandingIT.java +++ b/natural-language-understanding/src/test/java/com/ibm/watson/developer_cloud/natural_language_understanding/v1/NaturalLanguageUnderstandingIT.java @@ -516,8 +516,8 @@ public void analyzeHtmlForDisambiguationIsSuccessful() throws Exception { assertTrue(results.getEntities().size() == 1); for (EntitiesResult result : results.getEntities()) { assertNotNull(result.getDisambiguation()); - assertEquals(result.getDisambiguation().getName(),"CNN"); - assertEquals(result.getDisambiguation().getDbpediaResource(),"http://dbpedia.org/resource/CNN"); + assertEquals(result.getDisambiguation().getName(), "CNN"); + assertEquals(result.getDisambiguation().getDbpediaResource(), "http://dbpedia.org/resource/CNN"); assertNotNull(result.getDisambiguation().getSubtype()); assertTrue(result.getDisambiguation().getSubtype().size() > 0); } From bc987e668a838c83b725ffed2552b1aaa5fbb1f8 Mon Sep 17 00:00:00 2001 From: German Attanasio Ruiz Date: Fri, 7 Apr 2017 14:58:30 -0400 Subject: [PATCH 12/19] Update javadoc for interimResult, fixes #504 --- .../speech_to_text/v1/model/RecognizeOptions.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/speech-to-text/src/main/java/com/ibm/watson/developer_cloud/speech_to_text/v1/model/RecognizeOptions.java b/speech-to-text/src/main/java/com/ibm/watson/developer_cloud/speech_to_text/v1/model/RecognizeOptions.java index a4261dcdc6c..461d42fec5c 100755 --- a/speech-to-text/src/main/java/com/ibm/watson/developer_cloud/speech_to_text/v1/model/RecognizeOptions.java +++ b/speech-to-text/src/main/java/com/ibm/watson/developer_cloud/speech_to_text/v1/model/RecognizeOptions.java @@ -12,9 +12,12 @@ */ package com.ibm.watson.developer_cloud.speech_to_text.v1.model; +import java.io.InputStream; + import com.google.gson.annotations.SerializedName; import com.ibm.watson.developer_cloud.http.HttpMediaType; import com.ibm.watson.developer_cloud.speech_to_text.v1.SpeechToText; +import com.ibm.watson.developer_cloud.speech_to_text.v1.websocket.RecognizeCallback; import com.ibm.watson.developer_cloud.util.Validator; import okhttp3.MediaType; @@ -121,7 +124,7 @@ public Builder smartFormatting(Boolean smartFormatting) { /** * If true, adds speaker labels to the transcript. * - * @param speakerLabels Labels or "diarization" + * @param speakerLabels Labels or "diarization" * @return the recognize options */ public Builder speakerLabels(Boolean speakerLabels) { @@ -167,7 +170,9 @@ public Builder inactivityTimeout(Integer inactivityTimeout) { /** * If true, the service sends interim results for the transcription. Otherwise, the recognition ends after first - * "end of speech" is detected. The default is false. + * "end of speech" is detected. The default is false. This option is only supported with the + * {@link SpeechToText#recognizeUsingWebSocket(InputStream, RecognizeOptions, RecognizeCallback)} + * method. * * @param interimResults the interim results * @return the recognize options From bd29fc2a89b7a3c323d2b1321bdb04a023331707 Mon Sep 17 00:00:00 2001 From: German Attanasio Ruiz Date: Fri, 7 Apr 2017 16:21:12 -0400 Subject: [PATCH 13/19] Organize imports --- .../alchemy/v1/AlchemyLanguageIT.java | 3 + .../alchemy/v1/AlchemyVisionIT.java | 3 + .../v1/ConversationServiceIT.java | 3 + .../developer_cloud/util/RetryRunner.java | 113 ++++++++++ .../discovery/v1/Discovery.java | 58 ++--- .../v1/model/collection/Collection.java | 4 +- .../model/collection/CollectionManager.java | 4 +- .../collection/GetCollectionsResponse.java | 4 +- .../collection/field/FieldAdapterFactory.java | 4 +- .../field/GetCollectionFieldsRequest.java | 2 +- .../field/GetCollectionFieldsResponse.java | 4 +- .../common/EagerNumberAdapterFactory.java | 10 +- .../v1/model/configuration/Configuration.java | 6 +- .../model/configuration/ContentSelector.java | 4 +- .../v1/model/configuration/Conversions.java | 4 +- .../DeleteConfigurationResponse.java | 4 +- .../v1/model/configuration/Enrichment.java | 4 +- .../v1/model/configuration/FontStyles.java | 4 +- .../GetConfigurationsResponse.java | 4 +- .../v1/model/configuration/Heading.java | 4 +- .../v1/model/configuration/Html.java | 4 +- .../model/document/CreateDocumentRequest.java | 6 +- .../discovery/v1/model/document/Document.java | 6 +- .../model/document/UpdateDocumentRequest.java | 6 +- .../v1/model/environment/Environment.java | 4 +- .../environment/GetEnvironmentsResponse.java | 4 +- .../query/AggregationAdapterFactory.java | 4 +- .../v1/model/query/NestableAggregation.java | 4 +- .../query/NestableAggregationResult.java | 4 +- .../v1/model/query/QueryResponse.java | 6 +- .../discovery/v1/DiscoveryServiceIT.java | 3 + .../discovery/v1/DiscoveryServiceTest.java | 36 +-- .../discovery/v1/DiscoveryQueryExample.java | 6 +- ...ingWebSocketsWithSpeakerLabelsExample.java | 20 +- .../v1/NaturalLanguageClassifierIT.java | 2 +- .../v1/NaturalLanguageUnderstanding.java | 2 +- .../v1/NaturalLanguageUnderstandingIT.java | 5 +- .../v1/RetrieveAndRankIT.java | 3 + .../v1/websocket/BaseRecognizeCallback.java | 4 +- .../speech_to_text/v1/SpeechToTextIT.java | 9 +- .../speech_to_text/v1/SpeechToTextTest.java | 10 +- .../internal/ws/WebSocketRecorder.java | 11 +- .../text_to_speech/v1/TextToSpeechIT.java | 3 + .../text_to_speech/v1/TextToSpeechTest.java | 1 - .../developer_cloud/WatsonServiceTest.java | 210 ------------------ .../WatsonServiceUnitTest.java | 90 -------- .../v3/VisualRecognitionIT.java | 3 + .../v3/VisualRecognitionTest.java | 26 +-- 48 files changed, 289 insertions(+), 449 deletions(-) create mode 100644 core/src/test/java/com/ibm/watson/developer_cloud/util/RetryRunner.java delete mode 100755 tradeoff-analytics/src/test/java/com/ibm/watson/developer_cloud/WatsonServiceTest.java delete mode 100644 tradeoff-analytics/src/test/java/com/ibm/watson/developer_cloud/WatsonServiceUnitTest.java diff --git a/alchemy/src/test/java/com/ibm/watson/developer_cloud/alchemy/v1/AlchemyLanguageIT.java b/alchemy/src/test/java/com/ibm/watson/developer_cloud/alchemy/v1/AlchemyLanguageIT.java index 95b08ba79eb..1f17ecdbb22 100755 --- a/alchemy/src/test/java/com/ibm/watson/developer_cloud/alchemy/v1/AlchemyLanguageIT.java +++ b/alchemy/src/test/java/com/ibm/watson/developer_cloud/alchemy/v1/AlchemyLanguageIT.java @@ -23,6 +23,7 @@ import org.junit.Before; import org.junit.Ignore; import org.junit.Test; +import org.junit.runner.RunWith; import com.ibm.watson.developer_cloud.WatsonServiceTest; import com.ibm.watson.developer_cloud.alchemy.v1.model.CombinedResults; @@ -45,10 +46,12 @@ import com.ibm.watson.developer_cloud.alchemy.v1.model.TypedEntity; import com.ibm.watson.developer_cloud.alchemy.v1.model.TypedRelation; import com.ibm.watson.developer_cloud.alchemy.v1.model.TypedRelations; +import com.ibm.watson.developer_cloud.util.RetryRunner; /** * Alchemy Language Integration tests. */ +@RunWith(RetryRunner.class) public class AlchemyLanguageIT extends WatsonServiceTest { private static final String testURL = diff --git a/alchemy/src/test/java/com/ibm/watson/developer_cloud/alchemy/v1/AlchemyVisionIT.java b/alchemy/src/test/java/com/ibm/watson/developer_cloud/alchemy/v1/AlchemyVisionIT.java index 2ee64b71b30..362b8d6c02f 100644 --- a/alchemy/src/test/java/com/ibm/watson/developer_cloud/alchemy/v1/AlchemyVisionIT.java +++ b/alchemy/src/test/java/com/ibm/watson/developer_cloud/alchemy/v1/AlchemyVisionIT.java @@ -19,6 +19,7 @@ import org.junit.Assume; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; import com.ibm.watson.developer_cloud.WatsonServiceTest; import com.ibm.watson.developer_cloud.alchemy.v1.model.ImageFaces; @@ -28,12 +29,14 @@ import com.ibm.watson.developer_cloud.alchemy.v1.model.ImageSceneText; import com.ibm.watson.developer_cloud.alchemy.v1.model.ImageSceneTextLine; import com.ibm.watson.developer_cloud.alchemy.v1.model.ImageSceneTextLine.Word; +import com.ibm.watson.developer_cloud.util.RetryRunner; import okhttp3.HttpUrl; /** * The Class AlchemyVisionTest. */ +@RunWith(RetryRunner.class) public class AlchemyVisionIT extends WatsonServiceTest { private static final String IMAGE_OBAMA = "src/test/resources/alchemy/obama.jpg"; diff --git a/conversation/src/test/java/com/ibm/watson/developer_cloud/conversation/v1/ConversationServiceIT.java b/conversation/src/test/java/com/ibm/watson/developer_cloud/conversation/v1/ConversationServiceIT.java index 0c6af561bb7..bd367122fb8 100644 --- a/conversation/src/test/java/com/ibm/watson/developer_cloud/conversation/v1/ConversationServiceIT.java +++ b/conversation/src/test/java/com/ibm/watson/developer_cloud/conversation/v1/ConversationServiceIT.java @@ -19,15 +19,18 @@ import org.junit.Assume; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; import com.ibm.watson.developer_cloud.WatsonServiceTest; import com.ibm.watson.developer_cloud.conversation.v1.model.Intent; import com.ibm.watson.developer_cloud.conversation.v1.model.MessageRequest; import com.ibm.watson.developer_cloud.conversation.v1.model.MessageResponse; +import com.ibm.watson.developer_cloud.util.RetryRunner; /** * Integration test for the {@link ConversationService}. */ +@RunWith(RetryRunner.class) public class ConversationServiceIT extends WatsonServiceTest { private ConversationService service; diff --git a/core/src/test/java/com/ibm/watson/developer_cloud/util/RetryRunner.java b/core/src/test/java/com/ibm/watson/developer_cloud/util/RetryRunner.java new file mode 100644 index 00000000000..72cc3ba54d6 --- /dev/null +++ b/core/src/test/java/com/ibm/watson/developer_cloud/util/RetryRunner.java @@ -0,0 +1,113 @@ +/* + * Copyright 2017 IBM Corp. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ +package com.ibm.watson.developer_cloud.util; + +import java.util.logging.Logger; + +import org.junit.Ignore; +import org.junit.internal.AssumptionViolatedException; +import org.junit.internal.runners.model.EachTestNotifier; +import org.junit.runner.Description; +import org.junit.runner.notification.RunNotifier; +import org.junit.runner.notification.StoppedByUserException; +import org.junit.runners.BlockJUnit4ClassRunner; +import org.junit.runners.model.FrameworkMethod; +import org.junit.runners.model.InitializationError; +import org.junit.runners.model.Statement; + +/** + * Junit Runner that retry tests. Useful when tests could fail due to network issues. + */ +public class RetryRunner extends BlockJUnit4ClassRunner { + private static final Logger LOG = Logger.getLogger(RetryRunner.class.getName()); + + private static final int RETRY_COUNT = 2; + + /** + * Instantiates a new retry runner. + * + * @param clazz the class + * @throws InitializationError the initialization error + */ + public RetryRunner(Class clazz) throws InitializationError { + super(clazz); + } + + /* + * (non-Javadoc) + * + * @see org.junit.runners.ParentRunner#run(org.junit.runner.notification.RunNotifier) + */ + @Override + public void run(final RunNotifier notifier) { + EachTestNotifier testNotifier = new EachTestNotifier(notifier, getDescription()); + Statement statement = classBlock(notifier); + try { + statement.evaluate(); + } catch (AssumptionViolatedException ave) { + testNotifier.fireTestIgnored(); + } catch (StoppedByUserException sbue) { + throw sbue; + } catch (Throwable t) { + LOG.warning("Retry class: " + getDescription().getDisplayName()); + retry(testNotifier, statement, t, getDescription()); + } + } + + /* + * (non-Javadoc) + * + * @see org.junit.runners.BlockJUnit4ClassRunner#runChild(org.junit.runners.model.FrameworkMethod, + * org.junit.runner.notification.RunNotifier) + */ + @Override + protected void runChild(final FrameworkMethod method, RunNotifier notifier) { + Description description = describeChild(method); + if (method.getAnnotation(Ignore.class) != null) { + notifier.fireTestIgnored(description); + } else { + runTest(methodBlock(method), description, notifier); + } + } + + private void runTest(Statement statement, Description description, RunNotifier notifier) { + EachTestNotifier eachNotifier = new EachTestNotifier(notifier, description); + eachNotifier.fireTestStarted(); + try { + statement.evaluate(); + } catch (AssumptionViolatedException e) { + eachNotifier.addFailedAssumption(e); + } catch (Throwable e) { + LOG.warning("Retry test: " + description.getDisplayName()); + retry(eachNotifier, statement, e, description); + } finally { + eachNotifier.fireTestFinished(); + } + } + + private void retry(EachTestNotifier notifier, Statement statement, Throwable currentThrowable, Description info) { + int failedAttempts = 0; + Throwable caughtThrowable = currentThrowable; + while (RETRY_COUNT > failedAttempts) { + try { + LOG.warning("Retry attempt " + (failedAttempts + 1) + " for " + info.getDisplayName()); + statement.evaluate(); + return; + } catch (Throwable t) { + failedAttempts++; + caughtThrowable = t; + } + } + notifier.addFailure(caughtThrowable); + } +} diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/Discovery.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/Discovery.java index 59088494bd8..f859f912b48 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/Discovery.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/Discovery.java @@ -13,31 +13,60 @@ package com.ibm.watson.developer_cloud.discovery.v1; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import com.ibm.watson.developer_cloud.discovery.v1.model.collection.CollectionManager; +import com.ibm.watson.developer_cloud.discovery.v1.model.collection.CreateCollectionRequest; import com.ibm.watson.developer_cloud.discovery.v1.model.collection.CreateCollectionResponse; import com.ibm.watson.developer_cloud.discovery.v1.model.collection.DeleteCollectionRequest; import com.ibm.watson.developer_cloud.discovery.v1.model.collection.DeleteCollectionResponse; +import com.ibm.watson.developer_cloud.discovery.v1.model.collection.GetCollectionRequest; +import com.ibm.watson.developer_cloud.discovery.v1.model.collection.GetCollectionResponse; import com.ibm.watson.developer_cloud.discovery.v1.model.collection.GetCollectionsRequest; +import com.ibm.watson.developer_cloud.discovery.v1.model.collection.GetCollectionsResponse; import com.ibm.watson.developer_cloud.discovery.v1.model.collection.field.GetCollectionFieldsRequest; +import com.ibm.watson.developer_cloud.discovery.v1.model.collection.field.GetCollectionFieldsResponse; +import com.ibm.watson.developer_cloud.discovery.v1.model.configuration.Configuration; import com.ibm.watson.developer_cloud.discovery.v1.model.configuration.ConfigurationManager; import com.ibm.watson.developer_cloud.discovery.v1.model.configuration.CreateConfigurationRequest; +import com.ibm.watson.developer_cloud.discovery.v1.model.configuration.CreateConfigurationResponse; +import com.ibm.watson.developer_cloud.discovery.v1.model.configuration.DeleteConfigurationRequest; +import com.ibm.watson.developer_cloud.discovery.v1.model.configuration.DeleteConfigurationResponse; import com.ibm.watson.developer_cloud.discovery.v1.model.configuration.GetConfigurationRequest; import com.ibm.watson.developer_cloud.discovery.v1.model.configuration.GetConfigurationResponse; import com.ibm.watson.developer_cloud.discovery.v1.model.configuration.GetConfigurationsRequest; import com.ibm.watson.developer_cloud.discovery.v1.model.configuration.GetConfigurationsResponse; +import com.ibm.watson.developer_cloud.discovery.v1.model.configuration.UpdateConfigurationRequest; import com.ibm.watson.developer_cloud.discovery.v1.model.configuration.UpdateConfigurationResponse; import com.ibm.watson.developer_cloud.discovery.v1.model.document.CreateDocumentRequest; import com.ibm.watson.developer_cloud.discovery.v1.model.document.CreateDocumentResponse; +import com.ibm.watson.developer_cloud.discovery.v1.model.document.DeleteDocumentRequest; import com.ibm.watson.developer_cloud.discovery.v1.model.document.DeleteDocumentResponse; +import com.ibm.watson.developer_cloud.discovery.v1.model.document.DocumentManager; import com.ibm.watson.developer_cloud.discovery.v1.model.document.GetDocumentRequest; import com.ibm.watson.developer_cloud.discovery.v1.model.document.GetDocumentResponse; +import com.ibm.watson.developer_cloud.discovery.v1.model.document.UpdateDocumentRequest; import com.ibm.watson.developer_cloud.discovery.v1.model.document.UpdateDocumentResponse; import com.ibm.watson.developer_cloud.discovery.v1.model.environment.CreateEnvironmentRequest; import com.ibm.watson.developer_cloud.discovery.v1.model.environment.CreateEnvironmentResponse; import com.ibm.watson.developer_cloud.discovery.v1.model.environment.DeleteEnvironmentRequest; +import com.ibm.watson.developer_cloud.discovery.v1.model.environment.DeleteEnvironmentResponse; +import com.ibm.watson.developer_cloud.discovery.v1.model.environment.EnvironmentManager; import com.ibm.watson.developer_cloud.discovery.v1.model.environment.GetEnvironmentRequest; import com.ibm.watson.developer_cloud.discovery.v1.model.environment.GetEnvironmentResponse; +import com.ibm.watson.developer_cloud.discovery.v1.model.environment.GetEnvironmentsRequest; +import com.ibm.watson.developer_cloud.discovery.v1.model.environment.GetEnvironmentsResponse; +import com.ibm.watson.developer_cloud.discovery.v1.model.environment.UpdateEnvironmentRequest; +import com.ibm.watson.developer_cloud.discovery.v1.model.environment.UpdateEnvironmentResponse; +import com.ibm.watson.developer_cloud.discovery.v1.model.query.Operator; import com.ibm.watson.developer_cloud.discovery.v1.model.query.QueryManager; import com.ibm.watson.developer_cloud.discovery.v1.model.query.QueryRequest; +import com.ibm.watson.developer_cloud.discovery.v1.model.query.QueryResponse; import com.ibm.watson.developer_cloud.http.HttpMediaType; import com.ibm.watson.developer_cloud.http.InputStreamRequestBody; import com.ibm.watson.developer_cloud.http.RequestBuilder; @@ -47,41 +76,12 @@ import com.ibm.watson.developer_cloud.util.RequestUtils; import com.ibm.watson.developer_cloud.util.ResponseConverterUtils; import com.ibm.watson.developer_cloud.util.Validator; -import com.ibm.watson.developer_cloud.discovery.v1.model.collection.CollectionManager; -import com.ibm.watson.developer_cloud.discovery.v1.model.collection.CreateCollectionRequest; -import com.ibm.watson.developer_cloud.discovery.v1.model.collection.GetCollectionRequest; -import com.ibm.watson.developer_cloud.discovery.v1.model.collection.GetCollectionResponse; -import com.ibm.watson.developer_cloud.discovery.v1.model.collection.GetCollectionsResponse; -import com.ibm.watson.developer_cloud.discovery.v1.model.collection.field.GetCollectionFieldsResponse; -import com.ibm.watson.developer_cloud.discovery.v1.model.configuration.Configuration; -import com.ibm.watson.developer_cloud.discovery.v1.model.configuration.CreateConfigurationResponse; -import com.ibm.watson.developer_cloud.discovery.v1.model.configuration.DeleteConfigurationRequest; -import com.ibm.watson.developer_cloud.discovery.v1.model.configuration.DeleteConfigurationResponse; -import com.ibm.watson.developer_cloud.discovery.v1.model.configuration.UpdateConfigurationRequest; -import com.ibm.watson.developer_cloud.discovery.v1.model.document.DeleteDocumentRequest; -import com.ibm.watson.developer_cloud.discovery.v1.model.document.DocumentManager; -import com.ibm.watson.developer_cloud.discovery.v1.model.document.UpdateDocumentRequest; -import com.ibm.watson.developer_cloud.discovery.v1.model.environment.DeleteEnvironmentResponse; -import com.ibm.watson.developer_cloud.discovery.v1.model.environment.EnvironmentManager; -import com.ibm.watson.developer_cloud.discovery.v1.model.environment.GetEnvironmentsRequest; -import com.ibm.watson.developer_cloud.discovery.v1.model.environment.GetEnvironmentsResponse; -import com.ibm.watson.developer_cloud.discovery.v1.model.environment.UpdateEnvironmentRequest; -import com.ibm.watson.developer_cloud.discovery.v1.model.environment.UpdateEnvironmentResponse; -import com.ibm.watson.developer_cloud.discovery.v1.model.query.Operator; -import com.ibm.watson.developer_cloud.discovery.v1.model.query.QueryResponse; import okhttp3.MediaType; import okhttp3.MultipartBody; import okhttp3.Request; import okhttp3.RequestBody; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - /** * Discovery service API for CRUD operations for indexing and searching data. */ diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/collection/Collection.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/collection/Collection.java index 20571ed03a4..2581e5b8939 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/collection/Collection.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/collection/Collection.java @@ -13,12 +13,12 @@ package com.ibm.watson.developer_cloud.discovery.v1.model.collection; +import java.util.Date; + import com.google.gson.annotations.SerializedName; import com.ibm.watson.developer_cloud.discovery.v1.model.common.Status; import com.ibm.watson.developer_cloud.service.model.GenericModel; -import java.util.Date; - /** * A Collection holds the documents that have been ingested and allows querying against it. */ diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/collection/CollectionManager.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/collection/CollectionManager.java index 1609f805e08..4704f0f1aba 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/collection/CollectionManager.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/collection/CollectionManager.java @@ -13,10 +13,10 @@ package com.ibm.watson.developer_cloud.discovery.v1.model.collection; +import com.ibm.watson.developer_cloud.discovery.v1.model.collection.field.Field; import com.ibm.watson.developer_cloud.discovery.v1.model.collection.field.GetCollectionFieldsRequest; -import com.ibm.watson.developer_cloud.http.ServiceCall; import com.ibm.watson.developer_cloud.discovery.v1.model.collection.field.GetCollectionFieldsResponse; -import com.ibm.watson.developer_cloud.discovery.v1.model.collection.field.Field; +import com.ibm.watson.developer_cloud.http.ServiceCall; /** * Interface defining the constants and methods associated with Collections. diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/collection/GetCollectionsResponse.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/collection/GetCollectionsResponse.java index 389dcb25853..7799063e225 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/collection/GetCollectionsResponse.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/collection/GetCollectionsResponse.java @@ -13,11 +13,11 @@ package com.ibm.watson.developer_cloud.discovery.v1.model.collection; +import java.util.List; + import com.google.gson.annotations.SerializedName; import com.ibm.watson.developer_cloud.service.model.GenericModel; -import java.util.List; - /** * Response from {@link GetCollectionsRequest}. */ diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/collection/field/FieldAdapterFactory.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/collection/field/FieldAdapterFactory.java index 44ee7ee6b2c..050d4dd31ce 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/collection/field/FieldAdapterFactory.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/collection/field/FieldAdapterFactory.java @@ -13,6 +13,8 @@ package com.ibm.watson.developer_cloud.discovery.v1.model.collection.field; +import java.io.IOException; + import com.google.gson.Gson; import com.google.gson.TypeAdapter; import com.google.gson.TypeAdapterFactory; @@ -21,8 +23,6 @@ import com.google.gson.stream.JsonToken; import com.google.gson.stream.JsonWriter; -import java.io.IOException; - /** * Override default enum handling for poorly formed JSON field types schema. */ diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/collection/field/GetCollectionFieldsRequest.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/collection/field/GetCollectionFieldsRequest.java index 30a19ded649..2cd39daf8bf 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/collection/field/GetCollectionFieldsRequest.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/collection/field/GetCollectionFieldsRequest.java @@ -13,8 +13,8 @@ package com.ibm.watson.developer_cloud.discovery.v1.model.collection.field; -import com.ibm.watson.developer_cloud.service.model.GenericModel; import com.ibm.watson.developer_cloud.discovery.v1.model.collection.Collection; +import com.ibm.watson.developer_cloud.service.model.GenericModel; /** * Request to get a list of {@link Field}s from a {@link Collection}. diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/collection/field/GetCollectionFieldsResponse.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/collection/field/GetCollectionFieldsResponse.java index 23a10dd80ec..c47ce6a9c3b 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/collection/field/GetCollectionFieldsResponse.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/collection/field/GetCollectionFieldsResponse.java @@ -13,12 +13,12 @@ package com.ibm.watson.developer_cloud.discovery.v1.model.collection.field; +import java.util.List; + import com.google.gson.annotations.SerializedName; import com.ibm.watson.developer_cloud.discovery.v1.model.collection.CollectionManager; import com.ibm.watson.developer_cloud.service.model.GenericModel; -import java.util.List; - /** * Response from {@link GetCollectionFieldsRequest}. */ diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/common/EagerNumberAdapterFactory.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/common/EagerNumberAdapterFactory.java index d9ca35b5071..442273ca3e8 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/common/EagerNumberAdapterFactory.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/common/EagerNumberAdapterFactory.java @@ -13,6 +13,11 @@ package com.ibm.watson.developer_cloud.discovery.v1.model.common; +import java.io.IOException; +import java.text.DecimalFormat; +import java.text.NumberFormat; +import java.text.ParseException; + import com.google.gson.Gson; import com.google.gson.TypeAdapter; import com.google.gson.TypeAdapterFactory; @@ -21,11 +26,6 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import java.io.IOException; -import java.text.DecimalFormat; -import java.text.NumberFormat; -import java.text.ParseException; - /** * Override the default {@link LazilyParsedNumber} for parsing {@link Number}s. */ diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/Configuration.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/Configuration.java index a016aad4b30..5208ef05a7d 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/Configuration.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/Configuration.java @@ -13,13 +13,13 @@ package com.ibm.watson.developer_cloud.discovery.v1.model.configuration; +import java.util.Date; +import java.util.List; + import com.google.gson.annotations.SerializedName; import com.ibm.watson.developer_cloud.discovery.v1.model.document.Document; import com.ibm.watson.developer_cloud.service.model.GenericModel; -import java.util.Date; -import java.util.List; - /** * A Configuration is used to define how a {@link Document} will be ingested. * It contains various settings for different file types and various steps of the ingestion process. diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/ContentSelector.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/ContentSelector.java index d824d13cd8f..b980848ee8c 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/ContentSelector.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/ContentSelector.java @@ -13,11 +13,11 @@ package com.ibm.watson.developer_cloud.discovery.v1.model.configuration; +import java.util.List; + import com.google.gson.annotations.SerializedName; import com.ibm.watson.developer_cloud.service.model.GenericModel; -import java.util.List; - /** * ContentSelector allows you to define an xPath to retrieve content from an XML document. * diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/Conversions.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/Conversions.java index 581335081d0..00e3c3726d1 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/Conversions.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/Conversions.java @@ -13,11 +13,11 @@ package com.ibm.watson.developer_cloud.discovery.v1.model.configuration; +import java.util.List; + import com.google.gson.annotations.SerializedName; import com.ibm.watson.developer_cloud.service.model.GenericModel; -import java.util.List; - /** * Conversions define the steps associated with various filetypes. * diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/DeleteConfigurationResponse.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/DeleteConfigurationResponse.java index 446ff4d98be..19211feb18f 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/DeleteConfigurationResponse.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/DeleteConfigurationResponse.java @@ -13,14 +13,14 @@ package com.ibm.watson.developer_cloud.discovery.v1.model.configuration; +import java.util.List; + import com.google.gson.annotations.SerializedName; import com.ibm.watson.developer_cloud.discovery.v1.model.common.CommonManager; import com.ibm.watson.developer_cloud.discovery.v1.model.common.Notice; import com.ibm.watson.developer_cloud.discovery.v1.model.common.Status; import com.ibm.watson.developer_cloud.service.model.GenericModel; -import java.util.List; - /** * Response from a {@link DeleteConfigurationRequest}. * The response contains a {@link Notice} if the configuration was referenced by at least one collection. diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/Enrichment.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/Enrichment.java index f60fda50a77..08238a2f1a2 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/Enrichment.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/Enrichment.java @@ -13,11 +13,11 @@ package com.ibm.watson.developer_cloud.discovery.v1.model.configuration; +import java.util.Map; + import com.google.gson.annotations.SerializedName; import com.ibm.watson.developer_cloud.service.model.GenericModel; -import java.util.Map; - /** * An Enrichment contains configuration pertaining to which fields Watson should extract metadata from. */ diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/FontStyles.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/FontStyles.java index f5cdda21f8e..4c3aeb428f9 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/FontStyles.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/FontStyles.java @@ -13,11 +13,11 @@ package com.ibm.watson.developer_cloud.discovery.v1.model.configuration; +import java.util.List; + import com.google.gson.annotations.SerializedName; import com.ibm.watson.developer_cloud.service.model.GenericModel; -import java.util.List; - /** * Contains basic styles for a font. */ diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/GetConfigurationsResponse.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/GetConfigurationsResponse.java index 56bbb3d795f..e8bb4928136 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/GetConfigurationsResponse.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/GetConfigurationsResponse.java @@ -13,11 +13,11 @@ package com.ibm.watson.developer_cloud.discovery.v1.model.configuration; +import java.util.List; + import com.google.gson.annotations.SerializedName; import com.ibm.watson.developer_cloud.service.model.GenericModel; -import java.util.List; - /** * Response from {@link GetConfigurationsRequest}. */ diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/Heading.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/Heading.java index 79c43a1fa29..fc8b358c387 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/Heading.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/Heading.java @@ -13,11 +13,11 @@ package com.ibm.watson.developer_cloud.discovery.v1.model.configuration; +import java.util.List; + import com.google.gson.annotations.SerializedName; import com.ibm.watson.developer_cloud.service.model.GenericModel; -import java.util.List; - /** * Heading settings in a PDF or Word document. * diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/Html.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/Html.java index 5e6d866ed34..cb41797a356 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/Html.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/configuration/Html.java @@ -13,11 +13,11 @@ package com.ibm.watson.developer_cloud.discovery.v1.model.configuration; +import java.util.List; + import com.google.gson.annotations.SerializedName; import com.ibm.watson.developer_cloud.service.model.GenericModel; -import java.util.List; - /** * Configuration options for an HTML document. */ diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/document/CreateDocumentRequest.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/document/CreateDocumentRequest.java index e5d03ec7ae7..dc4bb66a466 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/document/CreateDocumentRequest.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/document/CreateDocumentRequest.java @@ -13,14 +13,14 @@ package com.ibm.watson.developer_cloud.discovery.v1.model.document; -import com.google.gson.JsonObject; -import com.ibm.watson.developer_cloud.service.model.GenericModel; - import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; +import com.google.gson.JsonObject; +import com.ibm.watson.developer_cloud.service.model.GenericModel; + /** * Request to create a {@link Document}. */ diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/document/Document.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/document/Document.java index 862be04118d..051e5f63476 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/document/Document.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/document/Document.java @@ -13,15 +13,15 @@ package com.ibm.watson.developer_cloud.discovery.v1.model.document; +import java.util.Date; +import java.util.List; + import com.google.gson.annotations.SerializedName; import com.ibm.watson.developer_cloud.discovery.v1.model.common.CommonManager; import com.ibm.watson.developer_cloud.discovery.v1.model.common.Notice; import com.ibm.watson.developer_cloud.discovery.v1.model.query.QueryManager; import com.ibm.watson.developer_cloud.service.model.GenericModel; -import java.util.Date; -import java.util.List; - /** * A Document contains the processing status and notices, if any, for a document in the index. * It does not return the document itself. diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/document/UpdateDocumentRequest.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/document/UpdateDocumentRequest.java index 7973e98fe8f..4f414290aaa 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/document/UpdateDocumentRequest.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/document/UpdateDocumentRequest.java @@ -13,14 +13,14 @@ package com.ibm.watson.developer_cloud.discovery.v1.model.document; -import com.google.gson.JsonObject; -import com.ibm.watson.developer_cloud.service.model.GenericModel; - import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; +import com.google.gson.JsonObject; +import com.ibm.watson.developer_cloud.service.model.GenericModel; + /** * Request to update a {@link Document}. */ diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/environment/Environment.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/environment/Environment.java index 014a0e0274b..fe067e3eb17 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/environment/Environment.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/environment/Environment.java @@ -13,12 +13,12 @@ package com.ibm.watson.developer_cloud.discovery.v1.model.environment; +import java.util.Date; + import com.google.gson.annotations.SerializedName; import com.ibm.watson.developer_cloud.discovery.v1.model.common.Status; import com.ibm.watson.developer_cloud.service.model.GenericModel; -import java.util.Date; - /** * Container where Collections and Configurations are stored. * An Environment gives information about the memory and storage space allocated diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/environment/GetEnvironmentsResponse.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/environment/GetEnvironmentsResponse.java index bab65c98988..78d1d17fcc1 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/environment/GetEnvironmentsResponse.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/environment/GetEnvironmentsResponse.java @@ -13,11 +13,11 @@ package com.ibm.watson.developer_cloud.discovery.v1.model.environment; +import java.util.List; + import com.google.gson.annotations.SerializedName; import com.ibm.watson.developer_cloud.service.model.GenericModel; -import java.util.List; - /** * Response from a {@link GetEnvironmentsRequest}. */ diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/query/AggregationAdapterFactory.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/query/AggregationAdapterFactory.java index d65e3fdaf1d..8260ef24451 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/query/AggregationAdapterFactory.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/query/AggregationAdapterFactory.java @@ -13,6 +13,8 @@ package com.ibm.watson.developer_cloud.discovery.v1.model.query; +import java.io.IOException; + import com.google.gson.Gson; import com.google.gson.JsonElement; import com.google.gson.JsonObject; @@ -22,8 +24,6 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import java.io.IOException; - /** * Adapts the abstract {@link Aggregation} to its concrete implementations. */ diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/query/NestableAggregation.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/query/NestableAggregation.java index 98a80321a16..847f8ed04b1 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/query/NestableAggregation.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/query/NestableAggregation.java @@ -13,10 +13,10 @@ package com.ibm.watson.developer_cloud.discovery.v1.model.query; -import com.google.gson.annotations.SerializedName; - import java.util.List; +import com.google.gson.annotations.SerializedName; + /** * Handles aggregations that can use the {@link Operator#NEST_AGGREGATION}. */ diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/query/NestableAggregationResult.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/query/NestableAggregationResult.java index 5c99d2987cc..cb4e1810e95 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/query/NestableAggregationResult.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/query/NestableAggregationResult.java @@ -13,11 +13,11 @@ package com.ibm.watson.developer_cloud.discovery.v1.model.query; +import java.util.List; + import com.google.gson.annotations.SerializedName; import com.ibm.watson.developer_cloud.service.model.GenericModel; -import java.util.List; - /** * Results contained within a Nestable Aggregation. * diff --git a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/query/QueryResponse.java b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/query/QueryResponse.java index e2b52075c55..26597940ff8 100644 --- a/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/query/QueryResponse.java +++ b/discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/query/QueryResponse.java @@ -13,13 +13,13 @@ package com.ibm.watson.developer_cloud.discovery.v1.model.query; -import com.google.gson.annotations.SerializedName; -import com.ibm.watson.developer_cloud.service.model.GenericModel; - import java.util.ArrayList; import java.util.List; import java.util.Map; +import com.google.gson.annotations.SerializedName; +import com.ibm.watson.developer_cloud.service.model.GenericModel; + /** * A response containing the documents and aggregations from the QueryRequest. * diff --git a/discovery/src/test/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryServiceIT.java b/discovery/src/test/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryServiceIT.java index c0448b25b4c..cbafc05be9a 100644 --- a/discovery/src/test/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryServiceIT.java +++ b/discovery/src/test/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryServiceIT.java @@ -37,6 +37,7 @@ import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; +import org.junit.runner.RunWith; import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; @@ -97,12 +98,14 @@ import com.ibm.watson.developer_cloud.service.exception.ForbiddenException; import com.ibm.watson.developer_cloud.service.exception.UnauthorizedException; import com.ibm.watson.developer_cloud.util.GsonSingleton; +import com.ibm.watson.developer_cloud.util.RetryRunner; import com.ibm.watson.developer_cloud.util.WaitFor; /** * Integration tests for {@link Discovery}. * */ +@RunWith(RetryRunner.class) public class DiscoveryServiceIT extends WatsonServiceTest { private static final String DISCOVERY_TEST_CONFIG_FILE = "src/test/resources/discovery/test-config.json"; private static final String DISCOVERY1_TEST_CONFIG_FILE = "src/test/resources/discovery/issue517.json"; diff --git a/discovery/src/test/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryServiceTest.java b/discovery/src/test/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryServiceTest.java index 1a381b54736..948fffe7c85 100644 --- a/discovery/src/test/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryServiceTest.java +++ b/discovery/src/test/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryServiceTest.java @@ -13,6 +13,24 @@ package com.ibm.watson.developer_cloud.discovery.v1; +import static org.junit.Assert.assertEquals; + +import java.io.BufferedWriter; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStream; +import java.util.HashSet; +import java.util.Set; + +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + import com.google.gson.JsonIOException; import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; @@ -66,24 +84,6 @@ import okhttp3.mockwebserver.RecordedRequest; -import org.junit.After; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; - -import static org.junit.Assert.assertEquals; - -import java.io.FileReader; -import java.io.FileNotFoundException; -import java.io.InputStream; -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.io.BufferedWriter; -import java.util.HashSet; -import java.util.Set; - /** * Unit tests for {@link Discovery}. * diff --git a/examples/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryQueryExample.java b/examples/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryQueryExample.java index 30ba7a5075c..7af172c4e37 100644 --- a/examples/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryQueryExample.java +++ b/examples/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/DiscoveryQueryExample.java @@ -15,6 +15,9 @@ package com.ibm.watson.developer_cloud.discovery.v1; +import java.io.ByteArrayInputStream; +import java.io.InputStream; + import com.ibm.watson.developer_cloud.discovery.v1.model.collection.CreateCollectionRequest; import com.ibm.watson.developer_cloud.discovery.v1.model.collection.CreateCollectionResponse; import com.ibm.watson.developer_cloud.discovery.v1.model.collection.DeleteCollectionRequest; @@ -40,9 +43,6 @@ import com.ibm.watson.developer_cloud.discovery.v1.model.query.QueryResponse; import com.ibm.watson.developer_cloud.http.HttpMediaType; -import java.io.ByteArrayInputStream; -import java.io.InputStream; - /** * End-to-end example for querying Discovery. */ diff --git a/examples/src/main/java/com/ibm/watson/developer_cloud/speech_to_text/v1/RecognizeUsingWebSocketsWithSpeakerLabelsExample.java b/examples/src/main/java/com/ibm/watson/developer_cloud/speech_to_text/v1/RecognizeUsingWebSocketsWithSpeakerLabelsExample.java index fd489820754..a5a0ee99f35 100644 --- a/examples/src/main/java/com/ibm/watson/developer_cloud/speech_to_text/v1/RecognizeUsingWebSocketsWithSpeakerLabelsExample.java +++ b/examples/src/main/java/com/ibm/watson/developer_cloud/speech_to_text/v1/RecognizeUsingWebSocketsWithSpeakerLabelsExample.java @@ -12,6 +12,16 @@ */ package com.ibm.watson.developer_cloud.speech_to_text.v1; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; + import com.ibm.watson.developer_cloud.http.HttpMediaType; import com.ibm.watson.developer_cloud.speech_to_text.v1.model.RecognizeOptions; import com.ibm.watson.developer_cloud.speech_to_text.v1.model.SpeakerLabel; @@ -23,16 +33,6 @@ import com.ibm.watson.developer_cloud.speech_to_text.v1.websocket.BaseRecognizeCallback; import com.ibm.watson.developer_cloud.util.GsonSingleton; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.TimeUnit; - public class RecognizeUsingWebSocketsWithSpeakerLabelsExample { public static class RecoToken { diff --git a/natural-language-classifier/src/test/java/com/ibm/watson/developer_cloud/natural_language_classifier/v1/NaturalLanguageClassifierIT.java b/natural-language-classifier/src/test/java/com/ibm/watson/developer_cloud/natural_language_classifier/v1/NaturalLanguageClassifierIT.java index 2d300fa5131..18a08891957 100644 --- a/natural-language-classifier/src/test/java/com/ibm/watson/developer_cloud/natural_language_classifier/v1/NaturalLanguageClassifierIT.java +++ b/natural-language-classifier/src/test/java/com/ibm/watson/developer_cloud/natural_language_classifier/v1/NaturalLanguageClassifierIT.java @@ -21,8 +21,8 @@ import org.junit.Assume; import org.junit.AssumptionViolatedException; import org.junit.Before; -import org.junit.Test; import org.junit.FixMethodOrder; +import org.junit.Test; import org.junit.runners.MethodSorters; import com.ibm.watson.developer_cloud.WatsonServiceTest; diff --git a/natural-language-understanding/src/main/java/com/ibm/watson/developer_cloud/natural_language_understanding/v1/NaturalLanguageUnderstanding.java b/natural-language-understanding/src/main/java/com/ibm/watson/developer_cloud/natural_language_understanding/v1/NaturalLanguageUnderstanding.java index 89bcaf5c650..ed73bbf1ec0 100644 --- a/natural-language-understanding/src/main/java/com/ibm/watson/developer_cloud/natural_language_understanding/v1/NaturalLanguageUnderstanding.java +++ b/natural-language-understanding/src/main/java/com/ibm/watson/developer_cloud/natural_language_understanding/v1/NaturalLanguageUnderstanding.java @@ -16,8 +16,8 @@ import com.ibm.watson.developer_cloud.http.RequestBuilder; import com.ibm.watson.developer_cloud.http.ServiceCall; import com.ibm.watson.developer_cloud.natural_language_understanding.v1.model.AnalysisResults; -import com.ibm.watson.developer_cloud.natural_language_understanding.v1.model.ListModelsResults; import com.ibm.watson.developer_cloud.natural_language_understanding.v1.model.AnalyzeOptions; +import com.ibm.watson.developer_cloud.natural_language_understanding.v1.model.ListModelsResults; import com.ibm.watson.developer_cloud.service.WatsonService; import com.ibm.watson.developer_cloud.util.GsonSingleton; import com.ibm.watson.developer_cloud.util.ResponseConverterUtils; diff --git a/natural-language-understanding/src/test/java/com/ibm/watson/developer_cloud/natural_language_understanding/v1/NaturalLanguageUnderstandingIT.java b/natural-language-understanding/src/test/java/com/ibm/watson/developer_cloud/natural_language_understanding/v1/NaturalLanguageUnderstandingIT.java index 49bd5d1c122..80bc4928085 100644 --- a/natural-language-understanding/src/test/java/com/ibm/watson/developer_cloud/natural_language_understanding/v1/NaturalLanguageUnderstandingIT.java +++ b/natural-language-understanding/src/test/java/com/ibm/watson/developer_cloud/natural_language_understanding/v1/NaturalLanguageUnderstandingIT.java @@ -25,6 +25,7 @@ import org.junit.Before; import org.junit.FixMethodOrder; import org.junit.Test; +import org.junit.runner.RunWith; import org.junit.runners.MethodSorters; import com.ibm.watson.developer_cloud.WatsonServiceTest; @@ -49,11 +50,13 @@ import com.ibm.watson.developer_cloud.natural_language_understanding.v1.model.SemanticRolesResult; import com.ibm.watson.developer_cloud.natural_language_understanding.v1.model.SentimentOptions; import com.ibm.watson.developer_cloud.natural_language_understanding.v1.model.TargetedSentimentResults; +import com.ibm.watson.developer_cloud.util.RetryRunner; /** - * The Class NaturalLanguageunderstandingTest. + * Natural Language Understanding integration tests. */ @FixMethodOrder(MethodSorters.NAME_ASCENDING) +@RunWith(RetryRunner.class) public class NaturalLanguageUnderstandingIT extends WatsonServiceTest { private NaturalLanguageUnderstanding service; diff --git a/retrieve-and-rank/src/test/java/com/ibm/watson/developer_cloud/retrieve_and_rank/v1/RetrieveAndRankIT.java b/retrieve-and-rank/src/test/java/com/ibm/watson/developer_cloud/retrieve_and_rank/v1/RetrieveAndRankIT.java index 8276198c8c4..87270ae9b1b 100644 --- a/retrieve-and-rank/src/test/java/com/ibm/watson/developer_cloud/retrieve_and_rank/v1/RetrieveAndRankIT.java +++ b/retrieve-and-rank/src/test/java/com/ibm/watson/developer_cloud/retrieve_and_rank/v1/RetrieveAndRankIT.java @@ -31,6 +31,7 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; +import org.junit.runner.RunWith; import com.ibm.watson.developer_cloud.WatsonServiceTest; import com.ibm.watson.developer_cloud.retrieve_and_rank.v1.model.Ranker; @@ -43,10 +44,12 @@ import com.ibm.watson.developer_cloud.retrieve_and_rank.v1.model.SolrClusterStats; import com.ibm.watson.developer_cloud.service.exception.BadRequestException; import com.ibm.watson.developer_cloud.service.exception.NotFoundException; +import com.ibm.watson.developer_cloud.util.RetryRunner; /** * The Class RetrieveAndRankIT. */ +@RunWith(RetryRunner.class) public class RetrieveAndRankIT extends WatsonServiceTest { private static final Integer CREATED_CLUSTER_SIZE_ONE = 1; diff --git a/speech-to-text/src/main/java/com/ibm/watson/developer_cloud/speech_to_text/v1/websocket/BaseRecognizeCallback.java b/speech-to-text/src/main/java/com/ibm/watson/developer_cloud/speech_to_text/v1/websocket/BaseRecognizeCallback.java index cc0d138d1b4..f20cfbe0647 100755 --- a/speech-to-text/src/main/java/com/ibm/watson/developer_cloud/speech_to_text/v1/websocket/BaseRecognizeCallback.java +++ b/speech-to-text/src/main/java/com/ibm/watson/developer_cloud/speech_to_text/v1/websocket/BaseRecognizeCallback.java @@ -13,11 +13,11 @@ */ package com.ibm.watson.developer_cloud.speech_to_text.v1.websocket; -import com.ibm.watson.developer_cloud.speech_to_text.v1.model.SpeechResults; - import java.util.logging.Level; import java.util.logging.Logger; +import com.ibm.watson.developer_cloud.speech_to_text.v1.model.SpeechResults; + /** * An empty implementation of {@link RecognizeCallback} interface. */ diff --git a/speech-to-text/src/test/java/com/ibm/watson/developer_cloud/speech_to_text/v1/SpeechToTextIT.java b/speech-to-text/src/test/java/com/ibm/watson/developer_cloud/speech_to_text/v1/SpeechToTextIT.java index 0835bbf7f1d..3bb6c596ec0 100755 --- a/speech-to-text/src/test/java/com/ibm/watson/developer_cloud/speech_to_text/v1/SpeechToTextIT.java +++ b/speech-to-text/src/test/java/com/ibm/watson/developer_cloud/speech_to_text/v1/SpeechToTextIT.java @@ -23,12 +23,13 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; +import org.junit.Assume; +import org.junit.Before; import org.junit.Ignore; import org.junit.Rule; -import org.junit.Before; -import org.junit.Assume; import org.junit.Test; import org.junit.rules.ExpectedException; +import org.junit.runner.RunWith; import com.ibm.watson.developer_cloud.WatsonServiceTest; import com.ibm.watson.developer_cloud.http.HttpMediaType; @@ -47,14 +48,16 @@ import com.ibm.watson.developer_cloud.speech_to_text.v1.model.SpeechWordAlternatives; import com.ibm.watson.developer_cloud.speech_to_text.v1.model.Transcript; import com.ibm.watson.developer_cloud.speech_to_text.v1.model.Word; -import com.ibm.watson.developer_cloud.speech_to_text.v1.model.Word.Type; import com.ibm.watson.developer_cloud.speech_to_text.v1.model.Word.Sort; +import com.ibm.watson.developer_cloud.speech_to_text.v1.model.Word.Type; import com.ibm.watson.developer_cloud.speech_to_text.v1.model.WordData; import com.ibm.watson.developer_cloud.speech_to_text.v1.websocket.BaseRecognizeCallback; +import com.ibm.watson.developer_cloud.util.RetryRunner; /** * Speech to text Integration tests. */ +@RunWith(RetryRunner.class) public class SpeechToTextIT extends WatsonServiceTest { private static final String EN_BROADBAND16K = "en-US_BroadbandModel"; diff --git a/speech-to-text/src/test/java/com/ibm/watson/developer_cloud/speech_to_text/v1/SpeechToTextTest.java b/speech-to-text/src/test/java/com/ibm/watson/developer_cloud/speech_to_text/v1/SpeechToTextTest.java index 272130ca849..283e2fbe07d 100755 --- a/speech-to-text/src/test/java/com/ibm/watson/developer_cloud/speech_to_text/v1/SpeechToTextTest.java +++ b/speech-to-text/src/test/java/com/ibm/watson/developer_cloud/speech_to_text/v1/SpeechToTextTest.java @@ -33,10 +33,6 @@ import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; -import com.ibm.watson.developer_cloud.speech_to_text.v1.websocket.RecognizeCallback; -import okhttp3.WebSocket; -import okhttp3.internal.ws.WebSocketRecorder; -import okio.ByteString; import org.junit.Before; import org.junit.FixMethodOrder; import org.junit.Test; @@ -60,15 +56,19 @@ import com.ibm.watson.developer_cloud.speech_to_text.v1.model.SpeechSession; import com.ibm.watson.developer_cloud.speech_to_text.v1.model.Transcript; import com.ibm.watson.developer_cloud.speech_to_text.v1.model.Word; -import com.ibm.watson.developer_cloud.speech_to_text.v1.model.Word.Type; import com.ibm.watson.developer_cloud.speech_to_text.v1.model.Word.Sort; +import com.ibm.watson.developer_cloud.speech_to_text.v1.model.Word.Type; import com.ibm.watson.developer_cloud.speech_to_text.v1.model.WordData; import com.ibm.watson.developer_cloud.speech_to_text.v1.util.MediaTypeUtils; +import com.ibm.watson.developer_cloud.speech_to_text.v1.websocket.RecognizeCallback; import com.ibm.watson.developer_cloud.util.GsonSingleton; import com.ibm.watson.developer_cloud.util.TestUtils; +import okhttp3.WebSocket; +import okhttp3.internal.ws.WebSocketRecorder; import okhttp3.mockwebserver.MockResponse; import okhttp3.mockwebserver.RecordedRequest; +import okio.ByteString; /** * The Class SpeechToTextTest. diff --git a/speech-to-text/src/test/java/okhttp3/internal/ws/WebSocketRecorder.java b/speech-to-text/src/test/java/okhttp3/internal/ws/WebSocketRecorder.java index 815523881d8..bfbda92e765 100755 --- a/speech-to-text/src/test/java/okhttp3/internal/ws/WebSocketRecorder.java +++ b/speech-to-text/src/test/java/okhttp3/internal/ws/WebSocketRecorder.java @@ -15,10 +15,16 @@ */ package okhttp3.internal.ws; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; + import java.io.IOException; import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; + import okhttp3.Response; import okhttp3.WebSocket; import okhttp3.WebSocketListener; @@ -26,11 +32,6 @@ import okhttp3.internal.platform.Platform; import okio.ByteString; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; - public final class WebSocketRecorder extends WebSocketListener { private final String name; private final BlockingQueue events = new LinkedBlockingQueue<>(); diff --git a/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechIT.java b/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechIT.java index 98084a8cd4a..66600aad838 100644 --- a/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechIT.java +++ b/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechIT.java @@ -26,6 +26,7 @@ import org.junit.Assume; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; import com.ibm.watson.developer_cloud.WatsonServiceTest; import com.ibm.watson.developer_cloud.text_to_speech.v1.model.AudioFormat; @@ -33,10 +34,12 @@ import com.ibm.watson.developer_cloud.text_to_speech.v1.model.Pronunciation; import com.ibm.watson.developer_cloud.text_to_speech.v1.model.Voice; import com.ibm.watson.developer_cloud.text_to_speech.v1.util.WaveUtils; +import com.ibm.watson.developer_cloud.util.RetryRunner; /** * Text to Speech integration tests. */ +@RunWith(RetryRunner.class) public class TextToSpeechIT extends WatsonServiceTest { private TextToSpeech service; diff --git a/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechTest.java b/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechTest.java index 5cf4da53d4e..b22d9d109a4 100644 --- a/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechTest.java +++ b/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechTest.java @@ -28,7 +28,6 @@ import java.io.OutputStream; import java.lang.reflect.Field; import java.lang.reflect.Modifier; -import java.net.URLEncoder; import java.util.List; import java.util.Map; diff --git a/tradeoff-analytics/src/test/java/com/ibm/watson/developer_cloud/WatsonServiceTest.java b/tradeoff-analytics/src/test/java/com/ibm/watson/developer_cloud/WatsonServiceTest.java deleted file mode 100755 index f549c1d1058..00000000000 --- a/tradeoff-analytics/src/test/java/com/ibm/watson/developer_cloud/WatsonServiceTest.java +++ /dev/null @@ -1,210 +0,0 @@ -/** - * Copyright 2017 IBM Corp. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ -package com.ibm.watson.developer_cloud; - -import static org.junit.Assert.fail; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; -import java.util.logging.Level; -import java.util.logging.LogManager; -import java.util.logging.Logger; - -import org.slf4j.LoggerFactory; - -import com.ibm.watson.developer_cloud.http.HttpHeaders; -import com.ibm.watson.developer_cloud.util.GsonSingleton; - -/** - * Utility class to test the Watson Services. - */ -public abstract class WatsonServiceTest { - - private static final String DEFAULT_PROPERTIES = "config.properties"; - private static final String LOCAL_PROPERTIES = ".config.properties"; - - /** The Constant PLACEHOLDER. */ - protected static final String PLACEHOLDER = "SERVICE_USERNAME"; - - private static final Logger LOG = Logger.getLogger(WatsonServiceTest.class.getName()); - - /** The Constant CONTENT_TYPE. */ - protected static final String CONTENT_TYPE = "Content-Type"; - - /** - * Instantiates a new watson service test. - */ - public WatsonServiceTest() { - if (properties == null) { - loadProperties(); - } - setupLogging(); - } - - /** - * Gets the default test headers. - * - * @return the default headers - */ - protected Map getDefaultHeaders() { - Map headers = new HashMap(); - headers.put(HttpHeaders.X_WATSON_LEARNING_OPT_OUT, String.valueOf(true)); - headers.put(HttpHeaders.X_WATSON_TEST, String.valueOf(true)); - return headers; - } - - /** - * Gets the string from input stream. - * - * @param is the input stream - * @return the string from input stream - */ - public static String getStringFromInputStream(InputStream is) { - BufferedReader br = null; - final StringBuilder sb = new StringBuilder(); - - String line; - try { - - br = new BufferedReader(new InputStreamReader(is)); - while ((line = br.readLine()) != null) { - sb.append(line); - } - - } catch (final IOException e) { - e.printStackTrace(); - } finally { - if (br != null) { - try { - br.close(); - } catch (final IOException e) { - e.printStackTrace(); - } - } - } - - return sb.toString(); - - } - - /** The prop. */ - protected static Properties properties = null; - - /** - * Gets the valid property. - * - * @param property the property - * @return the valid property - */ - public String getProperty(String property) { - return properties.getProperty(property); - } - - private void loadProperties() { - properties = new Properties(); - - InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream(LOCAL_PROPERTIES); - if (input == null) { - input = Thread.currentThread().getContextClassLoader().getResourceAsStream(DEFAULT_PROPERTIES); - } else { - LOG.info("Using " + LOCAL_PROPERTIES); - } - if (input == null) { - LOG.warning(DEFAULT_PROPERTIES + " was not found."); - return; - } - // load a properties file from class path, inside static method - try { - properties.load(input); - } catch (IOException e) { - LOG.log(Level.SEVERE, "Error loading the config.properties"); - } - - } - - /** - * Setup logging. - */ - private void setupLogging() { - ch.qos.logback.classic.Logger root = - (ch.qos.logback.classic.Logger) LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME); - root.setLevel(ch.qos.logback.classic.Level.OFF); - try { - FileInputStream configFile = new FileInputStream("src/test/resources/logging.properties"); - LogManager.getLogManager().readConfiguration(configFile); - } catch (IOException ex) { - System.out.println("WARNING: Could not open configuration file"); - System.out.println("WARNING: Logging not configured (console output only)"); - } - } - - /** - * Write input stream to file. - * - * @param inputStream the input stream - * @param file the file - */ - public static void writeInputStreamToFile(InputStream inputStream, File file) { - OutputStream outStream = null; - try { - outStream = new FileOutputStream(file); - - byte[] buffer = new byte[8 * 1024]; - int bytesRead; - while ((bytesRead = inputStream.read(buffer)) != -1) { - outStream.write(buffer, 0, bytesRead); - } - } catch (Exception e) { - fail(); - } finally { - try { - inputStream.close(); - outStream.close(); - } catch (Exception e) { - fail(); - } - } - } - - /** - * Loads fixture. - * - * @param the return type - * @param filename the file name - * @param returnType the return type - * @return the t - * @throws FileNotFoundException the file not found exception - */ - public static T loadFixture(String filename, Class returnType) throws FileNotFoundException { - String jsonString = getStringFromInputStream(new FileInputStream(filename)); - return GsonSingleton.getGsonWithoutPrettyPrinting().fromJson(jsonString, returnType); - } - - /** - * Sets the up. - * - * @throws Exception the exception - */ - public void setUp() throws Exception { } - -} diff --git a/tradeoff-analytics/src/test/java/com/ibm/watson/developer_cloud/WatsonServiceUnitTest.java b/tradeoff-analytics/src/test/java/com/ibm/watson/developer_cloud/WatsonServiceUnitTest.java deleted file mode 100644 index 076ea2243ca..00000000000 --- a/tradeoff-analytics/src/test/java/com/ibm/watson/developer_cloud/WatsonServiceUnitTest.java +++ /dev/null @@ -1,90 +0,0 @@ -/** - * Copyright 2017 IBM Corp. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ -package com.ibm.watson.developer_cloud; - -import java.io.IOException; - -import org.apache.commons.lang3.StringUtils; -import org.junit.After; - -import com.google.gson.Gson; -import com.ibm.watson.developer_cloud.http.HttpMediaType; -import com.ibm.watson.developer_cloud.util.GsonSingleton; - -import okhttp3.mockwebserver.MockResponse; -import okhttp3.mockwebserver.MockWebServer; - -/** - * Utility class to Mock the Watson Services. - * - */ -public abstract class WatsonServiceUnitTest extends WatsonServiceTest { - - /** The Constant DELETE. */ - protected static final String DELETE = "DELETE"; - - /** The Constant GET. */ - protected static final String GET = "GET"; - - /** The Constant POST. */ - protected static final String POST = "POST"; - - /** The Constant PUT. */ - protected static final String PUT = "PUT"; - - private static final Gson GSON = GsonSingleton.getGson(); - - /** The server. */ - protected MockWebServer server; - - /** - * Setups and starts the mock server. - * - * @throws Exception the exception - */ - @Override - public void setUp() throws Exception { - server = new MockWebServer(); - server.start(); - } - - /** - * Tear down. - * - * @throws IOException Signals that an I/O exception has occurred. - */ - @After - public void tearDown() throws IOException { - server.shutdown(); - } - - /** - * Gets the mock web server url. - * - * @return the server url - */ - protected String getMockWebServerUrl() { - return StringUtils.chop(server.url("/").toString()); - } - - /** - * Create a MockResponse with JSON content type and the object serialized to JSON as body. - * - * @param body the body - * @return the mock response - */ - protected static MockResponse jsonResponse(Object body) { - return new MockResponse().addHeader(CONTENT_TYPE, HttpMediaType.APPLICATION_JSON).setBody(GSON.toJson(body)); - } - -} diff --git a/visual-recognition/src/test/java/com/ibm/watson/developer_cloud/visual_recognition/v3/VisualRecognitionIT.java b/visual-recognition/src/test/java/com/ibm/watson/developer_cloud/visual_recognition/v3/VisualRecognitionIT.java index 88a9dde9dc1..87d39cd250a 100644 --- a/visual-recognition/src/test/java/com/ibm/watson/developer_cloud/visual_recognition/v3/VisualRecognitionIT.java +++ b/visual-recognition/src/test/java/com/ibm/watson/developer_cloud/visual_recognition/v3/VisualRecognitionIT.java @@ -28,8 +28,10 @@ import org.junit.Assume; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; import com.ibm.watson.developer_cloud.WatsonServiceTest; +import com.ibm.watson.developer_cloud.util.RetryRunner; import com.ibm.watson.developer_cloud.visual_recognition.v3.model.AddImageToCollectionOptions; import com.ibm.watson.developer_cloud.visual_recognition.v3.model.ClassifierOptions; import com.ibm.watson.developer_cloud.visual_recognition.v3.model.ClassifierOptions.Builder; @@ -49,6 +51,7 @@ * * @version v3 */ +@RunWith(RetryRunner.class) public class VisualRecognitionIT extends WatsonServiceTest { private static final String IMAGE_FACE_FILE = "src/test/resources/visual_recognition/faces.zip"; private static final String IMAGE_FACE_URL = "https://watson-test-resources.mybluemix.net/resources/obama.jpg"; diff --git a/visual-recognition/src/test/java/com/ibm/watson/developer_cloud/visual_recognition/v3/VisualRecognitionTest.java b/visual-recognition/src/test/java/com/ibm/watson/developer_cloud/visual_recognition/v3/VisualRecognitionTest.java index 110c8833edd..5425b611014 100644 --- a/visual-recognition/src/test/java/com/ibm/watson/developer_cloud/visual_recognition/v3/VisualRecognitionTest.java +++ b/visual-recognition/src/test/java/com/ibm/watson/developer_cloud/visual_recognition/v3/VisualRecognitionTest.java @@ -12,6 +12,19 @@ */ package com.ibm.watson.developer_cloud.visual_recognition.v3; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.List; + +import org.junit.Before; +import org.junit.Test; + import com.google.gson.Gson; import com.google.gson.JsonObject; import com.ibm.watson.developer_cloud.WatsonServiceUnitTest; @@ -30,19 +43,6 @@ import okhttp3.mockwebserver.MockResponse; import okhttp3.mockwebserver.RecordedRequest; -import org.junit.Before; -import org.junit.Test; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.List; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - /** * Unit tests for the {@link VisualRecognition} service. */ From 5ae0d24b57beb1145a14d3900ec4222b1b961216 Mon Sep 17 00:00:00 2001 From: German Attanasio Ruiz Date: Fri, 7 Apr 2017 17:04:07 -0400 Subject: [PATCH 14/19] TTS Synthesize using POST, fixes #635 and #602 --- .../text_to_speech/v1/TextToSpeech.java | 10 +++++++--- .../text_to_speech/v1/TextToSpeechIT.java | 2 +- .../text_to_speech/v1/TextToSpeechTest.java | 3 +-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/text-to-speech/src/main/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeech.java b/text-to-speech/src/main/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeech.java index 6e09c54a9a7..72d09bc77f9 100755 --- a/text-to-speech/src/main/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeech.java +++ b/text-to-speech/src/main/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeech.java @@ -18,6 +18,7 @@ import java.util.List; import com.google.gson.Gson; +import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; import com.ibm.watson.developer_cloud.http.HttpMediaType; import com.ibm.watson.developer_cloud.http.RequestBuilder; @@ -216,9 +217,12 @@ public ServiceCall synthesize(final String text, final Voice voice, Validator.isTrue((text != null) && !text.isEmpty(), "text cannot be null or empty"); Validator.isTrue(voice != null, "voice cannot be null or empty"); - String modifiedText = text.replace(";", "%3B"); - final RequestBuilder request = RequestBuilder.get(PATH_SYNTHESIZE); - request.query(TEXT, modifiedText); + final RequestBuilder request = RequestBuilder.post(PATH_SYNTHESIZE); + + JsonObject jsonText = new JsonObject(); + jsonText.addProperty(TEXT, text); + request.bodyJson(jsonText); + request.query(VOICE, voice.getName()); request.query(ACCEPT, audioFormat != null ? audioFormat : AudioFormat.WAV); diff --git a/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechIT.java b/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechIT.java index 66600aad838..b76e565ae76 100644 --- a/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechIT.java +++ b/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechIT.java @@ -102,7 +102,7 @@ public void testGetVoice() { */ @Test public void testSynthesize() throws IOException { - String text = "This is an integration test"; + String text = "This is an integration test; 1,2 !, @, #, $, %, ^, 20."; InputStream result = service.synthesize(text, Voice.EN_LISA, AudioFormat.WAV).execute(); writeInputStreamToFile(result, File.createTempFile("tts-audio", "wav")); } diff --git a/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechTest.java b/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechTest.java index b22d9d109a4..dcd1512e593 100644 --- a/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechTest.java +++ b/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechTest.java @@ -196,10 +196,9 @@ public void testSynthesize() throws IOException, InterruptedException { service.synthesize(text, Voice.EN_LISA, new AudioFormat(HttpMediaType.AUDIO_PCM + "; rate=16000")).execute(); final RecordedRequest request = server.takeRequest(); final HttpUrl requestUrl = HttpUrl.parse("http://www.example.com" + request.getPath()); - String modifiedText = text.replace(";", "%3B"); + assertEquals(request.getBody().readUtf8(),"{\"text\":\""+text+"\"}"); assertEquals(SYNTHESIZE_PATH, requestUrl.encodedPath()); - assertEquals(modifiedText, requestUrl.queryParameter("text")); assertEquals(Voice.EN_LISA.getName(), requestUrl.queryParameter("voice")); assertEquals(HttpMediaType.AUDIO_PCM + "; rate=16000", requestUrl.queryParameter("accept")); assertNotNull(in); From 37abc86e9db5737fdc3acd9049c511c1dbb012b6 Mon Sep 17 00:00:00 2001 From: German Attanasio Ruiz Date: Fri, 7 Apr 2017 17:07:52 -0400 Subject: [PATCH 15/19] :bug: Language translator, update service name --- .../language_translator/v2/LanguageTranslator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/language-translator/src/main/java/com/ibm/watson/developer_cloud/language_translator/v2/LanguageTranslator.java b/language-translator/src/main/java/com/ibm/watson/developer_cloud/language_translator/v2/LanguageTranslator.java index c7063926b1b..0d14c1d460d 100644 --- a/language-translator/src/main/java/com/ibm/watson/developer_cloud/language_translator/v2/LanguageTranslator.java +++ b/language-translator/src/main/java/com/ibm/watson/developer_cloud/language_translator/v2/LanguageTranslator.java @@ -50,7 +50,7 @@ public class LanguageTranslator extends WatsonService { private static final String LANGUAGES = "languages"; private static final String MODELS = "models"; - private static final String SERVICE_NAME = "language_translation"; + private static final String SERVICE_NAME = "language_translator"; private static final String PATH_IDENTIFY = "/v2/identify"; private static final String PATH_TRANSLATE = "/v2/translate"; private static final String PATH_IDENTIFIABLE_LANGUAGES = "/v2/identifiable_languages"; From f7cd661540f3b9e05e9eac9ed167d73c842fafe1 Mon Sep 17 00:00:00 2001 From: German Attanasio Ruiz Date: Fri, 7 Apr 2017 17:10:14 -0400 Subject: [PATCH 16/19] :memo: Update README version to 3.7.2 --- README.md | 14 +++++++------- alchemy/README.md | 4 ++-- conversation/README.md | 4 ++-- discovery/README.md | 4 ++-- document-conversion/README.md | 4 ++-- examples/build.gradle | 2 +- language-translation/README.md | 4 ++-- language-translator/README.md | 4 ++-- natural-language-classifier/README.md | 4 ++-- natural-language-understanding/README.md | 4 ++-- personality-insights/README.md | 4 ++-- retrieve-and-rank/README.md | 4 ++-- speech-to-text/README.md | 4 ++-- text-to-speech/README.md | 4 ++-- tone-analyzer/README.md | 4 ++-- tradeoff-analytics/README.md | 4 ++-- visual-recognition/README.md | 4 ++-- 17 files changed, 38 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index 46593c537f2..cead2e48e09 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ All the services: com.ibm.watson.developer_cloud java-sdk - 3.7.1 + 3.7.2 ``` @@ -63,7 +63,7 @@ Only Retrieve and Rank: com.ibm.watson.developer_cloud retrieve-and-rank - 3.7.1 + 3.7.2 ``` @@ -71,17 +71,17 @@ Only Retrieve and Rank: All the services: ```gradle -'com.ibm.watson.developer_cloud:java-sdk:3.7.1' +'com.ibm.watson.developer_cloud:java-sdk:3.7.2' ``` Only Retrieve and Rank: ```gradle -'com.ibm.watson.developer_cloud:retrieve-and-rank:3.7.1' +'com.ibm.watson.developer_cloud:retrieve-and-rank:3.7.2' ``` Only Visual Recognition: ```gradle -'com.ibm.watson.developer_cloud:visual-recognition:3.7.1' +'com.ibm.watson.developer_cloud:visual-recognition:3.7.2' ``` Snapshots of the development version are available in [Sonatype's snapshots repository][sonatype_snapshots]. @@ -286,7 +286,7 @@ Gradle: ```sh $ cd java-sdk - $ gradle jar # build jar file (build/libs/watson-developer-cloud-3.7.1.jar) + $ gradle jar # build jar file (build/libs/watson-developer-cloud-3.7.2.jar) $ gradle test # run tests $ gradle check # performs quality checks on source files and generates reports $ gradle testReport # run tests and generate the aggregated test report (build/reports/allTests) @@ -323,4 +323,4 @@ See [CONTRIBUTING.md](.github/CONTRIBUTING.md). [apache_maven]: http://maven.apache.org/ [sonatype_snapshots]: https://oss.sonatype.org/content/repositories/snapshots/com/ibm/watson/developer_cloud/ -[jar]: https://github.com/watson-developer-cloud/java-sdk/releases/download/java-sdk-3.7.1/java-sdk-3.7.1-jar-with-dependencies.jar +[jar]: https://github.com/watson-developer-cloud/java-sdk/releases/download/java-sdk-3.7.2/java-sdk-3.7.2-jar-with-dependencies.jar diff --git a/alchemy/README.md b/alchemy/README.md index 80e3ad7d398..8e5bbfd4115 100644 --- a/alchemy/README.md +++ b/alchemy/README.md @@ -7,13 +7,13 @@ com.ibm.watson.developer_cloud alchemy - 3.7.1 + 3.7.2 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:alchemy:3.7.1' +'com.ibm.watson.developer_cloud:alchemy:3.7.2' ``` ## Alchemy Language diff --git a/conversation/README.md b/conversation/README.md index 010e61edf55..71d31b5913d 100644 --- a/conversation/README.md +++ b/conversation/README.md @@ -7,13 +7,13 @@ com.ibm.watson.developer_cloud conversation - 3.7.1 + 3.7.2 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:conversation:3.7.1' +'com.ibm.watson.developer_cloud:conversation:3.7.2' ``` ## Usage diff --git a/discovery/README.md b/discovery/README.md index a41316b1cb0..cf3521ab2b1 100644 --- a/discovery/README.md +++ b/discovery/README.md @@ -7,13 +7,13 @@ com.ibm.watson.developer_cloud discovery - 3.7.1 + 3.7.2 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:discovery:3.7.1' +'com.ibm.watson.developer_cloud:discovery:3.7.2' ``` ## Usage diff --git a/document-conversion/README.md b/document-conversion/README.md index cc4fab14605..be42e5f198b 100644 --- a/document-conversion/README.md +++ b/document-conversion/README.md @@ -7,13 +7,13 @@ com.ibm.watson.developer_cloud document-conversion - 3.7.1 + 3.7.2 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:document-conversion:3.7.1' +'com.ibm.watson.developer_cloud:document-conversion:3.7.2' ``` ## Usage diff --git a/examples/build.gradle b/examples/build.gradle index 0cad5d23030..f2501028117 100644 --- a/examples/build.gradle +++ b/examples/build.gradle @@ -33,5 +33,5 @@ checkstyle { } dependencies { - compile group: 'com.ibm.watson.developer_cloud', name: 'java-sdk', version: '3.7.1' + compile group: 'com.ibm.watson.developer_cloud', name: 'java-sdk', version: '3.7.2' } diff --git a/language-translation/README.md b/language-translation/README.md index 66180241a3d..8ca7afe0cc8 100644 --- a/language-translation/README.md +++ b/language-translation/README.md @@ -8,13 +8,13 @@ Formerly called Language Translation. No code changes are required to migrate. com.ibm.watson.developer_cloud language-translator - 3.7.1 + 3.7.2 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:language-translator:3.7.1' +'com.ibm.watson.developer_cloud:language-translator:3.7.2' ``` ## Usage diff --git a/language-translator/README.md b/language-translator/README.md index 66180241a3d..8ca7afe0cc8 100644 --- a/language-translator/README.md +++ b/language-translator/README.md @@ -8,13 +8,13 @@ Formerly called Language Translation. No code changes are required to migrate. com.ibm.watson.developer_cloud language-translator - 3.7.1 + 3.7.2 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:language-translator:3.7.1' +'com.ibm.watson.developer_cloud:language-translator:3.7.2' ``` ## Usage diff --git a/natural-language-classifier/README.md b/natural-language-classifier/README.md index 0f9a88b0dfb..973125d3e78 100644 --- a/natural-language-classifier/README.md +++ b/natural-language-classifier/README.md @@ -7,13 +7,13 @@ com.ibm.watson.developer_cloud natural-language-classifier - 3.7.1 + 3.7.2 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:natural-language-classifier:3.7.1' +'com.ibm.watson.developer_cloud:natural-language-classifier:3.7.2' ``` ## Usage diff --git a/natural-language-understanding/README.md b/natural-language-understanding/README.md index 74977bac90d..dbc99cb9d90 100644 --- a/natural-language-understanding/README.md +++ b/natural-language-understanding/README.md @@ -7,13 +7,13 @@ com.ibm.watson.developer_cloud natural-language-understanding - 3.7.1 + 3.7.2 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:natural-language-understanding:3.7.1' +'com.ibm.watson.developer_cloud:natural-language-understanding:3.7.2' ``` ## Usage diff --git a/personality-insights/README.md b/personality-insights/README.md index 1755a0623ea..e67105e1f28 100644 --- a/personality-insights/README.md +++ b/personality-insights/README.md @@ -7,13 +7,13 @@ com.ibm.watson.developer_cloud personality-insights - 3.7.1 + 3.7.2 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:personality-insights:3.7.1' +'com.ibm.watson.developer_cloud:personality-insights:3.7.2' ``` ## Usage diff --git a/retrieve-and-rank/README.md b/retrieve-and-rank/README.md index 3c4f8a55203..0f261cc79bb 100644 --- a/retrieve-and-rank/README.md +++ b/retrieve-and-rank/README.md @@ -7,13 +7,13 @@ com.ibm.watson.developer_cloud retrieve-and-rank - 3.7.1 + 3.7.2 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:retrieve-and-rank:3.7.1' +'com.ibm.watson.developer_cloud:retrieve-and-rank:3.7.2' ``` ## Usage diff --git a/speech-to-text/README.md b/speech-to-text/README.md index 467148c2e65..bf00dea16f9 100644 --- a/speech-to-text/README.md +++ b/speech-to-text/README.md @@ -7,13 +7,13 @@ com.ibm.watson.developer_cloud speech-to-text - 3.7.1 + 3.7.2 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:speech-to-text:3.7.1' +'com.ibm.watson.developer_cloud:speech-to-text:3.7.2' ``` ## Usage diff --git a/text-to-speech/README.md b/text-to-speech/README.md index fa046f11582..6c4da065f5c 100644 --- a/text-to-speech/README.md +++ b/text-to-speech/README.md @@ -7,13 +7,13 @@ com.ibm.watson.developer_cloud text-to-speech - 3.7.1 + 3.7.2 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:text-to-speech:3.7.1' +'com.ibm.watson.developer_cloud:text-to-speech:3.7.2' ``` ## Usage diff --git a/tone-analyzer/README.md b/tone-analyzer/README.md index 3ad2a5efbb9..c645aa256da 100644 --- a/tone-analyzer/README.md +++ b/tone-analyzer/README.md @@ -7,13 +7,13 @@ com.ibm.watson.developer_cloud tone-analyzer - 3.7.1 + 3.7.2 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:tone-analyzer:3.7.1' +'com.ibm.watson.developer_cloud:tone-analyzer:3.7.2' ``` ## Usage diff --git a/tradeoff-analytics/README.md b/tradeoff-analytics/README.md index 672ebfc6f97..a90d1fdc3e0 100644 --- a/tradeoff-analytics/README.md +++ b/tradeoff-analytics/README.md @@ -7,13 +7,13 @@ com.ibm.watson.developer_cloud tradeoff-analytics - 3.7.1 + 3.7.2 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:tradeoff-analytics:3.7.1' +'com.ibm.watson.developer_cloud:tradeoff-analytics:3.7.2' ``` ## Usage diff --git a/visual-recognition/README.md b/visual-recognition/README.md index 5f16205dcd9..783bc6490d4 100644 --- a/visual-recognition/README.md +++ b/visual-recognition/README.md @@ -7,13 +7,13 @@ com.ibm.watson.developer_cloud visual-recognition - 3.7.1 + 3.7.2 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:visual-recognition:3.7.1' +'com.ibm.watson.developer_cloud:visual-recognition:3.7.2' ``` ## Usage From 838961f71244a08adfe629dd99de1ee4e577a993 Mon Sep 17 00:00:00 2001 From: German Attanasio Ruiz Date: Fri, 7 Apr 2017 17:19:51 -0400 Subject: [PATCH 17/19] :memo: Update CHANGELOG.md --- CHANGELOG.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 95358608e27..31460366ce8 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,19 @@ Change Log ========== +## Version 3.7.2 + +_2017-04-07_ + + * New: Provide a specific document Id when creating a document d581c3f + * New: NLU: Add model for disambiguation and property in EntitiesResults 8acb411 + * New: Add test for disambiguation info 9328c5f + * Fix: Discovery: create or update a document from an InputStream and optionally spec… … ab2f413 + * Fix: Add README.md for Natural Language Understanding 4e53c8f + * Fix: 👕 Checkstyle Verified a95c68d + * Fix: TTS Synthesize using POST, fixes #635 and #602 Verified 5ae0d24 + * Fix: Language translator, update service name Verified 37abc86 + ## Version 3.7.1 _2017-03-31_ From ada8029d2a7cfe5e3f6c3b630beedf67ce2a3ada Mon Sep 17 00:00:00 2001 From: German Attanasio Ruiz Date: Fri, 7 Apr 2017 17:22:38 -0400 Subject: [PATCH 18/19] :t-shirt: Fix training space --- .../watson/developer_cloud/text_to_speech/v1/TextToSpeech.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text-to-speech/src/main/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeech.java b/text-to-speech/src/main/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeech.java index 72d09bc77f9..4f490ac3ae5 100755 --- a/text-to-speech/src/main/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeech.java +++ b/text-to-speech/src/main/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeech.java @@ -222,7 +222,7 @@ public ServiceCall synthesize(final String text, final Voice voice, JsonObject jsonText = new JsonObject(); jsonText.addProperty(TEXT, text); request.bodyJson(jsonText); - + request.query(VOICE, voice.getName()); request.query(ACCEPT, audioFormat != null ? audioFormat : AudioFormat.WAV); From ce323d7024ad6369fbf7cad53b093b9cd9011b45 Mon Sep 17 00:00:00 2001 From: German Attanasio Ruiz Date: Fri, 7 Apr 2017 17:34:50 -0400 Subject: [PATCH 19/19] :tshirt: Fix check style in test case --- .../developer_cloud/text_to_speech/v1/TextToSpeechTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechTest.java b/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechTest.java index dcd1512e593..c6475e6a69f 100644 --- a/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechTest.java +++ b/text-to-speech/src/test/java/com/ibm/watson/developer_cloud/text_to_speech/v1/TextToSpeechTest.java @@ -197,7 +197,7 @@ public void testSynthesize() throws IOException, InterruptedException { final RecordedRequest request = server.takeRequest(); final HttpUrl requestUrl = HttpUrl.parse("http://www.example.com" + request.getPath()); - assertEquals(request.getBody().readUtf8(),"{\"text\":\""+text+"\"}"); + assertEquals(request.getBody().readUtf8(), "{\"text\":\"" + text + "\"}"); assertEquals(SYNTHESIZE_PATH, requestUrl.encodedPath()); assertEquals(Voice.EN_LISA.getName(), requestUrl.queryParameter("voice")); assertEquals(HttpMediaType.AUDIO_PCM + "; rate=16000", requestUrl.queryParameter("accept"));