luetzkendorf 2005/02/25 08:57:28
Modified: src/webdav/server/org/apache/slide/webdav/event
WebdavAdapter.java WebdavEvent.java
WebdavListener.java
Added: src/webdav/server/org/apache/slide/webdav/event
DetailedWebdavEvent.java
DetailedWebdavListener.java
Log:
Intorduction of some more detailed Events triggered by the WebDAV layer.
E.g. now you will be informed if a single resource is copied, moved or deleted
while MOVE, COPY or DELETE.
Revision Changes Path
1.6 +43 -5
jakarta-slide/src/webdav/server/org/apache/slide/webdav/event/WebdavAdapter.java
Index: WebdavAdapter.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/event/WebdavAdapter.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- WebdavAdapter.java 28 Jul 2004 09:32:51 -0000 1.5
+++ WebdavAdapter.java 25 Feb 2005 16:57:28 -0000 1.6
@@ -30,7 +30,7 @@
*
* @version $Revision$
*/
-public class WebdavAdapter implements WebdavListener {
+public class WebdavAdapter implements WebdavListener, DetailedWebdavListener
{
public void get(WebdavEvent event) throws VetoException {
}
@@ -111,4 +111,42 @@
public void poll(WebdavEvent event) throws VetoException {
}
+
+
+ public void moveAfterCopy(DetailedWebdavEvent event) throws
VetoException {
+ }
+ public void moveAfterDelete(DetailedWebdavEvent event) throws
VetoException {
+ }
+ public void moveBeforeCopy(DetailedWebdavEvent event) throws
VetoException {
+ }
+ public void moveBeforeDelete(DetailedWebdavEvent event)
+ throws VetoException {
+ }
+
+
+ public void deleteAfterDelete(DetailedWebdavEvent event)
+ throws VetoException {
+ }
+ public void deleteBeforeDelete(DetailedWebdavEvent event)
+ throws VetoException {
+ }
+
+
+ public void versionControlAfter(DetailedWebdavEvent event)
+ throws VetoException {
+ }
+ public void versionControlBefore(DetailedWebdavEvent event)
+ throws VetoException {
+ }
+
+
+ public void copyAfterCopy(DetailedWebdavEvent event) throws
VetoException {
+ }
+ public void copyAfterDelete(DetailedWebdavEvent event) throws
VetoException {
+ }
+ public void copyBeforeCopy(DetailedWebdavEvent event) throws
VetoException {
+ }
+ public void copyBeforeDelete(DetailedWebdavEvent event)
+ throws VetoException {
+ }
}
\ No newline at end of file
1.7 +9 -8
jakarta-slide/src/webdav/server/org/apache/slide/webdav/event/WebdavEvent.java
Index: WebdavEvent.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/event/WebdavEvent.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- WebdavEvent.java 5 Aug 2004 14:43:30 -0000 1.6
+++ WebdavEvent.java 25 Feb 2005 16:57:28 -0000 1.7
@@ -65,10 +65,11 @@
public static Poll POLL = new Poll();
public final static String GROUP = "webdav";
- public final static AbstractEventMethod[] methods = new
AbstractEventMethod[] { GET, PUT, PROPFIND, PROPPATCH, BIND,
-
UNBIND, REBIND, MKCOL, COPY, MOVE, DELETE, LOCK, UNLOCK, ACL,
-
REPORT, SEARCH, VERSION_CONTROL, OPTIONS, CHECKIN, CHECKOUT, UNCHECKOUT,
-
UPDATE, LABEL, MKWORKSPACE, SUBSCRIBE, UNSUBSCRIBE, POLL };
+ public final static AbstractEventMethod[] methods = new
AbstractEventMethod[] {
+ GET, PUT, PROPFIND, PROPPATCH, BIND, UNBIND, REBIND, MKCOL, COPY,
+ MOVE, DELETE, LOCK, UNLOCK, ACL, REPORT, SEARCH, VERSION_CONTROL,
+ OPTIONS, CHECKIN, CHECKOUT, UNCHECKOUT, UPDATE, LABEL,
MKWORKSPACE,
+ SUBSCRIBE, UNSUBSCRIBE, POLL };
public WebdavEvent(Object source) {
super(source);
1.7 +9 -6
jakarta-slide/src/webdav/server/org/apache/slide/webdav/event/WebdavListener.java
Index: WebdavListener.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/event/WebdavListener.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- WebdavListener.java 28 Jul 2004 09:32:51 -0000 1.6
+++ WebdavListener.java 25 Feb 2005 16:57:28 -0000 1.7
@@ -28,9 +28,12 @@
import org.apache.slide.event.VetoException;
/**
- * Webdav listener interface
- *
- * @version $Revision$
+ * Event listener that listens for WebDAV requests. There is an event for
each
+ * WebDAV method supported by Slide. The events are called before the actual
+ * work is started. The Event source is the corresponding WebDAV-method
object
+ * (e.g. [EMAIL PROTECTED] org.apache.slide.webdav.method.CopyMethod}for a
COPY request).
+ * There you can retrieve more infos about the current request, the
+ * NamespaceAccessToken, the SlideToken etc.
*/
public interface WebdavListener extends EventListener {
void get(WebdavEvent event) throws VetoException;
1.1
jakarta-slide/src/webdav/server/org/apache/slide/webdav/event/DetailedWebdavEvent.java
Index: DetailedWebdavEvent.java
===================================================================
/*
* $Header:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/event/DetailedWebdavEvent.java,v
1.1 2005/02/25 16:57:28 luetzkendorf Exp $
* $Revision: 1.1 $
* $Date: 2005/02/25 16:57:28 $
*
* ====================================================================
*
* Copyright 2004 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.apache.slide.webdav.event;
import java.util.EventListener;
import java.util.EventObject;
import org.apache.slide.event.AbstractEventMethod;
import org.apache.slide.event.VetoException;
import org.apache.slide.event.VetoableEventMethod;
/**
* Detailed WebDAV events.
*/
public class DetailedWebdavEvent extends EventObject {
public final static String GROUP = "webdav-detailed";
public static final MoveBeforeCopy MOVE_BEFORE_COPY = new
MoveBeforeCopy();
public static final MoveAfterCopy MOVE_AFTER_COPY = new MoveAfterCopy();
public static final MoveBeforeDelete MOVE_BEFORE_DELETE = new
MoveBeforeDelete();
public static final MoveAfterDelete MOVE_AFTER_DELETE = new
MoveAfterDelete();
public static final CopyBeforeCopy COPY_BEFORE_COPY = new
CopyBeforeCopy();
public static final CopyAfterCopy COPY_AFTER_COPY = new CopyAfterCopy();
public static final CopyBeforeDelete COPY_BEFORE_DELETE = new
CopyBeforeDelete();
public static final CopyAfterDelete COPY_AFTER_DELETE = new
CopyAfterDelete();
public static final DeleteBeforeDelete DELETE_BEFORE_DELETE = new
DeleteBeforeDelete();
public static final DeleteAfterDelete DELETE_AFTER_DELETE = new
DeleteAfterDelete();
public static final VersionControlBefore VERSION_CONTROL_BEFORE = new
VersionControlBefore();
public static final VersionControlAfter VERSION_CONTROL_AFTER = new
VersionControlAfter();
public final static AbstractEventMethod[] methods = new
AbstractEventMethod[] {
MOVE_BEFORE_COPY, MOVE_AFTER_COPY, MOVE_BEFORE_DELETE,
MOVE_AFTER_DELETE, DELETE_BEFORE_DELETE, DELETE_AFTER_DELETE,
VERSION_CONTROL_BEFORE, VERSION_CONTROL_AFTER, COPY_BEFORE_COPY,
COPY_AFTER_COPY, COPY_BEFORE_DELETE, COPY_AFTER_DELETE};
private String sourceUri;
private String destinationUri;
/**
*
*/
public DetailedWebdavEvent(Object source, String destinationUri) {
super(source);
this.destinationUri = destinationUri;
this.sourceUri = null;
}
public DetailedWebdavEvent(Object source, String destinationUri,
String sourceUri) {
super(source);
this.destinationUri = destinationUri;
this.sourceUri = sourceUri;
}
public String getDestinationUri() {
return destinationUri;
}
public String getSourceUri() {
return sourceUri;
}
public final static class MoveBeforeCopy extends VetoableEventMethod {
public MoveBeforeCopy() {
super(GROUP, "move-before-copy");
}
public void fireVetaoableEvent(EventListener listener, EventObject
event)
throws VetoException {
if (listener instanceof DetailedWebdavListener) {
((DetailedWebdavListener)
listener).moveBeforeCopy((DetailedWebdavEvent) event);
}
}
}
public final static class MoveAfterCopy extends VetoableEventMethod {
public MoveAfterCopy() {
super(GROUP, "move-after-copy");
}
public void fireVetaoableEvent(EventListener listener, EventObject
event)
throws VetoException {
if (listener instanceof DetailedWebdavListener) {
((DetailedWebdavListener)
listener).moveAfterCopy((DetailedWebdavEvent) event);
}
}
}
public final static class MoveBeforeDelete extends VetoableEventMethod {
public MoveBeforeDelete() {
super(GROUP, "move-before-delete");
}
public void fireVetaoableEvent(EventListener listener, EventObject
event)
throws VetoException {
if (listener instanceof DetailedWebdavListener) {
((DetailedWebdavListener)
listener).moveBeforeDelete((DetailedWebdavEvent) event);
}
}
}
public final static class MoveAfterDelete extends VetoableEventMethod {
public MoveAfterDelete() {
super(GROUP, "move-after-delete");
}
public void fireVetaoableEvent(EventListener listener, EventObject
event)
throws VetoException {
if (listener instanceof DetailedWebdavListener) {
((DetailedWebdavListener)
listener).moveAfterDelete((DetailedWebdavEvent) event);
}
}
}
public final static class CopyBeforeCopy extends VetoableEventMethod {
public CopyBeforeCopy() {
super(GROUP, "copy-before-copy");
}
public void fireVetaoableEvent(EventListener listener, EventObject
event)
throws VetoException {
if (listener instanceof DetailedWebdavListener) {
((DetailedWebdavListener)
listener).copyBeforeCopy((DetailedWebdavEvent) event);
}
}
}
public final static class CopyAfterCopy extends VetoableEventMethod {
public CopyAfterCopy() {
super(GROUP, "copy-after-copy");
}
public void fireVetaoableEvent(EventListener listener, EventObject
event)
throws VetoException {
if (listener instanceof DetailedWebdavListener) {
((DetailedWebdavListener)
listener).copyAfterCopy((DetailedWebdavEvent) event);
}
}
}
public final static class CopyBeforeDelete extends VetoableEventMethod {
public CopyBeforeDelete() {
super(GROUP, "copy-before-delete");
}
public void fireVetaoableEvent(EventListener listener, EventObject
event)
throws VetoException {
if (listener instanceof DetailedWebdavListener) {
((DetailedWebdavListener)
listener).copyBeforeDelete((DetailedWebdavEvent) event);
}
}
}
public final static class CopyAfterDelete extends VetoableEventMethod {
public CopyAfterDelete() {
super(GROUP, "copy-after-delete");
}
public void fireVetaoableEvent(EventListener listener, EventObject
event)
throws VetoException {
if (listener instanceof DetailedWebdavListener) {
((DetailedWebdavListener)
listener).copyAfterDelete((DetailedWebdavEvent) event);
}
}
}
public static final class DeleteBeforeDelete extends VetoableEventMethod {
public DeleteBeforeDelete() {
super(GROUP, "delete-before-delete");
}
public void fireVetaoableEvent(EventListener listener, EventObject
event)
throws VetoException {
if (listener instanceof DetailedWebdavListener) {
((DetailedWebdavListener)
listener).deleteBeforeDelete((DetailedWebdavEvent) event);
}
}
}
public static final class DeleteAfterDelete extends VetoableEventMethod {
public DeleteAfterDelete() {
super(GROUP, "delete-after-delete");
}
public void fireVetaoableEvent(EventListener listener, EventObject
event)
throws VetoException {
if (listener instanceof DetailedWebdavListener) {
((DetailedWebdavListener)
listener).deleteAfterDelete((DetailedWebdavEvent) event);
}
}
}
public static final class VersionControlBefore extends
VetoableEventMethod {
public VersionControlBefore() {
super(GROUP, "version-control-before");
}
public void fireVetaoableEvent(EventListener listener, EventObject
event)
throws VetoException {
if (listener instanceof DetailedWebdavListener) {
((DetailedWebdavListener)
listener).versionControlBefore((DetailedWebdavEvent) event);
}
}
}
public static final class VersionControlAfter extends VetoableEventMethod
{
public VersionControlAfter() {
super(GROUP, "version-control-after");
}
public void fireVetaoableEvent(EventListener listener, EventObject
event)
throws VetoException {
if (listener instanceof DetailedWebdavListener) {
((DetailedWebdavListener)
listener).versionControlAfter((DetailedWebdavEvent) event);
}
}
}
}
1.1
jakarta-slide/src/webdav/server/org/apache/slide/webdav/event/DetailedWebdavListener.java
Index: DetailedWebdavListener.java
===================================================================
/*
* $Header:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/event/DetailedWebdavListener.java,v
1.1 2005/02/25 16:57:28 luetzkendorf Exp $
* $Revision: 1.1 $
* $Date: 2005/02/25 16:57:28 $
*
* ====================================================================
*
* Copyright 2004 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.apache.slide.webdav.event;
import java.util.EventListener;
import org.apache.slide.event.VetoException;
/**
* WebDAV event listener that listens to some detailed events.
*/
public interface DetailedWebdavListener extends EventListener {
/**
* Called before a single resoure is copied while a WebDAV MOVE request.
*
* <li>event source: the [EMAIL PROTECTED]
org.apache.slide.webdav.method.MoveMethod}
* <li>event sourceUri: the old resource URI
* <li>event destinationUri: the new resource URI
*/
public void moveBeforeCopy(DetailedWebdavEvent event) throws
VetoException;
/**
* Called after a single resoure is copied while a WebDAV MOVE request.
*
* <li>event source: the [EMAIL PROTECTED]
org.apache.slide.webdav.method.MoveMethod}
* <li>event sourceUri: the old resource URI
* <li>event destinationUri: the new resource URI
*/
public void moveAfterCopy(DetailedWebdavEvent event) throws VetoException;
/**
* Called before a single resource is deleted while a WebDAV MOVE request.
*
* <li>event source: the [EMAIL PROTECTED]
org.apache.slide.webdav.method.MoveMethod}
* <li>event sourceUri: <code>null</code>
* <li>event destinationUri: the new resource URI
*/
public void moveBeforeDelete(DetailedWebdavEvent event)
throws VetoException;
/**
* Called after a single resource is deleted while a WebDAV MOVE request.
*
* <li>event source: the [EMAIL PROTECTED]
org.apache.slide.webdav.method.MoveMethod}
* <li>event sourceUri: <code>null</code>
* <li>event destinationUri: the new resource URI
*/
public void moveAfterDelete(DetailedWebdavEvent event) throws
VetoException;
/**
* Called before a single resource is copied while a WebDAV COPY request.
*
* <li>event source: the [EMAIL PROTECTED]
org.apache.slide.webdav.method.CopyMethod}
* <li>event sourceUri: the old resource URI
* <li>event destinationUri: the new resource URI
*/
public void copyBeforeCopy(DetailedWebdavEvent event) throws
VetoException;
/**
* Called after a single resource is copied while a WebDAV COPY request.
*
* <li>event source: the [EMAIL PROTECTED]
org.apache.slide.webdav.method.CopyMethod}
* <li>event sourceUri: the old resource URI
* <li>event destinationUri: the new resource URI
*/
public void copyAfterCopy(DetailedWebdavEvent event) throws VetoException;
/**
* Called before a single resource is deleted while a WebDAV COPY request.
*
* <li>event source: the [EMAIL PROTECTED]
org.apache.slide.webdav.method.CopyMethod}
* <li>event sourceUri: <code>null</code>
* <li>event destinationUri: the new resource URI
*/
public void copyBeforeDelete(DetailedWebdavEvent event)
throws VetoException;
/**
* Called after a single resource is deleted while a WebDAV COPY request.
*
* <li>event source: the [EMAIL PROTECTED]
org.apache.slide.webdav.method.CopyMethod}
* <li>event sourceUri: <code>null</code>
* <li>event destinationUri: the new resource URI
*/
public void copyAfterDelete(DetailedWebdavEvent event) throws
VetoException;
/**
* Called before a single resource is deleted while a WebDAV DELETE
request.
*
* <li>event source: the [EMAIL PROTECTED]
org.apache.slide.webdav.method.DeleteMethod}
* <li>event sourceUri: <code>null</code>
* <li>event destinationUri: the new resource URI
*/
public void deleteBeforeDelete(DetailedWebdavEvent event)
throws VetoException;
/**
* Called after a single resource is deleted while a WebDAV DELETE
request.
*
* <li>event source: the [EMAIL PROTECTED]
org.apache.slide.webdav.method.DeleteMethod}
* <li>event sourceUri: <code>null</code>
* <li>event destinationUri: the new resource URI
*/
public void deleteAfterDelete(DetailedWebdavEvent event)
throws VetoException;
/**
* Called before a resource is put under version control within a WebDAV
* request. This may happen while VERSION-CONTROL, PUT, COPY.
*
* <li>event source: the corresponding method object.
* <li>event sourceUri: <code>null</code> or the URI of an existing
version
* <li>event destinationUri: the new resource URI
*/
public void versionControlBefore(DetailedWebdavEvent event)
throws VetoException;
/**
* Called after a resource is put under version control within a WebDAV
* request. This can happen while e.g. VERSION-CONTROL, PUT, COPY.
*
* <li>event source: the corresponding method object.
* <li>event sourceUri: <code>null</code> or the URI of an existing
version
* <li>event destinationUri: the new resource URI
*/
public void versionControlAfter(DetailedWebdavEvent event)
throws VetoException;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]