Thank you for the update Florent, and all the work !
I still need to look at the changes, and then work on integrating
them :)
cheers,
Serge...
On 22 juin 09, at 19:34, Florent Guillaume wrote:
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