X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=server%2Fruntime%2Forg.argeo.server.json%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fserver%2Fjson%2FJsonServerMapper.java;h=36312ed59fe4f4e614875732d4bedeefdc49398d;hb=0f27df01898453d05364befc15969f787f6a3392;hp=601b55dc17dcf46e0b6a24153c5e73f1336f608a;hpb=9345ad49cb9c3505c3cae938efd028ebffd1a2d8;p=lgpl%2Fargeo-commons.git diff --git a/server/runtime/org.argeo.server.json/src/main/java/org/argeo/server/json/JsonServerMapper.java b/server/runtime/org.argeo.server.json/src/main/java/org/argeo/server/json/JsonServerMapper.java index 601b55dc1..36312ed59 100644 --- a/server/runtime/org.argeo.server.json/src/main/java/org/argeo/server/json/JsonServerMapper.java +++ b/server/runtime/org.argeo.server.json/src/main/java/org/argeo/server/json/JsonServerMapper.java @@ -10,6 +10,7 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.server.ArgeoServerException; +import org.argeo.server.Deserializer; import org.argeo.server.ServerDeserializer; import org.codehaus.jackson.JsonProcessingException; import org.codehaus.jackson.map.DeserializationContext; @@ -20,7 +21,7 @@ import org.codehaus.jackson.map.deser.StdDeserializerProvider; import org.springframework.beans.factory.InitializingBean; public class JsonServerMapper extends JsonServerSerializer implements - ServerDeserializer, InitializingBean { + ServerDeserializer, Deserializer, InitializingBean { private final static Log log = LogFactory.getLog(JsonServerMapper.class); private Class targetClass; @@ -66,6 +67,21 @@ public class JsonServerMapper extends JsonServerSerializer implements } + public T deserialize(Reader reader, Class clss) { + try { + if (log.isTraceEnabled()) { + String str = IOUtils.toString(reader); + log.debug(str); + reader = new StringReader(str); + } + + return getObjectMapper().readValue(reader, clss); + } catch (Exception e) { + throw new ArgeoServerException("Cannot deserialize " + reader, e); + } + + } + public Object deserialize(String content) { StringReader reader = new StringReader(content); try {