From 1b291a5ab898497edcc6dd34f886c522e249db62 Mon Sep 17 00:00:00 2001 From: German Attanasio Ruiz Date: Mon, 24 Apr 2017 14:58:23 -0400 Subject: [PATCH 1/3] :new: Add cursor parser as a workaround due to lack of service support :bug: Remove unused variables :new: Adding another date parser for Conversation :fix: Add Enums to WorkspaceExportResponse #670 Print timezone when printing Json :fix: Fix Javadoc Remove useless testCompile projects from dialog :memo: Update javadoc :fire: revert data deserializer changes --- .../conversation/v1/model/CreateEntity.java | 1 + .../conversation/v1/model/CreateIntent.java | 1 + .../conversation/v1/model/CreateValue.java | 1 + .../v1/model/CreateWorkspace.java | 4 + .../v1/model/PaginationResponse.java | 25 ++++++ .../v1/model/UpdateWorkspace.java | 4 + .../v1/model/WorkspaceExportResponse.java | 28 ++++++- .../util/PaginationResponseTypeAdapter.java | 83 +++++++++++++++++++ .../v1/ConversationServiceIT.java | 8 +- .../PaginationResponseTypeAdapterTest.java | 67 +++++++++++++++ .../resources/conversation/conversation.json | 4 +- .../resources/conversation/pagination.json | 4 + .../util/DateDeserializerTest.java | 13 +-- dialog/build.gradle | 11 --- 14 files changed, 222 insertions(+), 32 deletions(-) create mode 100644 conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/util/PaginationResponseTypeAdapter.java create mode 100644 conversation/src/test/java/com/ibm/watson/developer_cloud/conversation/v1/model/util/PaginationResponseTypeAdapterTest.java create mode 100644 conversation/src/test/resources/conversation/pagination.json diff --git a/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/CreateEntity.java b/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/CreateEntity.java index 7da4319d458..6215bec1fc5 100644 --- a/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/CreateEntity.java +++ b/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/CreateEntity.java @@ -62,6 +62,7 @@ public CreateEntity build() { * Adds an values to values. * * @param values the new values + * @return the builder */ public Builder values(CreateValue values) { if (this.values == null) { diff --git a/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/CreateIntent.java b/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/CreateIntent.java index 56e87055442..27f9c3fd1ad 100644 --- a/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/CreateIntent.java +++ b/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/CreateIntent.java @@ -62,6 +62,7 @@ public CreateIntent build() { * Adds an examples to examples. * * @param examples the new examples + * @return the builder */ public Builder examples(CreateExample examples) { if (this.examples == null) { diff --git a/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/CreateValue.java b/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/CreateValue.java index 20030319609..a1b044a1d0b 100644 --- a/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/CreateValue.java +++ b/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/CreateValue.java @@ -63,6 +63,7 @@ public CreateValue build() { * Adds an synonyms to synonyms. * * @param synonyms the new synonyms + * @return the builder */ public Builder synonyms(String synonyms) { if (this.synonyms == null) { diff --git a/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/CreateWorkspace.java b/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/CreateWorkspace.java index 422e4eb52ae..dc7bfa5639c 100644 --- a/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/CreateWorkspace.java +++ b/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/CreateWorkspace.java @@ -84,6 +84,7 @@ public CreateWorkspace build() { * Adds an intents to intents. * * @param intents the new intents + * @return the builder */ public Builder intents(CreateIntent intents) { if (this.intents == null) { @@ -97,6 +98,7 @@ public Builder intents(CreateIntent intents) { * Adds an entities to entities. * * @param entities the new entities + * @return the builder */ public Builder entities(CreateEntity entities) { if (this.entities == null) { @@ -110,6 +112,7 @@ public Builder entities(CreateEntity entities) { * Adds an dialogNodes to dialogNodes. * * @param dialogNodes the new dialogNodes + * @return the builder */ public Builder dialogNodes(CreateDialogNode dialogNodes) { if (this.dialogNodes == null) { @@ -123,6 +126,7 @@ public Builder dialogNodes(CreateDialogNode dialogNodes) { * Adds an counterexamples to counterexamples. * * @param counterexamples the new counterexamples + * @return the builder */ public Builder counterexamples(CreateExample counterexamples) { if (this.counterexamples == null) { diff --git a/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/PaginationResponse.java b/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/PaginationResponse.java index b654253b617..df0f92424a4 100644 --- a/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/PaginationResponse.java +++ b/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/PaginationResponse.java @@ -12,12 +12,15 @@ */ package com.ibm.watson.developer_cloud.conversation.v1.model; +import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; +import com.ibm.watson.developer_cloud.conversation.v1.model.util.PaginationResponseTypeAdapter; import com.ibm.watson.developer_cloud.service.model.GenericModel; /** * The pagination data for the returned objects. */ +@JsonAdapter(PaginationResponseTypeAdapter.class) public class PaginationResponse extends GenericModel { /** The URL that will return the same page of results. */ @@ -31,6 +34,28 @@ public class PaginationResponse extends GenericModel { /** Reserved for future use. */ private Long matched; + /** A token identifying the last value from the previous page of results. */ + private String cursor; + + /** + * Gets the cursor. + * A token identifying the last value from the previous page of results. + * + * @return the cursor + */ + public String getCursor() { + return cursor; + } + + /** + * Sets the cursor. + * + * @param cursor the new cursor + */ + public void setCursor(String cursor) { + this.cursor = cursor; + } + /** * Gets the refreshUrl. * diff --git a/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/UpdateWorkspace.java b/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/UpdateWorkspace.java index 3eea0700b74..5d93c4b45be 100644 --- a/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/UpdateWorkspace.java +++ b/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/UpdateWorkspace.java @@ -84,6 +84,7 @@ public UpdateWorkspace build() { * Adds an intents to intents. * * @param intents the new intents + * @return the builder */ public Builder intents(CreateIntent intents) { if (this.intents == null) { @@ -97,6 +98,7 @@ public Builder intents(CreateIntent intents) { * Adds an entities to entities. * * @param entities the new entities + * @return the builder */ public Builder entities(CreateEntity entities) { if (this.entities == null) { @@ -110,6 +112,7 @@ public Builder entities(CreateEntity entities) { * Adds an dialogNodes to dialogNodes. * * @param dialogNodes the new dialogNodes + * @return the builder */ public Builder dialogNodes(CreateDialogNode dialogNodes) { if (this.dialogNodes == null) { @@ -123,6 +126,7 @@ public Builder dialogNodes(CreateDialogNode dialogNodes) { * Adds an counterexamples to counterexamples. * * @param counterexamples the new counterexamples + * @return the builder */ public Builder counterexamples(CreateExample counterexamples) { if (this.counterexamples == null) { diff --git a/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/WorkspaceExportResponse.java b/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/WorkspaceExportResponse.java index f27e5c505dc..c339bbd3dde 100644 --- a/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/WorkspaceExportResponse.java +++ b/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/WorkspaceExportResponse.java @@ -24,6 +24,28 @@ */ public class WorkspaceExportResponse extends GenericModel { + + /** + * Classifier Status. + */ + public enum Status { + + /** The available. */ + @SerializedName("Available") AVAILABLE, + + /** The failed. */ + @SerializedName("Failed") FAILED, + + /** The non existent. */ + @SerializedName("Non Existent") NON_EXISTENT, + + /** The training. */ + @SerializedName("Training") TRAINING, + + /** The unavailable. */ + @SerializedName("Unavailable") UNAVAILABLE + } + /** The name of the workspace. */ private String name; /** The description of the workspace. */ @@ -40,7 +62,7 @@ public class WorkspaceExportResponse extends GenericModel { @SerializedName("workspace_id") private String workspaceId; /** The current status of the workspace (`Non Existent`, `Training`, `Failed`, `Available`, or `Unavailable`). */ - private String status; + private Status status; /** An array of intents. */ private List intents; /** An array of entities. */ @@ -116,7 +138,7 @@ public String getWorkspaceId() { * * @return the status */ - public String getStatus() { + public Status getStatus() { return status; } @@ -215,7 +237,7 @@ public void setWorkspaceId(final String workspaceId) { * * @param status the new status */ - public void setStatus(final String status) { + public void setStatus(final Status status) { this.status = status; } diff --git a/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/util/PaginationResponseTypeAdapter.java b/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/util/PaginationResponseTypeAdapter.java new file mode 100644 index 00000000000..e64fd582a4a --- /dev/null +++ b/conversation/src/main/java/com/ibm/watson/developer_cloud/conversation/v1/model/util/PaginationResponseTypeAdapter.java @@ -0,0 +1,83 @@ +/* + * 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.conversation.v1.model.util; + +import java.io.IOException; + +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonToken; +import com.google.gson.stream.JsonWriter; +import com.ibm.watson.developer_cloud.conversation.v1.model.PaginationResponse; +import com.ibm.watson.developer_cloud.util.RequestUtils; + +import okhttp3.HttpUrl; + +/** + * Type adapter to transform JSON into a {@link PaginationResponse} and vice versa. + */ +public class PaginationResponseTypeAdapter extends TypeAdapter { + private static final String MATCHED = "matched"; + private static final String TOTAL = "total"; + private static final String NEXT_URL = "next_url"; + private static final String REFRESH_URL = "refresh_url"; + private static final String CURSOR = "cursor"; + + /* (non-Javadoc) + * @see com.google.gson.TypeAdapter#write(com.google.gson.stream.JsonWriter, java.lang.Object) + */ + @Override + public void write(JsonWriter writer, PaginationResponse pagination) throws IOException { + writer.beginObject(); + writer.name(REFRESH_URL).value(pagination.getRefreshUrl()); + writer.name(NEXT_URL).value(pagination.getNextUrl()); + writer.name(TOTAL).value(pagination.getTotal()); + writer.name(MATCHED).value(pagination.getMatched()); + writer.endObject(); + writer.flush(); + } + + /* (non-Javadoc) + * @see com.google.gson.TypeAdapter#read(com.google.gson.stream.JsonReader) + */ + @Override + public PaginationResponse read(JsonReader reader) throws IOException { + if (reader.peek() == JsonToken.NULL) { + reader.nextNull(); + return null; + } + reader.beginObject(); + PaginationResponse pagination = new PaginationResponse(); + while (reader.hasNext()) { + String name = reader.nextName(); + if (name.equals(REFRESH_URL)) { + pagination.setRefreshUrl(reader.nextString()); + } else if (name.equals(NEXT_URL)) { + String nextUrl = reader.nextString(); + HttpUrl url = HttpUrl.parse(RequestUtils.DEFAULT_ENDPOINT + nextUrl); + pagination.setCursor(url.queryParameter(CURSOR)); + pagination.setNextUrl(nextUrl); + } else if (name.equals(TOTAL)) { + pagination.setTotal(reader.nextLong()); + } else if (name.equals(MATCHED)) { + pagination.setMatched(reader.nextLong()); + } else { + reader.skipValue(); + } + } + reader.endObject(); + + return pagination; + } +} 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 8941f00d97d..297d2bad2b5 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 @@ -201,7 +201,7 @@ public void testDeleteCounterexample() { service.deleteCounterexample(workspaceId, counterExampleText).execute(); try { - ExampleResponse response = service.getCounterexample(workspaceId, counterExampleText).execute(); + service.getCounterexample(workspaceId, counterExampleText).execute(); fail("deleteCounterexample failed"); } catch (Exception ex) { // Expected result @@ -386,7 +386,7 @@ public void testDeleteExample() { service.deleteExample(workspaceId, exampleIntent, exampleText).execute(); try { - ExampleResponse response = service.getExample(workspaceId, exampleIntent, exampleText).execute(); + service.getExample(workspaceId, exampleIntent, exampleText).execute(); fail("deleteCounterexample failed"); } catch (Exception ex) { // Expected result @@ -587,7 +587,7 @@ public void testDeleteIntent() { service.deleteIntent(workspaceId, intentName).execute(); try { - IntentExportResponse response = service.getIntent(workspaceId, intentName, false).execute(); + service.getIntent(workspaceId, intentName, false).execute(); fail("deleteIntent failed"); } catch (Exception ex) { // Expected result @@ -931,7 +931,7 @@ public void testDeleteWorkspace() { service.deleteWorkspace(workspaceId).execute(); - WorkspaceExportResponse exResponse = service.getWorkspace(workspaceId, true).execute(); + service.getWorkspace(workspaceId, true).execute(); } catch (Exception ex) { // Expected result assertTrue(ex instanceof NotFoundException); diff --git a/conversation/src/test/java/com/ibm/watson/developer_cloud/conversation/v1/model/util/PaginationResponseTypeAdapterTest.java b/conversation/src/test/java/com/ibm/watson/developer_cloud/conversation/v1/model/util/PaginationResponseTypeAdapterTest.java new file mode 100644 index 00000000000..3227d1a7f06 --- /dev/null +++ b/conversation/src/test/java/com/ibm/watson/developer_cloud/conversation/v1/model/util/PaginationResponseTypeAdapterTest.java @@ -0,0 +1,67 @@ +/* + * 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.conversation.v1.model.util; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import java.io.FileNotFoundException; +import java.io.IOException; + +import org.junit.Test; + +import com.ibm.watson.developer_cloud.WatsonServiceUnitTest; +import com.ibm.watson.developer_cloud.conversation.v1.model.PaginationResponse; +import com.ibm.watson.developer_cloud.util.GsonSingleton; + +/** + * The Class PaginationResponseTypeAdapterTest. + */ +public class PaginationResponseTypeAdapterTest extends WatsonServiceUnitTest { + private static final String FIXTURE = "src/test/resources/conversation/pagination.json"; + + /* (non-Javadoc) + * @see com.ibm.watson.developer_cloud.WatsonServiceUnitTest#setUp() + */ + @Override + public void setUp() throws Exception { } + + /* (non-Javadoc) + * @see com.ibm.watson.developer_cloud.WatsonServiceUnitTest#tearDown() + */ + @Override + public void tearDown() throws IOException { } + + /** + * Test parse type adapter. + * + * @throws FileNotFoundException the file not found exception + */ + @Test + public void testParseTypeAdapter() throws FileNotFoundException { + PaginationResponse pagination = loadFixture(FIXTURE, PaginationResponse.class); + assertEquals(pagination.getCursor(), "batman"); + } + + /** + * Test write type adapter. + * + * @throws FileNotFoundException the file not found exception + */ + @Test + public void testWriteTypeAdapter() throws FileNotFoundException { + PaginationResponse pagination = loadFixture(FIXTURE, PaginationResponse.class); + assertNotNull(GsonSingleton.getGson().toJson(pagination), pagination.toString()); + } +} diff --git a/conversation/src/test/resources/conversation/conversation.json b/conversation/src/test/resources/conversation/conversation.json index cbe3c30c237..415e6bbac46 100644 --- a/conversation/src/test/resources/conversation/conversation.json +++ b/conversation/src/test/resources/conversation/conversation.json @@ -16,10 +16,8 @@ "text": "I'd like to get insurance to for my home" }, "context": { - }, - "output": { "text": ["Do you want to get a quote?"] } -} \ No newline at end of file +} diff --git a/conversation/src/test/resources/conversation/pagination.json b/conversation/src/test/resources/conversation/pagination.json new file mode 100644 index 00000000000..3587f617f80 --- /dev/null +++ b/conversation/src/test/resources/conversation/pagination.json @@ -0,0 +1,4 @@ +{ + "refresh_url": "/v1/workspaces/pizza_app-e0f3/counterexamples?version=2017-12-18&page_limit=2", + "next_url": "/v1/workspaces/pizza_app-e0f3/counterexamples?cursor=batman&version=2017-12-18&page_limit=2" +} diff --git a/core/src/test/java/com/ibm/watson/developer_cloud/util/DateDeserializerTest.java b/core/src/test/java/com/ibm/watson/developer_cloud/util/DateDeserializerTest.java index de6f2f6162f..8f1d2a44e75 100644 --- a/core/src/test/java/com/ibm/watson/developer_cloud/util/DateDeserializerTest.java +++ b/core/src/test/java/com/ibm/watson/developer_cloud/util/DateDeserializerTest.java @@ -26,24 +26,15 @@ import java.util.Date; /** - * The Class DateDeserializerTest. + * Test the Date deserializer. */ public class DateDeserializerTest { /** - * Test deserialize. + * Test date deserializer. */ @Test public void testDeserialize() { -// String[] dateStrings = { -// "2016-06-20T04:25:16.218+0000", -// "2016-06-20T04:25:16", -// "2016-06-20T04:25:16.218Z", -// "2015-05-28T18:01:57Z", -// "2016-06-20T04:25:16.218+0000", -// "1478097789", -// "1478097789000" -// }; DateDeserializer deserializer = new DateDeserializer(); JsonParser parser = new JsonParser(); diff --git a/dialog/build.gradle b/dialog/build.gradle index 89fb4be4299..e7651b2505b 100644 --- a/dialog/build.gradle +++ b/dialog/build.gradle @@ -77,17 +77,6 @@ dependencies { compile group: 'org.glassfish.jersey.bundles.repackaged', name: 'jersey-jsr166e', version: '2.22.2' testCompile project(path: ':core', configuration: 'tests') - testCompile project(':alchemy') - testCompile project(':document-conversion') - testCompile project(':language-translation') - testCompile project(':natural-language-classifier') - testCompile project(':personality-insights') - testCompile project(':retrieve-and-rank') - testCompile project(':speech-to-text') - testCompile project(':text-to-speech') - testCompile project(':tone-analyzer') - testCompile project(':tradeoff-analytics') - testCompile project(':visual-recognition') testCompile group: 'com.squareup.okhttp3', name: 'mockwebserver', version: '3.6.0' testCompile group: 'ch.qos.logback', name: 'logback-classic', version: '1.1.7' testCompile group: 'com.google.guava', name: 'guava', version: '19.0' From e4729103bde7efd6bc4e3e799a94c3d4fe9280e9 Mon Sep 17 00:00:00 2001 From: German Attanasio Ruiz Date: Mon, 24 Apr 2017 14:59:18 -0400 Subject: [PATCH 2/3] :new: Adding another date parser for Conversation --- .../watson/developer_cloud/util/DateDeserializer.java | 6 ++++-- .../developer_cloud/util/DateDeserializerTest.java | 10 ++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/com/ibm/watson/developer_cloud/util/DateDeserializer.java b/core/src/main/java/com/ibm/watson/developer_cloud/util/DateDeserializer.java index 8187758375c..be8ecb2c787 100644 --- a/core/src/main/java/com/ibm/watson/developer_cloud/util/DateDeserializer.java +++ b/core/src/main/java/com/ibm/watson/developer_cloud/util/DateDeserializer.java @@ -36,7 +36,8 @@ public class DateDeserializer implements JsonDeserializer { private static final String DATE_FROM_DIALOG = "yyyy-MM-dd HH:mm:ss"; /** The Constant DATE_UTC. */ - protected static final String DATE_UTC = "yyyy-MM-dd'T'HH:mm:ss.SSS"; + public static final String DATE_UTC = "yyyy-MM-dd'T'HH:mm:ss.SSS"; + private static final String DATE_UTC_WITH_TS = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"; private static final String DATE_WITHOUT_SECONDS = "yyyy-MM-dd'T'HH:mm:ssZ"; private static final String DATE_WITH_SECONDS = "yyyy-MM-dd'T'HH:mm:ss"; private static final String DATE_8601 = "yyyy-MM-dd'T'HH:mm:ss.SSSX"; @@ -50,13 +51,14 @@ public class DateDeserializer implements JsonDeserializer { private final SimpleDateFormat utcWithSecondsDateFormatter = new SimpleDateFormat(DATE_WITH_SECONDS); private final SimpleDateFormat iso8601DateFormatter = new SimpleDateFormat(DATE_8601); private final SimpleDateFormat iso8601WithoutMsDateFormatter = new SimpleDateFormat(DATE_8601_WITHOUT_MS); + private final SimpleDateFormat utcWithTsFormatter = new SimpleDateFormat(DATE_UTC_WITH_TS); private final List dateFormatters = Arrays.asList(utcDateFormatter, utcWithoutSecondsDateFormatter, dialogDateFormatter, alchemyDateFormatter, utcWithSecondsDateFormatter); private final List iso8601Formatters = - Arrays.asList(iso8601DateFormatter, iso8601WithoutMsDateFormatter); + Arrays.asList(utcWithTsFormatter, iso8601DateFormatter, iso8601WithoutMsDateFormatter); private static final Logger LOG = Logger.getLogger(DateDeserializer.class.getName()); diff --git a/core/src/test/java/com/ibm/watson/developer_cloud/util/DateDeserializerTest.java b/core/src/test/java/com/ibm/watson/developer_cloud/util/DateDeserializerTest.java index 8f1d2a44e75..e2cd072b784 100644 --- a/core/src/test/java/com/ibm/watson/developer_cloud/util/DateDeserializerTest.java +++ b/core/src/test/java/com/ibm/watson/developer_cloud/util/DateDeserializerTest.java @@ -38,6 +38,16 @@ public void testDeserialize() { DateDeserializer deserializer = new DateDeserializer(); JsonParser parser = new JsonParser(); + + // Date with MS and 3 digit and Z + try { + String dateString = "2017-04-23T19:09:46.712Z"; + JsonElement element = parser.parse("\"" + dateString + "\""); + assertNotNull(deserializer.deserialize(element, null, null)); + } catch (Exception ex) { + fail(ex.getMessage()); + } + // Date with MS and 3 digit TZ try { String dateString = "2016-06-20T04:25:16.218+000"; From d7435fa9655e291a1c5c9031b794ad9f0b6b307c Mon Sep 17 00:00:00 2001 From: German Attanasio Ruiz Date: Mon, 24 Apr 2017 20:57:56 -0400 Subject: [PATCH 3/3] 3.8.0 --- CHANGELOG.md | 18 ++++++++++++++++++ README.md | 14 +++++++------- alchemy/README.md | 4 ++-- conversation/README.md | 4 ++-- discovery/README.md | 4 ++-- document-conversion/README.md | 4 ++-- 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, 55 insertions(+), 37 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 31460366ce8..208e305d6bd 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,24 @@ Change Log ========== +## Version 3.8.0 + +_2017-04-24_ + +* New: Add support for workspaces in Conversation 1b291a5 +* New: Update okhttp version to 3.7.0 7912344 +* New: Change WAV to WebM in comments in test-to-speech 4535c70 +* New: Add support for Customer Care API endpoint for Tone Analyzer 7a5fcfe +* New: Add new audio format to text-to-speech 07a375e +* New: Add new audio format to speech-to-text 1c93196 +* Fix: Enable cipher suites 4b51aee +* Fix: Enable all TLS protocols 842383b +* Fix: Use `target` in language translator Fixes #655 999f04c +* Fix: Date deserialization for ISO 8601 dates with Z timezone 6c870dc +* Fix: SerializedName annotation for configuration id and test dd0ec53 +* Fix: Fix NLU example 8c33f2b + + ## Version 3.7.2 _2017-04-07_ diff --git a/README.md b/README.md index cead2e48e09..2810517fea5 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ All the services: com.ibm.watson.developer_cloud java-sdk - 3.7.2 + 3.8.0 ``` @@ -63,7 +63,7 @@ Only Retrieve and Rank: com.ibm.watson.developer_cloud retrieve-and-rank - 3.7.2 + 3.8.0 ``` @@ -71,17 +71,17 @@ Only Retrieve and Rank: All the services: ```gradle -'com.ibm.watson.developer_cloud:java-sdk:3.7.2' +'com.ibm.watson.developer_cloud:java-sdk:3.8.0' ``` Only Retrieve and Rank: ```gradle -'com.ibm.watson.developer_cloud:retrieve-and-rank:3.7.2' +'com.ibm.watson.developer_cloud:retrieve-and-rank:3.8.0' ``` Only Visual Recognition: ```gradle -'com.ibm.watson.developer_cloud:visual-recognition:3.7.2' +'com.ibm.watson.developer_cloud:visual-recognition:3.8.0' ``` 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.2.jar) + $ gradle jar # build jar file (build/libs/watson-developer-cloud-3.8.0.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.2/java-sdk-3.7.2-jar-with-dependencies.jar +[jar]: https://github.com/watson-developer-cloud/java-sdk/releases/download/java-sdk-3.8.0/java-sdk-3.8.0-jar-with-dependencies.jar diff --git a/alchemy/README.md b/alchemy/README.md index 0c98ff86223..5b62ffe95f2 100644 --- a/alchemy/README.md +++ b/alchemy/README.md @@ -7,13 +7,13 @@ com.ibm.watson.developer_cloud alchemy - 3.7.2 + 3.8.0 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:alchemy:3.7.2' +'com.ibm.watson.developer_cloud:alchemy:3.8.0' ``` ## Alchemy Language diff --git a/conversation/README.md b/conversation/README.md index 71d31b5913d..d836fbb787a 100644 --- a/conversation/README.md +++ b/conversation/README.md @@ -7,13 +7,13 @@ com.ibm.watson.developer_cloud conversation - 3.7.2 + 3.8.0 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:conversation:3.7.2' +'com.ibm.watson.developer_cloud:conversation:3.8.0' ``` ## Usage diff --git a/discovery/README.md b/discovery/README.md index cf3521ab2b1..679e6d483c2 100644 --- a/discovery/README.md +++ b/discovery/README.md @@ -7,13 +7,13 @@ com.ibm.watson.developer_cloud discovery - 3.7.2 + 3.8.0 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:discovery:3.7.2' +'com.ibm.watson.developer_cloud:discovery:3.8.0' ``` ## Usage diff --git a/document-conversion/README.md b/document-conversion/README.md index be42e5f198b..6fc5333e663 100644 --- a/document-conversion/README.md +++ b/document-conversion/README.md @@ -7,13 +7,13 @@ com.ibm.watson.developer_cloud document-conversion - 3.7.2 + 3.8.0 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:document-conversion:3.7.2' +'com.ibm.watson.developer_cloud:document-conversion:3.8.0' ``` ## Usage diff --git a/language-translation/README.md b/language-translation/README.md index 8ca7afe0cc8..c5998507144 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.2 + 3.8.0 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:language-translator:3.7.2' +'com.ibm.watson.developer_cloud:language-translator:3.8.0' ``` ## Usage diff --git a/language-translator/README.md b/language-translator/README.md index 8ca7afe0cc8..c5998507144 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.2 + 3.8.0 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:language-translator:3.7.2' +'com.ibm.watson.developer_cloud:language-translator:3.8.0' ``` ## Usage diff --git a/natural-language-classifier/README.md b/natural-language-classifier/README.md index 973125d3e78..121d517cd8b 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.2 + 3.8.0 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:natural-language-classifier:3.7.2' +'com.ibm.watson.developer_cloud:natural-language-classifier:3.8.0' ``` ## Usage diff --git a/natural-language-understanding/README.md b/natural-language-understanding/README.md index 4c7b67be23a..c2382dd9075 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.2 + 3.8.0 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:natural-language-understanding:3.7.2' +'com.ibm.watson.developer_cloud:natural-language-understanding:3.8.0' ``` ## Usage diff --git a/personality-insights/README.md b/personality-insights/README.md index e67105e1f28..d3a0ac6405a 100644 --- a/personality-insights/README.md +++ b/personality-insights/README.md @@ -7,13 +7,13 @@ com.ibm.watson.developer_cloud personality-insights - 3.7.2 + 3.8.0 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:personality-insights:3.7.2' +'com.ibm.watson.developer_cloud:personality-insights:3.8.0' ``` ## Usage diff --git a/retrieve-and-rank/README.md b/retrieve-and-rank/README.md index 0f261cc79bb..9edc33d8815 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.2 + 3.8.0 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:retrieve-and-rank:3.7.2' +'com.ibm.watson.developer_cloud:retrieve-and-rank:3.8.0' ``` ## Usage diff --git a/speech-to-text/README.md b/speech-to-text/README.md index bf00dea16f9..b298bf9fd9a 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.2 + 3.8.0 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:speech-to-text:3.7.2' +'com.ibm.watson.developer_cloud:speech-to-text:3.8.0' ``` ## Usage diff --git a/text-to-speech/README.md b/text-to-speech/README.md index 6c4da065f5c..51f03519635 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.2 + 3.8.0 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:text-to-speech:3.7.2' +'com.ibm.watson.developer_cloud:text-to-speech:3.8.0' ``` ## Usage diff --git a/tone-analyzer/README.md b/tone-analyzer/README.md index c645aa256da..c183f412879 100644 --- a/tone-analyzer/README.md +++ b/tone-analyzer/README.md @@ -7,13 +7,13 @@ com.ibm.watson.developer_cloud tone-analyzer - 3.7.2 + 3.8.0 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:tone-analyzer:3.7.2' +'com.ibm.watson.developer_cloud:tone-analyzer:3.8.0' ``` ## Usage diff --git a/tradeoff-analytics/README.md b/tradeoff-analytics/README.md index a90d1fdc3e0..5dbad2e5de3 100644 --- a/tradeoff-analytics/README.md +++ b/tradeoff-analytics/README.md @@ -7,13 +7,13 @@ com.ibm.watson.developer_cloud tradeoff-analytics - 3.7.2 + 3.8.0 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:tradeoff-analytics:3.7.2' +'com.ibm.watson.developer_cloud:tradeoff-analytics:3.8.0' ``` ## Usage diff --git a/visual-recognition/README.md b/visual-recognition/README.md index 783bc6490d4..357f631a957 100644 --- a/visual-recognition/README.md +++ b/visual-recognition/README.md @@ -7,13 +7,13 @@ com.ibm.watson.developer_cloud visual-recognition - 3.7.2 + 3.8.0 ``` ##### Gradle ```gradle -'com.ibm.watson.developer_cloud:visual-recognition:3.7.2' +'com.ibm.watson.developer_cloud:visual-recognition:3.8.0' ``` ## Usage