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;
+    }
+}


Reply via email to