Sep 4th, 2009, 11:02 AM
REST + XStream Annotations
I've built an application with ROO and have made use of ContentNegotiatingViewResolver and RESTFul URLs. I've picked XStream to serialize my domain objects to XML. I'd like to use XStream annotations to override the default names of properties in my domain objects, and I'd like to exclude the version and id fields from the XML; but because these are wrapped up in the aspects I can't add annotations. What would be the best approach here do you think?
As a side-note; Spring 3.0.0.M3 (seems to have been addresses in trunk) doesn't support XStream's autoDetectAnnotation property so I've used a Customer Marshaller/Unmarshaller implementation and 'decorated' the Spring implmentation so that I can set this property.
One more side-note: I have used a custom mime-type for my xml, because of problems with content-negotiation with Safarai and also IE. See http://jira.springframework.org/browse/SPR-5706
Sep 5th, 2009, 08:20 AM
I have tested this just recently with Spring 3.0.0.M4 and the autoDetectAnnotation property worked there. You can then simply add the XStream annotations in the aspect. This will, however, be overwritten once you start the Roo shell on your project again so it may make more sense to push the fields into the actual Java sources.
Sep 6th, 2009, 12:56 PM
Many thanks for the reply.
It would be a shame to have to push the fields into the java source code, but probably is the only sensible way to achieve what I want to do. I had a quick stab at upgrading Spring to 3.0.0.M4 and all my tests failed so I guess I'd have to upgrade other dependencies too. I'd rather stick with what ROO gives me for now and wait for the next ROO upgrade instead.
All the best
Tags for this Thread