Playing around with CouchDB (which is a great JSON document based database with REST access), Jersey (JAX-RS/JSR-311 implementation) and Scala I had to implement a custom ContextResolver to use JSON objects instead of XML.
The Context Resolver Interface in Java is:
package javax.ws.rs.ext; public interface ContextResolver<T> { T getContext(java.lang.Class<?> aClass); }
I needed some time to get to the following Scala code implementing the Interface
(so I am still a newbie ;-)):
@Provider class JSONContextResolver extends ContextResolver[JAXBContext] { val cTypes = Array(classOf[CUnit], classOf[UpdateResponse], classOf[DeleteResponse]) val context = new JSONJAXBContext(JSONConfiguration.natural().build(), cTypes: _*) val types:Set[Class[_]] = Set(cTypes: _*) def getContext(objectType: Class[_]): JAXBContext = { if (types.contains(objectType)) return context null } }