Hi,
Catalin is finishing his work on the xmlrpc API.
We'd like to propose to create the following modules:
xwiki-platform-core/
   |_ xwiki-remote/
     |_ model/
     |_ client/
     |_ server/
Where:
* model: Generates a JAR and contains common objects shared between
client and server code. Namely they are objects such as Space,
Attachment, Comment, Page, User, etc (see 
http://swizzle.codehaus.org/
swizzle-confluence/ for more).
Note: In the future, it's maybe possible that these be shared with
XWiki's model objects too.
* client: Client API for code needing to call XWiki servers from
another JVM.
* server: Server API in XWiki for accepting and handling remote APIs.
Open questions:
=============
* What about GWT? It's also a protocol to call XWiki remotely so we
need to integrate it in this new structure. So maybe, instead use:
xwiki-platform-core/
   |_ xwiki-remote/
     |_ model/
     |_ client/
     |_ server/
     |_ gwt/
The reason I don't put gwt in clients/ and servers/ is because it's
special as it's both and it generates client and server code when
compiled.
* Is it possible to share interfaces between the XMLRPC/SOAP
implementation and the GWT one?
* Do we want to have a separate module for the client/server APIs and
for the implementations? My take is that we should put them in a
single place and only separate them when we have more than one
implementation. So when there are 2 we would have:
xwiki-platform-core/
   |_ xwiki-remote/
     |_ model/
     |_ client/
       |_ api/
       |_ swizzle/
       |_ secondimplementation/
     |_ server/
       |_ api/
       |_ swizzle/
       |_ secondimplementation/
     |_ gwt/
WDYT?
Anything else I forgot?
Thanks
-Vincent