Hi folks !

As I was saying in post
http://mail-archives.apache.org/mod_mbox/jakarta-slide-dev/200508.mbox/[EMAIL PROTECTED]

I think that slide layers should be more cleanly separated. The design approach for v3 exposed in
http://wiki.apache.org/jakarta-slide/DesignApproach

seem a good idea. Going one step in this direction I've separated the Webdav implementation of slide from any HTTP semantic. Why ? because if you want to embed a webdav implementation in a software, you're forced to do local webdav call with HTTP which is silly and not performant.

the proposed layers are hereunder :

+=============================+  +===========================+
+ WebDAV "simple" personality +  + WebDAV servlet personality+
+=============================+  +===========================+
+============================================================+
+ Webdav "Core"                                              +
+============================================================+

the core uses interfaces representing :
- the request context
- the response context
- the webdav config.

Both personalities implements these 3 interfaces and their related classes.

Having this leads to be able to :
- package a webdav implementation that doesn't need HTTP at all (core + simple personality) - package a webdav implementation that is only HTTP and available as a war (core + servlet personality) - package a webdav implementation that can do both (core + both personalities)

The interesting part of this is that it is not breaking anything : we keep all the high level semantic of webdav and make it accesible in a local fashion.

The introduction of the interfaces has asked to refactor each method. The refactoring is quite straight forward. I've not refactored all methods yet but a great part of it have been done. I guess this is largely sufficient to say if I'm walking on the head or not.

Please find here (http://fdewasmes.free.fr/slide) my proposal. (file is too large for apache mail server)

This is maven based but I've written an ant script for those who aren't confortable with maven. This builds 5 modules :
- one jar for each module (core, simple personality, servlet personality)
- a client jar for the simple personality
- a war package demonstrating that everything works (or so !) using core + servlet personality.

For me this is a proposal for v3. If accepted we can take most of the work I've already done, run the test suite and refactor the remaining methods.

Tell me what you think !

Fabrice Dewasmes

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to