Dear Acegi WebDAV Developers

First of all, WELCOME! It’s good to be working with you all on developing a WebDAV server implementation based around Spring + Acegi Security.

In addition to myself, on the team we currently have Andy Depue, Brian Moseley, Carlos Sanchez and Luke Taylor. Each of you have been added to the acegiwebdav-developer and acegiwebdav-cvs mailing lists. You each have CVS commit permissions to the source tree (see http://sourceforge.net/projects/acegiwebdav/). I’ve setup for acegiwebdav-developer to be archived at mail-archive.com, and applied for a newsgroup at Gmane for the same list.

The general scope of this project is to provide an interface-driven, RFC-compliant WebDAV server that is managed by a Spring IoC container and uses Acegi Security for AAA. The WebDAV server will probably comprise these layers:

* Standard WebDAV Client
* Dispatcher (based on HTTP type: GET, PUT, MKCOL etc)
* Controller (converts XML request to strictly typed POJOs or method args)
* Services and (possibly integrated or separately layered) Persistence

At the core of any WebDAV server is a content repository, and JSR 170 has progressed well in this area. The reference implementation is called Jackrabbit and is undergoing active development at http://incubator.apache.org/projects/jackrabbit.html. It’s already used in Magnolia (http://www.magnolia.info), suggesting it might be mature enough for our use as well. In view of JSR 170, there are two possible approaches to the services / persistence layer design.

The first option would be to take a long-term view and design solely for JSR 170 compliant implementations. As such our services layer interface contract would define methods very similar to JSR 170 interfaces, or indeed we could have the Controllers use JSR 170 interfaces directly.

The second option would be to use an interface contract solely based on our application’s specific needs: a repository to store WebDAV content. As such the interface would provide a simpler set of content repository methods, as needed by Controllers to perform their functions. Two concrete implementations of such an interface would ultimately be developed. One would be a JSR 170 compatibility implementation, which would represent a veneer of workflow code that calls JSR 170 implementations. The second implementation would use Spring’s stock-standard, layered services and DAO architecture. Whilst this option offers the benefits of both worlds (JSR 170 plus flexibility for non-JSR 170 approaches), the option would result in many overlapping interfaces and it’s inevitable that this will prove a maintenance issue as the JSR 170 implementations mature and become mainstream.

I already have some code based on Postgres. We could consider using that code and writing an implementation of JSR 170 based around Spring + Acegi Security + pluggable DAOs, with an initial focus perhaps on Postgres-specific DAOs. Would you be happy with Postgres as the reference DB for this project? This would probably also attract people interested in customizing their JSR 170 implementations using IoC, as well as their WebDAV servers. This is of course assuming Jackrabbit is not mature or flexible enough to use outright, which is obviously very much preferred from a number of perspectives.

The other architectural question to resolve at this point is whether or not to use Spring MVC to dispatch requests to controllers. The main WebDAV RFC, number 2518, can be found at http://greenbytes.de/tech/webdav/ (along with many other WebDAV-related RFCs).

On the project source code layout matter, do you think we need subprojects?

I look forward to your comments on the above, and working with you on this project.

Cheers
Ben



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Acegiwebdav-developer mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/acegiwebdav-developer

Reply via email to