I have been looking into using WebDAV as the core of a new solution I am working on. I needed centralized, content management style, read and write access to documents from multiple servers. WebDAV interested me because users could easily access these documents using external tools.
The application I am working on is written in Java so I went searching for an open-source WebDAV server and client library. There were a number of options for WebDAV servers:
1) Slide – http://jakarta.apache.org/slide/
This project was one of the primary WebDAV implementations in Java but has been retired as of Nov 3, 2007.
2) JackRabbit – http://jackrabbit.apache.org/
JackRabbit is a JSR170 Java Content Repository. It also provides access to its content through WebDAV.
3) Tomcat – http://tomcat.apache.org/
Tomcat has a WebDAV servlet that can be used to read and write web application content.
Options for a WebDAV client were a little bit more limited. Jakarta Slide had been the primary WebDAV client which was used in may other open source projects. Since it had been retired, I was looking for alternatives. Here is a message posted on the slide mailing list that mentions JackRabbit as the most suitable alternative.
The Apache Jakarta PMC is sorry to announce the retirementof theJakarta Slide subproject. After it's last release inDecember 2004,development activity was significantly reducedand came to a totalstandstill this year. Without a minimumdeveloper community thatcan release security fixes, we haveno choice but to retire Slide.We'll keep at least one ofthe mailing lists open for a transitionperiod, so users candiscuss alternatives and migration away fromSlide. Furtheruse of the Slide codebase is discouraged. One alternative to Slide is provided by the Apache Jackrabbitproject. Jackrabbit has a healthy, active developer communityandprovides, among others things:- a server-side content repository-a WebDAV server component for access to the repository- a WebDAVclient componentPlease visit http://jackrabbit.apache.org/ formore information. We apologize for the inconveniences. Roland Weber
The problem is that JackRabbit does not currently have a WebDAV client component. JackRabbit focuses on the Java Content Repository specification and provides WebDAV as a server option. The following post from the mailing list explains.
Re: Webdav Client Examples?
Jukka Zitting wrote:
> On Nov 14, 2007 11:26 AM, ossi petz <ossipetz@…> wrote:
>> Has anyone made some examples on how to use HttpClient with the
>> Jackrabbit Webdav Client?
there is an example in the sandbox/spi/spi2dav project.
> Not really. The WebDAV support in Jackrabbit is more focused on
> server-side implementations than clients.
> The best there is for clients is a collection of WebDAV method classes
> in the jackrabbit–webdav component.
… which are only waiting for somebody having time to put them
together to a complete dav client :).
When Apache retired the Slide project, they unknowingly retired the primary Java WebDAV client implementation. The folks in Apache must not have communicated with the JackRabbit team to ensure that it would be able to fill the hole that slide left. I continued my quest to find alternative WebDAV clients in Java.
Eclipse used to have a WebDAV client that was used for Team support. This was an extension available for Eclipse 3.2 and earlier called “WebDAV and FTP Support“. This project is no longer being maintained since 3.3 because of the new Eclipse FileSystem. The EFS (Eclipse FileSystem) was a new API for interacting with different file systems. The EFS implementation for WebDAV has not yet been completed. I stumbled upon a new project with Google’s Summer of Code to create an WebDAV EFS implementation. This is a note from that page.
Eclipse’s webdav client hasn’t been worked on for 2 years and has many shortcomings. The Jakarta Slide Webdav client (http://jakarta.apache.org/slide/webdav-client.html) is an actively maintained project.
I found it quite entertaining how Eclipse chose to use Slide as the client implementation because it was “actively maintained”. In reality the slide project had not been updated in years. It may be better than the old eclipse implementation, but it was far from actively maintained. I wonder what will happen with this project once they find out that Slide is no longer being developed.
I also found a few other projects that provide WebDAV access. These also use the slide client to provide their WebDAV functionality.
Maven Wagon – http://maven.apache.org/wagon/wagon-providers/wagon-webdav/
Apache Commons VFS – http://commons.apache.org/vfs/filesystems.html
After all of my investigation, it seems that Slide is still the best (or only) option for open source WebDAV clients even though the project is no longer being maintained.
I hope that the old slide client will eventually become an Apache Commons WebDAV client or maybe be incorporated into the HTTPClient project.