Hi all,

Here's another update about the Chemistry code.

I checked in code that provides the AtomPub server bindings using a JAX-RS Resource. This is actually something very useful to have beyond a simple servlet, and that we do use in the Nuxeo backend. (Note that the Nuxeo backend, in our code repository, is now working and interoperating with Chemistry.) The JAX-RS code is unit-tested with CXF for now, and is working inside Nuxeo with RESTEasy (and Nuxeo WebEngine on top).

The AtomPub servlet code has also been cleaned a bit, to properly deal with non-empty servlet contexts and/or servlet paths.

There's now a simplistic implementation of the query method for the in- memory implementation (just "SELECT * FROM sometype" is working) which allows unit tests of the protocols to cover the query parts -- this was quite useful to debug POSTing.

Finally a remark about Abdera.
As I've had to do a lot of step-by-step debugging in it, I have to say I'm less and less fond of using Abdera for the server part. I feel it's really overkill for a fixed-scope implementation like Chemistry. The levels of wrapping of a simple StAX parser it's doing (StAX -> AXIOM + Abdera FOMElement -> Abdera ElementWrapper) really have a cost. Also, the Abdera model of collections and workspace managers is cumbersome to use in our setting where there's an undetermined number of collections (one for each folder) which aren't all workspaces. And there's more stuff like that. At this point I feel I would have lost less time by coding directly a StAX parser for the parts of AtomPub we're interested in. So I'm seriously thinking about not using Abdera in a next version of the server. This wouldn't prevent us from providing Abdera Element implementations for those that wish to use it.

Anyway, before that there's more work to do on queries, and fleshing out the implementations.

Cheers,
Florent


On 16 Jun 2009, at 16:56, Florent Guillaume wrote:
Here's a quick status update on the code I committed in the last few days.

My goal was to have a basic framework working for the AtomPub client, and this is now achieved.

The AtomPub client and the AtomPub server can be plugged together, with the simple in-memory implementation as a backend for the server. Then I can run the same basic tests either on the direct in- memory implementation, or on the AtomPub client+server stack. This provides a very easy way to ensure that the AtomPub stack works well.

Of course for now the tests are still extremely limited in coverage, but the plumbing is there to add more easily.

Next steps for me is to update by Nuxeo backend for Chemistry (not in Apache's repository).

--
Florent Guillaume, Head of R&D, Nuxeo
Open Source, Java EE based, Enterprise Content Management (ECM)
http://www.nuxeo.com   http://www.nuxeo.org   +33 1 40 33 79 87

Reply via email to