[RESTFULIE] de-serialização

Estou fazendo alguns testes com o Restfulie, se tudo correr bem ele será utilizado em alguns produtos nossos, bom no meio de um dos testes encontrei o seguinte problema, que provavelmente é um problema (velho conhecido) “herdado” do XStream?

se o xstream encontra uma propriedade no xml que não está presente na classe representada por ele lança uma exception (ver http://jira.codehaus.org/browse/XSTR-30)

dessa forma, se o serviço inclui propriedades novas no recurso, o client quebra até que inclua tbm as mesma propriedades? na minha opinião isso deixa os clientes muito frágeis.

o mesmo comportamento é apresentado pelo restfulie, a exception lançada é: com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$UnknownFieldException: No such field

Gostaria de ouvir a opinião de vocês a respeito de como tratar esse “problema”

PS: sei que esse não é um problema do restfulie e sim do XStream, mas o ticket no jira dos caras é de 2004 e até agora nada foi feito?..

tinha um fix famoso pra esse bug…
http://initbinder.com/articles/how-to-tell-xstream-to-not-unmarshall-xml-fields.html

valeu, Lucas…

teste no XStream e funcionou perfeitamente, mas agora sobrou uma dúvida… como trocar a instância do XStream que o restfulie usa?

o lugar onde vc consegue fazer isso seria no: https://github.com/caelum/restfulie-java/blob/master/client/src/main/java/br/com/caelum/restfulie/mediatype/XStreamHelper.java

o problema é que ele não está mto estensível para substituir o xstream, vc pode usar o xstream que ele cria pra configurar mais coisas…

o que vc pode fazer por enquanto é copiar essas duas classes pro seu projeto:


alterar o helper do seu projeto, e fazer um :

RestClient client = Restfulie.custom();
client.getMediaTypes().register(new SeuMediaType());