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