Java WebDAV Clients

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.

  1. JackRabbit – http://jackrabbit.apache.org/

JackRabbit is a JSR170 Java Content Repository. It also provides access to its content through WebDAV.

  1. 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.

One alternative to Slide is provided by the Apache Jackrabbit

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.

Jukka Zitting wrote:

Hi,

On Nov 14, 2007 11:26 AM, ossi petz «a href=“http://www.nabble.com/user/SendEmail.jtp?type=post&post=13852979&i=0" target="_top” rel=“nofollow”>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 jackrabbitwebdav component.

… which are only waiting for somebody having time to put them

together to a complete dav client :).

regards

angela

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.