You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2018/01/20 06:01:47 UTC

[incubator-servicecomb-java-chassis] 08/10: SCB-266 make ISO8601 date support millis

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 <wu...@huawei.com>
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
"commits@servicecomb.apache.org" <co...@servicecomb.apache.org>.