11.18. Modifying a WebDAV Resource

Problem

You need to modify a WebDAV resource.

Solution

Use the putMethod( ) on WebdavResource, and be sure to lock and unlock the resource before and after modification. The following example demonstrates the use of lockMethod( ) , putMethod( ), and unlockMethod( ) to modify a resource:

               import org.apache.commons.httpclient.Credentials;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.UsernamePasswordCredentials;
import org.apache.webdav.lib.WebdavResource;

String url = "http://www.discursive.com/jccook/dav/test.html";
Credentials credentials =
    new UsernamePasswordCredentials("davuser", "davpass");

// List resources in top directory
WebdavResource resource = new WebdavResource(url, credentials);

// Lock the Resource for 100 seconds
boolean locked = resource.lockMethod( "tobrien", 100 );

if( locked ) {
    try {
        // Read content as a String
        String resourceData = resource.getMethodDataAsString( );
        
        // Modify a resource
        System.out.println( "*** Modifying Resource");
        resourceData = resourceData.replaceAll( "test", "modified test" );
        resource.putMethod( resourceData );
    } finally {
        // Unlock the resource
        resource.unlockMethod( );
    }
}
        
// Close the resource    
resource.close( );

Discussion

lockMethod( ) accepts an owner and a timeout; the owner is the owner of the lock, and the timeout is the timeout of the lock in number of seconds. When locking a resource, the lockMethod( ) will return a boolean value: true if the lock was granted and false if the lock was not granted. The resource.putMethod( ) was called with a String object, but it can also be invoked when a byte[], InputStream, or File. putMethod( ) returns a boolean value: true if the put was successful; otherwise, false. The unlockMethod( ) unlocks the resource and makes it available for other clients to lock, modify, and unlock.

See Also

Section 7 of RFC 2518 (HTTP Extensions for Distributed Authoring—WEBDAV) discusses the various types of write locks available in WebDAV. This RFC is available at http://www.zvon.org/tmRFC/RFC2518/Output/chapter7.html.

The Slide recipes in this chapter are only meant as a brief introduction to WebDAV. If you would like to learn more about how to work with properties, create collections, and search a WebDAV repository, please see the Jakarta Slide project page at http://jakarta.apache.org/slide.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.117.187.113