This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git
commit 264c11fb2fbd45db09a28c74f9727dcc9abc1086 Author: wujimin <[email protected]> AuthorDate: Sat Jan 20 11:50:36 2018 +0800 SCB-266 make ISO8601 date support millis --- .../servicecomb/common/rest/codec/RestObjectMapper.java | 17 ++++++++++++++++- .../common/rest/codec/param/TestCookieProcessor.java | 2 +- .../common/rest/codec/param/TestHeaderProcessor.java | 2 +- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/RestObjectMapper.java b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/RestObjectMapper.java index 3e27916..ee48c49 100644 --- a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/RestObjectMapper.java +++ b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/RestObjectMapper.java @@ -17,6 +17,9 @@ package org.apache.servicecomb.common.rest.codec; +import java.text.FieldPosition; +import java.util.Date; + import com.fasterxml.jackson.core.JsonParser.Feature; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.JavaType; @@ -24,6 +27,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.type.TypeFactory; import com.fasterxml.jackson.databind.util.ISO8601DateFormat; +import com.fasterxml.jackson.databind.util.ISO8601Utils; public final class RestObjectMapper extends ObjectMapper { public static final RestObjectMapper INSTANCE = new RestObjectMapper(); @@ -34,7 +38,18 @@ public final class RestObjectMapper extends ObjectMapper { private RestObjectMapper() { // swagger中要求date使用ISO8601格式传递,这里与之做了功能绑定,这在cse中是没有问题的 - setDateFormat(new ISO8601DateFormat()); + setDateFormat(new ISO8601DateFormat() { + private static final long serialVersionUID = 7798938088541203312L; + + // to support millis + @Override + public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) { + String value = ISO8601Utils.format(date, true); + toAppendTo.append(value); + return toAppendTo; + } + }); + getFactory().disable(Feature.AUTO_CLOSE_SOURCE); disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); disable(SerializationFeature.FAIL_ON_EMPTY_BEANS); diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestCookieProcessor.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestCookieProcessor.java index 59fc821..e896369 100644 --- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestCookieProcessor.java +++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestCookieProcessor.java @@ -131,7 +131,7 @@ public class TestCookieProcessor { @Test public void testSetValueDate() throws Exception { Date date = new Date(); - String strDate = ISO8601Utils.format(date); + String strDate = ISO8601Utils.format(date, true); createClientRequest(); diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestHeaderProcessor.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestHeaderProcessor.java index 1e9d9fa..649fa72 100644 --- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestHeaderProcessor.java +++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestHeaderProcessor.java @@ -173,7 +173,7 @@ public class TestHeaderProcessor { @Test public void testSetValueDate() throws Exception { Date date = new Date(); - String strDate = ISO8601Utils.format(date); + String strDate = ISO8601Utils.format(date, true); createClientRequest(); -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
