Author: mfranklin
Date: Tue Mar 19 23:40:33 2013
New Revision: 1458572
URL: http://svn.apache.org/r1458572
Log:
Added JSON utility (supports RAVE-915)
Added:
rave/trunk/rave-components/rave-commons/src/main/java/org/apache/rave/util/JsonUtils.java
Modified:
rave/trunk/rave-components/rave-commons/pom.xml
Modified: rave/trunk/rave-components/rave-commons/pom.xml
URL:
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-commons/pom.xml?rev=1458572&r1=1458571&r2=1458572&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-commons/pom.xml (original)
+++ rave/trunk/rave-components/rave-commons/pom.xml Tue Mar 19 23:40:33 2013
@@ -77,6 +77,16 @@
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-mrbean</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-mapper-asl</artifactId>
+ <scope>provided</scope>
+ </dependency>
<!-- Test -->
<dependency>
Added:
rave/trunk/rave-components/rave-commons/src/main/java/org/apache/rave/util/JsonUtils.java
URL:
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-commons/src/main/java/org/apache/rave/util/JsonUtils.java?rev=1458572&view=auto
==============================================================================
---
rave/trunk/rave-components/rave-commons/src/main/java/org/apache/rave/util/JsonUtils.java
(added)
+++
rave/trunk/rave-components/rave-commons/src/main/java/org/apache/rave/util/JsonUtils.java
Tue Mar 19 23:40:33 2013
@@ -0,0 +1,49 @@
+package org.apache.rave.util;
+
+
+import org.codehaus.jackson.map.AnnotationIntrospector;
+import org.codehaus.jackson.map.DeserializationConfig;
+import org.codehaus.jackson.map.ObjectMapper;
+import org.codehaus.jackson.map.introspect.JacksonAnnotationIntrospector;
+import org.codehaus.jackson.mrbean.MrBeanModule;
+import org.springframework.core.io.Resource;
+
+import java.io.IOException;
+
+public class JsonUtils {
+ private JsonUtils(){}
+
+ public static <T> String stringify(T object) {
+ try {
+ return getMapper().writeValueAsString(object);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ public static <T> T parse(String serialized, Class<T> klass) {
+ try {
+ return serialized == null ? null :
getMapper().readValue(serialized, klass);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+
+ }
+
+ public static <T> T parse(Resource resource, Class<T> klass) {
+ try {
+ return getMapper().readValue(resource.getFile(), klass);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ private static ObjectMapper getMapper() {
+ ObjectMapper jacksonMapper = new ObjectMapper();
+ AnnotationIntrospector primary = new JacksonAnnotationIntrospector();
+ jacksonMapper.setAnnotationIntrospector(primary);
+
jacksonMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES,
false);
+ jacksonMapper.registerModule(new MrBeanModule());
+ return jacksonMapper;
+ }
+}