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
}
-
-
}