Updated serialization utilities
Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/574e1033 Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/574e1033 Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/574e1033 Branch: refs/heads/master Commit: 574e10338c1adde054c411cb12d5efd55eaaf1cb Parents: 41a04f9 Author: mfranklin <[email protected]> Authored: Mon Mar 31 23:30:48 2014 -0400 Committer: mfranklin <[email protected]> Committed: Mon Mar 31 23:30:48 2014 -0400 ---------------------------------------------------------------------- .../apache/streams/data/util/RFC3339Utils.java | 9 ++++---- .../jackson/StreamsDateTimeDeserializer.java | 23 ++------------------ .../jackson/StreamsDateTimeSerializer.java | 5 ++--- .../streams/jackson/StreamsJacksonMapper.java | 2 -- .../data/data/util/DateTimeSerDeTest.java | 2 +- 5 files changed, 9 insertions(+), 32 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/574e1033/streams-pojo/src/main/java/org/apache/streams/data/util/RFC3339Utils.java ---------------------------------------------------------------------- diff --git a/streams-pojo/src/main/java/org/apache/streams/data/util/RFC3339Utils.java b/streams-pojo/src/main/java/org/apache/streams/data/util/RFC3339Utils.java index daf73a6..7af16c4 100644 --- a/streams-pojo/src/main/java/org/apache/streams/data/util/RFC3339Utils.java +++ b/streams-pojo/src/main/java/org/apache/streams/data/util/RFC3339Utils.java @@ -22,7 +22,6 @@ import org.joda.time.DateTimeZone; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; -import java.util.Locale; import java.util.TimeZone; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -43,10 +42,10 @@ public class RFC3339Utils { private static final Pattern LOCAL_SUB_SECOND = Pattern.compile(BASE + SUB_SECOND + TZ); private static final String BASE_FMT = "yyyy-MM-dd'T'HH:mm:ss"; - private static final DateTimeFormatter UTC_STANDARD_FMT = DateTimeFormat.forPattern(BASE_FMT + "'Z'").withZoneUTC(); - private static final DateTimeFormatter UTC_SUB_SECOND_FMT = DateTimeFormat.forPattern(BASE_FMT + ".SSS'Z'").withZoneUTC(); - private static final DateTimeFormatter LOCAL_STANDARD_FMT = DateTimeFormat.forPattern(BASE_FMT + "Z").withZoneUTC(); - private static final DateTimeFormatter LOCAL_SUB_SECOND_FMT = DateTimeFormat.forPattern(BASE_FMT + ".SSSZ").withZoneUTC(); + public static final DateTimeFormatter UTC_STANDARD_FMT = DateTimeFormat.forPattern(BASE_FMT + "'Z'").withZoneUTC(); + public static final DateTimeFormatter UTC_SUB_SECOND_FMT = DateTimeFormat.forPattern(BASE_FMT + ".SSS'Z'").withZoneUTC(); + public static final DateTimeFormatter LOCAL_STANDARD_FMT = DateTimeFormat.forPattern(BASE_FMT + "Z").withZoneUTC(); + public static final DateTimeFormatter LOCAL_SUB_SECOND_FMT = DateTimeFormat.forPattern(BASE_FMT + ".SSSZ").withZoneUTC(); private RFC3339Utils() {} http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/574e1033/streams-pojo/src/main/java/org/apache/streams/jackson/StreamsDateTimeDeserializer.java ---------------------------------------------------------------------- diff --git a/streams-pojo/src/main/java/org/apache/streams/jackson/StreamsDateTimeDeserializer.java b/streams-pojo/src/main/java/org/apache/streams/jackson/StreamsDateTimeDeserializer.java index 34459fd..8d56c53 100644 --- a/streams-pojo/src/main/java/org/apache/streams/jackson/StreamsDateTimeDeserializer.java +++ b/streams-pojo/src/main/java/org/apache/streams/jackson/StreamsDateTimeDeserializer.java @@ -3,11 +3,10 @@ package org.apache.streams.jackson; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.deser.std.StdDeserializer; +import org.apache.streams.data.util.RFC3339Utils; import org.joda.time.DateTime; -import org.joda.time.DateTimeZone; import java.io.IOException; -import java.util.regex.Pattern; /** * Created by sblackmon on 3/27/14. @@ -20,24 +19,6 @@ public class StreamsDateTimeDeserializer extends StdDeserializer<DateTime> { @Override public DateTime deserialize(JsonParser jpar, DeserializationContext context) throws IOException { - DateTime result = null; - - if( jpar.getCurrentToken().isNumeric() ) { - Long numberValue = jpar.getValueAsLong(); - if (numberValue != 0L) { - result = new DateTime(numberValue); - } - } - else { - String nodeValue = jpar.getValueAsString(); - if (nodeValue != null) { - result = StreamsJacksonMapper.ACTIVITY_FORMAT.parseDateTime(nodeValue); - } - } - - if( result == null ) - throw new IOException(" could not deserialize " + jpar.toString()); - - return result; + return RFC3339Utils.parseUTC(jpar.getValueAsString()); } } http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/574e1033/streams-pojo/src/main/java/org/apache/streams/jackson/StreamsDateTimeSerializer.java ---------------------------------------------------------------------- diff --git a/streams-pojo/src/main/java/org/apache/streams/jackson/StreamsDateTimeSerializer.java b/streams-pojo/src/main/java/org/apache/streams/jackson/StreamsDateTimeSerializer.java index 08a3caf..4677fce 100644 --- a/streams-pojo/src/main/java/org/apache/streams/jackson/StreamsDateTimeSerializer.java +++ b/streams-pojo/src/main/java/org/apache/streams/jackson/StreamsDateTimeSerializer.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.core.JsonGenerationException; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import org.apache.streams.data.util.RFC3339Utils; import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; @@ -22,8 +23,6 @@ public class StreamsDateTimeSerializer extends StdSerializer<DateTime> { @Override public void serialize(DateTime value, JsonGenerator jgen, SerializerProvider provider) throws IOException { - long timestamp = value.getMillis(); - String result = StreamsJacksonMapper.ACTIVITY_FORMAT.print(timestamp); - jgen.writeString(result); + jgen.writeString(RFC3339Utils.format(value)); } } http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/574e1033/streams-pojo/src/main/java/org/apache/streams/jackson/StreamsJacksonMapper.java ---------------------------------------------------------------------- diff --git a/streams-pojo/src/main/java/org/apache/streams/jackson/StreamsJacksonMapper.java b/streams-pojo/src/main/java/org/apache/streams/jackson/StreamsJacksonMapper.java index 4b0c2d5..275ed7e 100644 --- a/streams-pojo/src/main/java/org/apache/streams/jackson/StreamsJacksonMapper.java +++ b/streams-pojo/src/main/java/org/apache/streams/jackson/StreamsJacksonMapper.java @@ -21,8 +21,6 @@ import java.io.IOException; */ public class StreamsJacksonMapper extends ObjectMapper { - public static final DateTimeFormatter ACTIVITY_FORMAT = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); - private static final StreamsJacksonMapper INSTANCE = new StreamsJacksonMapper(); public static StreamsJacksonMapper getInstance(){ http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/574e1033/streams-pojo/src/test/java/org/apache/streams/data/data/util/DateTimeSerDeTest.java ---------------------------------------------------------------------- diff --git a/streams-pojo/src/test/java/org/apache/streams/data/data/util/DateTimeSerDeTest.java b/streams-pojo/src/test/java/org/apache/streams/data/data/util/DateTimeSerDeTest.java index 217abd4..fe1a6b6 100644 --- a/streams-pojo/src/test/java/org/apache/streams/data/data/util/DateTimeSerDeTest.java +++ b/streams-pojo/src/test/java/org/apache/streams/data/data/util/DateTimeSerDeTest.java @@ -48,7 +48,7 @@ public class DateTimeSerDeTest { @Test public void testActivityStringDeser() { String output = "2012-01-17T21:21:46.000Z"; - long inputMillis = 1326856906000l; + long inputMillis = 1326835306000L; DateTime input; try { input = new DateTime(inputMillis);
