FYI the Mercurial repository I'm setting up is at:
  http://hg.nuxeo.org/sandbox/apache-cmis
You can browse the first cut of the first part of the API at:
  
http://hg.nuxeo.org/sandbox/apache-cmis/file/tip/cmis-api/src/main/java/org/apache/cmis
(I'm doing it in spec order for now.)

Florent

On 20 Feb 2009, at 09:54, Florent Guillaume wrote:

Hi all,

Yes the architecture I want is the one also outlined in David's slides. I propose that the code be structured like this:

cmis-api
Interfaces based on the CMIS spec, but made Java-ish
cmis-client
cmis-client-atompub
  Client using AtomPub
cmis-client-ws
  Client using SOAP
cmis-server
cmis-server-atompub
  Server using AtomPub
cmis-server-ws
  Server using SOAP
cmis-commons
Common utility classes used by client/server parts, for instance:
  - a simple implementation for Document, Folder, etc.
  - a parser and AST for SQL queries
cmis-tck
Some upcoming, *unofficial* tck for CMIS, basically lots of unit tests
jackrabbit-cmis2jcr
The implementation of cmis-api on top of a JCR repository
cmis-webapp-atompub (or cmis-sample-browser ?)
The sample webapp connecting to a remote CMIS repository using AtomPub

The code existing in the sandbox would be moved to fit in the above hierarchy, nothing is lost.

I've started working on the refactoring in a Mercurial repository here at Nuxeo (just the cmis-api for starters), and I'll provide patches as soon as all the tests pass. I'll give you a URL for the repository when it's set up today. The refactoring will basically have to define (a first draft of) the CMIS Java API, and change the clients and server to use them as intermediate datastructures.

How does that sound?
I'd like to use org.apache.cmis as the package base for all the cmis- * bundles, does anyone foresee a problem with that?

Thanks,
Florent

--
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