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>.