X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=server%2Fruntime%2Forg.argeo.server.json%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fserver%2Fjson%2FJsonServerMapper.java;h=6b73336a204740a03a2543527710bab30751d6b5;hb=092b922842a99f6e6330305d579c119e20ceb03b;hp=601b55dc17dcf46e0b6a24153c5e73f1336f608a;hpb=54ca073308e726107a5e59b50ce875ebeb43b965;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..6b73336a2 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 @@ -9,8 +9,8 @@ import java.util.Map; 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.ServerDeserializer; +import org.argeo.ArgeoException; +import org.argeo.server.Deserializer; import org.codehaus.jackson.JsonProcessingException; import org.codehaus.jackson.map.DeserializationContext; import org.codehaus.jackson.map.DeserializationProblemHandler; @@ -20,7 +20,7 @@ import org.codehaus.jackson.map.deser.StdDeserializerProvider; import org.springframework.beans.factory.InitializingBean; public class JsonServerMapper extends JsonServerSerializer implements - ServerDeserializer, InitializingBean { + Deserializer, InitializingBean { private final static Log log = LogFactory.getLog(JsonServerMapper.class); private Class targetClass; @@ -32,6 +32,8 @@ public class JsonServerMapper extends JsonServerSerializer implements CustomDeserializerFactory dsf = new CustomDeserializerFactory(); for (Class clss : deserializers.keySet()) { dsf.addSpecificMapping(clss, deserializers.get(clss)); + if (log.isDebugEnabled()) + log.debug("Add JSON mapping for " + clss); } StdDeserializerProvider sdp = new StdDeserializerProvider(dsf); getObjectMapper().setDeserializerProvider(sdp); @@ -44,7 +46,8 @@ public class JsonServerMapper extends JsonServerSerializer implements String propertyName) throws IOException, JsonProcessingException { if (log.isTraceEnabled()) - log.debug("Ignore property " + propertyName); + log.debug("Ignore property " + propertyName + + " in bean " + bean); ctxt.getParser().skipChildren(); return true; } @@ -61,7 +64,22 @@ public class JsonServerMapper extends JsonServerSerializer implements return getObjectMapper().readValue(reader, targetClass); } catch (Exception e) { - throw new ArgeoServerException("Cannot deserialize " + reader, e); + throw new ArgeoException("Cannot deserialize " + reader, e); + } + + } + + 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 ArgeoException("Cannot deserialize " + reader, e); } }