You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by st...@apache.org on 2004/04/13 19:13:29 UTC

cvs commit: cocoon-2.1/src/blocks/webdav/java/org/apache/cocoon/components/source/impl WebDAVSource.java WebDAVSourceFactory.java

stephan     2004/04/13 10:13:29

  Modified:    src/blocks/webdav/java/org/apache/cocoon/components/source/impl
                        WebDAVSource.java WebDAVSourceFactory.java
  Log:
  Add methods to move and copy WebDAV sources.
  
  Revision  Changes    Path
  1.28      +50 -2     cocoon-2.1/src/blocks/webdav/java/org/apache/cocoon/components/source/impl/WebDAVSource.java
  
  Index: WebDAVSource.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/webdav/java/org/apache/cocoon/components/source/impl/WebDAVSource.java,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- WebDAVSource.java	13 Apr 2004 14:20:35 -0000	1.27
  +++ WebDAVSource.java	13 Apr 2004 17:13:29 -0000	1.28
  @@ -45,10 +45,12 @@
   import org.apache.commons.httpclient.URIException;
   import org.apache.excalibur.source.ModifiableSource;
   import org.apache.excalibur.source.ModifiableTraversableSource;
  +import org.apache.excalibur.source.MoveableSource;
   import org.apache.excalibur.source.Source;
   import org.apache.excalibur.source.SourceException;
   import org.apache.excalibur.source.SourceNotFoundException;
   import org.apache.excalibur.source.SourceParameters;
  +import org.apache.excalibur.source.SourceUtil;
   import org.apache.excalibur.source.SourceValidity;
   import org.apache.excalibur.source.TraversableSource;
   import org.apache.excalibur.source.impl.validity.TimeStampValidity;
  @@ -86,7 +88,7 @@
    * @version $Id$
   */
   public class WebDAVSource extends AbstractLogEnabled 
  -implements Source, TraversableSource, ModifiableSource, ModifiableTraversableSource, InspectableSource {
  +implements Source, TraversableSource, ModifiableSource, ModifiableTraversableSource, InspectableSource, MoveableSource {
   
       private static final String NAMESPACE = "http://apache.org/cocoon/webdav/1.0";
   
  @@ -924,4 +926,50 @@
   //            refresh();
   //        }
   //    }
  +
  +    // ---------------------------------------------------- MoveableSource
  +    
  +    /**
  +     * Move the current source to a specified destination.
  +     *
  +     * @param source
  +     *
  +     * @throws SourceException If an exception occurs during the move.
  +     */
  +    public void moveTo(Source source) throws SourceException {
  +        if (source instanceof WebDAVSource) {
  +            WebDAVSource destination = (WebDAVSource)source;
  +            try {            
  +                 this.resource.moveMethod(destination.resource.getHttpURL().getPath());
  +            } catch (HttpException e) {
  +                throw new SourceException("Cannot move source '"+getSecureURI()+"'", e);
  +            } catch (IOException e) {
  +                throw new SourceException("Cannot move source '"+getSecureURI()+"'", e);
  +            }
  +        } else {
  +            SourceUtil.move(this,source);
  +        }
  +    }
  +
  +    /**
  +     * Copy the current source to a specified destination.
  +     *
  +     * @param source
  +     *
  +     * @throws SourceException If an exception occurs during the copy.
  +     */
  +    public void copyTo(Source source) throws SourceException {
  +        if (source instanceof WebDAVSource) {
  +            WebDAVSource destination = (WebDAVSource)source;
  +            try {
  +                this.resource.copyMethod(destination.resource.getHttpURL().getPath());
  +            } catch (HttpException e) {
  +                throw new SourceException("Cannot copy source '"+getSecureURI()+"'", e);
  +            } catch (IOException e) {
  +                throw new SourceException("Cannot copy source '"+getSecureURI()+"'", e);
  +            }
  +        } else {
  +            SourceUtil.copy(this,source);
  +        }
  +    }
   }
  
  
  
  1.10      +7 -10     cocoon-2.1/src/blocks/webdav/java/org/apache/cocoon/components/source/impl/WebDAVSourceFactory.java
  
  Index: WebDAVSourceFactory.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/webdav/java/org/apache/cocoon/components/source/impl/WebDAVSourceFactory.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- WebDAVSourceFactory.java	27 Mar 2004 15:51:21 -0000	1.9
  +++ WebDAVSourceFactory.java	13 Apr 2004 17:13:29 -0000	1.10
  @@ -69,13 +69,12 @@
               location = location.substring(index+3);
           }
           
  -		HttpURL url;
  -		if (this.secure) {
  -		    url = new HttpsURL("https://" + location);
  -		}
  -		else {
  -		    url = new HttpURL("http://" + location);
  -		}
  +        HttpURL url;
  +        if (this.secure) {
  +            url = new HttpsURL("https://" + location);
  +        } else {
  +            url = new HttpURL("http://" + location);
  +        }
           
           return WebDAVSource.newWebDAVSource(url, this.protocol, getLogger());
       }
  @@ -83,6 +82,4 @@
       public void release(Source source) {
           // do nothing
       }
  -
  -
   }