Sorry for getting back to this so late. Comments below...

David Primmer wrote:
I'm looking for a way to split off processing in the collection
adapter into json input and output processing (without going through a
translation into the FOM). The two areas I'm looking at are
AbstractCollectionAdapter and AbstractEntityCollectionAdapter. The
reality of my implementation is that the json objects in the request
body are basically the same as the pojo's that are the storage
interface, so why go through the abstraction of the FOM?


There are several ways to handle this. In one of my implementations, I've created a custom ResponseContext that uses the JSON writer to serialize output directly from the source objects. No FOM necessary.

I'm trying to add json to backend java objects to the request/response
processing pipeline of Abdera but do I need to change abdera to do it?
I've noticed there are separate processing systems for media handling
and xml handling. The various build* methods, like
AbstractCollectionAdapter.buildCreateEntryResponse, that creates
ResponseContext for the entry object and sets up the common
http-oriented elements of the response. Seems re-usable for a generic
json REST server. Seems like I could extend the
AbstractCollectionAdapter.

Is it true that to keep this simpler, I'd want to keep the Feed and
Entry interfaces? So a json 'entry' or a json 'feed' could be used
with stuff like getEntryFromRequest. But not use any of the RFC4287
stuff in the Source class? getEntryFromRequest retrieves the Entry
object from the request payload. It creates a parser object which
could be replaced with a json parser.


There shouldn't be any need at all for implementing the Feed and Entry interfaces. Just go directly from your application objects to JSON using a custom ResponseContext implementation.

What about using some of the stuff in AbstractEntityCollectionAdapter?
It seems very tied to XML. Would ProvidorHelper.isValidEntry need to
be extended to support json also? Is this just a very slippery slope
that is not worth getting on?


I think it would be easier to either extend AbstractCollectionAdapter or just implement CollectionAdapter directly. AbstractEntityCollectionAdapter seems a bit too specific for your case.

- James

thanks!

davep

Reply via email to