You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streams.apache.org by sb...@apache.org on 2016/10/14 14:55:56 UTC
[1/2] incubator-streams git commit: resolves STREAMS-407
Repository: incubator-streams
Updated Branches:
refs/heads/master 3c390fd98 -> 2c1272444
resolves STREAMS-407
Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/1f5f5e7b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/1f5f5e7b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/1f5f5e7b
Branch: refs/heads/master
Commit: 1f5f5e7b8f38c5f39a7a2fbe3e69aaf486365558
Parents: a726b3c
Author: Steve Blackmon @steveblackmon <sb...@apache.org>
Authored: Tue Oct 11 15:58:19 2016 -0500
Committer: Steve Blackmon @steveblackmon <sb...@apache.org>
Committed: Tue Oct 11 15:58:19 2016 -0500
----------------------------------------------------------------------
streams-pojo/pom.xml | 1 +
.../jackson/StreamsDateTimeDeserializer.java | 13 +++++-
.../streams/jackson/StreamsJacksonMapper.java | 42 ++++++++++++++++----
.../pojo/StreamsJacksonMapperConfiguration.json | 22 ++++++++++
4 files changed, 69 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/1f5f5e7b/streams-pojo/pom.xml
----------------------------------------------------------------------
diff --git a/streams-pojo/pom.xml b/streams-pojo/pom.xml
index d9fc264..2453a24 100644
--- a/streams-pojo/pom.xml
+++ b/streams-pojo/pom.xml
@@ -191,6 +191,7 @@
<configuration>
<sourcePaths>
<sourcePath>${basedir}/src/main/jsonschema</sourcePath>
+ <sourcePath>${basedir}/src/main/jsonschema/org/apache/streams/pojo</sourcePath>
<sourcePath>${basedir}/src/main/jsonschema/verbs</sourcePath>
<sourcePath>${basedir}/src/main/jsonschema/objectTypes</sourcePath>
</sourcePaths>
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/1f5f5e7b/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 639c5ad..43813d2 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
@@ -26,6 +26,8 @@ import org.apache.streams.data.util.RFC3339Utils;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.io.Serializable;
@@ -43,14 +45,21 @@ public class StreamsDateTimeDeserializer extends StdDeserializer<DateTime> imple
List<DateTimeFormatter> formatters = Lists.newArrayList();
+ private final static Logger LOGGER = LoggerFactory.getLogger(StreamsDateTimeDeserializer.class);
+
protected StreamsDateTimeDeserializer(Class<DateTime> dateTimeClass) {
super(dateTimeClass);
}
protected StreamsDateTimeDeserializer(Class<DateTime> dateTimeClass, List<String> formats) {
super(dateTimeClass);
- for( String format : formats )
- formatters.add(DateTimeFormat.forPattern(format));
+ for( String format : formats ) {
+ try {
+ formatters.add(DateTimeFormat.forPattern(format));
+ } catch (Exception e) {
+ LOGGER.warn("Exception parsing format " + format);
+ }
+ }
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/1f5f5e7b/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 ada50e8..2492b2f 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
@@ -27,8 +27,11 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.module.scala.DefaultScalaModule;
import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import org.apache.streams.pojo.StreamsJacksonMapperConfiguration;
import java.util.List;
+import java.util.Map;
/**
* StreamsJacksonMapper is the recommended interface to jackson for any streams component.
@@ -39,10 +42,22 @@ import java.util.List;
*/
public class StreamsJacksonMapper extends ObjectMapper {
- private static final StreamsJacksonMapper INSTANCE = new StreamsJacksonMapper();
+ private static Map<StreamsJacksonMapperConfiguration, StreamsJacksonMapper> INSTANCE_MAP = Maps.newConcurrentMap();
- public static StreamsJacksonMapper getInstance(){
- return INSTANCE;
+ private StreamsJacksonMapperConfiguration configuration = new StreamsJacksonMapperConfiguration();
+
+ public static StreamsJacksonMapper getInstance() {
+ return getInstance(new StreamsJacksonMapperConfiguration());
+ }
+
+ public static StreamsJacksonMapper getInstance(StreamsJacksonMapperConfiguration configuration) {
+ if( INSTANCE_MAP.containsKey(configuration) &&
+ INSTANCE_MAP.get(configuration) != null)
+ return INSTANCE_MAP.get(configuration);
+ else {
+ INSTANCE_MAP.put(configuration, new StreamsJacksonMapper(configuration));
+ return INSTANCE_MAP.get(configuration);
+ }
}
public static StreamsJacksonMapper getInstance(String format){
@@ -68,22 +83,35 @@ public class StreamsJacksonMapper extends ObjectMapper {
*/
protected StreamsJacksonMapper() {
super();
- registerModule(new DefaultScalaModule());
- registerModule(new StreamsJacksonModule());
+ registerModule(new StreamsJacksonModule(configuration.getDateFormats()));
+ if( configuration.getEnableScala())
+ registerModule(new DefaultScalaModule());
configure();
}
+ @Deprecated
public StreamsJacksonMapper(String format) {
super();
- registerModule(new DefaultScalaModule());
registerModule(new StreamsJacksonModule(Lists.newArrayList(format)));
+ if( configuration.getEnableScala())
+ registerModule(new DefaultScalaModule());
configure();
}
+ @Deprecated
public StreamsJacksonMapper(List<String> formats) {
super();
- registerModule(new DefaultScalaModule());
registerModule(new StreamsJacksonModule(formats));
+ if( configuration.getEnableScala())
+ registerModule(new DefaultScalaModule());
+ configure();
+ }
+
+ public StreamsJacksonMapper(StreamsJacksonMapperConfiguration configuration) {
+ super();
+ registerModule(new StreamsJacksonModule(configuration.getDateFormats()));
+ if( configuration.getEnableScala())
+ registerModule(new DefaultScalaModule());
configure();
}
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/1f5f5e7b/streams-pojo/src/main/jsonschema/org/apache/streams/pojo/StreamsJacksonMapperConfiguration.json
----------------------------------------------------------------------
diff --git a/streams-pojo/src/main/jsonschema/org/apache/streams/pojo/StreamsJacksonMapperConfiguration.json b/streams-pojo/src/main/jsonschema/org/apache/streams/pojo/StreamsJacksonMapperConfiguration.json
new file mode 100644
index 0000000..5bfd082
--- /dev/null
+++ b/streams-pojo/src/main/jsonschema/org/apache/streams/pojo/StreamsJacksonMapperConfiguration.json
@@ -0,0 +1,22 @@
+{
+ "$schema": "http://json-schema.org/draft-03/schema",
+ "$license": [
+ "http://www.apache.org/licenses/LICENSE-2.0"
+ ],
+ "id": "#",
+ "type": "object",
+ "javaType" : "org.apache.streams.pojo.StreamsJacksonMapperConfiguration",
+ "javaInterfaces": ["java.io.Serializable"],
+ "properties": {
+ "dateFormats": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "enableScala": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+}
\ No newline at end of file
[2/2] incubator-streams git commit: Merge branch 'STREAMS-407'
Posted by sb...@apache.org.
Merge branch 'STREAMS-407'
Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/2c127244
Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/2c127244
Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/2c127244
Branch: refs/heads/master
Commit: 2c1272444ccd2823df251fbeeda880d41ddd3e4d
Parents: 3c390fd 1f5f5e7
Author: Steve Blackmon @steveblackmon <sb...@apache.org>
Authored: Fri Oct 14 09:37:02 2016 -0500
Committer: Steve Blackmon @steveblackmon <sb...@apache.org>
Committed: Fri Oct 14 09:37:02 2016 -0500
----------------------------------------------------------------------
streams-pojo/pom.xml | 1 +
.../jackson/StreamsDateTimeDeserializer.java | 13 +++++-
.../streams/jackson/StreamsJacksonMapper.java | 42 ++++++++++++++++----
.../pojo/StreamsJacksonMapperConfiguration.json | 22 ++++++++++
4 files changed, 69 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/2c127244/streams-pojo/pom.xml
----------------------------------------------------------------------