summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/jackson/JacksonHelper.java
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2010-05-19 00:53:52 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2010-05-19 00:53:52 +0000
commitd683dc4b30c79348b5e73f0f11b1cfd8ce4b9812 (patch)
tree3b64741b708c3e13a6a301f7df21bec070547bfc /sca-java-2.x/trunk/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/jackson/JacksonHelper.java
parenta0bfd24b7af22df3174e1c1e4e6d2eb913f41d2f (diff)
Merge branch 'jaxrs' into trunk
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@945980 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r--sca-java-2.x/trunk/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/jackson/JacksonHelper.java46
1 files changed, 46 insertions, 0 deletions
diff --git a/sca-java-2.x/trunk/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/jackson/JacksonHelper.java b/sca-java-2.x/trunk/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/jackson/JacksonHelper.java
index 1e3399017c..ae3bb8fd48 100644
--- a/sca-java-2.x/trunk/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/jackson/JacksonHelper.java
+++ b/sca-java-2.x/trunk/modules/databinding-json/src/main/java/org/apache/tuscany/sca/databinding/json/jackson/JacksonHelper.java
@@ -20,13 +20,18 @@
package org.apache.tuscany.sca.databinding.json.jackson;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.Reader;
import java.io.StringWriter;
+import org.codehaus.jackson.JsonEncoding;
import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.JsonParser;
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.xc.JaxbAnnotationIntrospector;
@@ -41,6 +46,8 @@ public class JacksonHelper {
AnnotationIntrospector secondary = new JacksonAnnotationIntrospector();
AnnotationIntrospector pair = new AnnotationIntrospector.Pair(primary, secondary);
mapper.getDeserializationConfig().setAnnotationIntrospector(pair);
+ // [rfeng] To avoid complaints about javaClass
+ mapper.getDeserializationConfig().set(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, Boolean.FALSE);
mapper.getSerializationConfig().setAnnotationIntrospector(pair);
return mapper;
}
@@ -79,4 +86,43 @@ public class JacksonHelper {
}
}
+ public static JsonParser createJsonParser(InputStream content) {
+ JsonFactory jsonFactory = new JsonFactory();
+ try {
+ return jsonFactory.createJsonParser(content);
+ } catch (IOException e) {
+ throw new IllegalArgumentException(e);
+ }
+ }
+
+ public static JsonParser createJsonParser(Reader content) {
+ JsonFactory jsonFactory = new JsonFactory();
+ try {
+ return jsonFactory.createJsonParser(content);
+ } catch (IOException e) {
+ throw new IllegalArgumentException(e);
+ }
+ }
+
+ public static void write(JsonNode node, OutputStream out) {
+ try {
+ JsonFactory jsonFactory = new JsonFactory();
+ JsonGenerator generator = jsonFactory.createJsonGenerator(out, JsonEncoding.UTF8);
+ generator.writeTree(node);
+ } catch (IOException e) {
+ throw new IllegalArgumentException(e);
+ }
+ }
+
+ public static void write(JsonParser parser, OutputStream out) {
+ try {
+ JsonFactory jsonFactory = new JsonFactory();
+ JsonGenerator generator = jsonFactory.createJsonGenerator(out, JsonEncoding.UTF8);
+ JsonNode node = parser.readValueAs(JsonNode.class);
+ generator.writeTree(node);
+ } catch (IOException e) {
+ throw new IllegalArgumentException(e);
+ }
+ }
+
}