You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by lu...@apache.org on 2004/07/13 11:28:10 UTC
cvs commit: jakarta-slide/src/webdav/server/org/apache/slide/webdav/method SubscribeMethod.java
luetzkendorf 2004/07/13 02:28:10
Modified: src/webdav/server/org/apache/slide/webdav/method
SubscribeMethod.java
Log:
some changes to satisfy the notification test cases
Revision Changes Path
1.8 +20 -10 jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/SubscribeMethod.java
Index: SubscribeMethod.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/SubscribeMethod.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- SubscribeMethod.java 5 Jun 2004 12:20:19 -0000 1.7
+++ SubscribeMethod.java 13 Jul 2004 09:28:10 -0000 1.8
@@ -61,13 +61,14 @@
protected void executeRequest() throws WebdavException {
try {
if ( WebdavEvent.SUBSCRIBE.isEnabled() ) EventDispatcher.getInstance().fireVetoableEvent(WebdavEvent.SUBSCRIBE, new WebdavEvent(this));
- String contentType = null; // FIXME: extend request header
+ String contentType = requestHeaders.getContentType();
String callback = requestHeaders.getCallback();
String notificationType = requestHeaders.getNotificationType();
int notificationDelay = requestHeaders.getNotificationDelay(0);
int subscriptionLifetime = requestHeaders.getSubscriptionLifetime(DEFAULT_SUBSCRIPTION_LIFETIME);
int depth = requestHeaders.getDepth(INFINITY);
int []subscriptionIDs = requestHeaders.getSubscriptionId();
+
if ( subscriptionIDs.length > 0 ) {
// renew subscribers
for ( int i = 0; i < subscriptionIDs.length; i++ ) {
@@ -77,13 +78,22 @@
}
}
} else {
- Subscriber subscriber = new Subscriber(requestUri, contentType, callback, notificationType, notificationDelay, subscriptionLifetime, depth);
+ if (notificationType == null) {
+ sendError(WebdavStatus.SC_BAD_REQUEST, "Notification-Type header missing.");
+ return;
+ } else {
+ // FIXME check for valid notification types
+ }
+ Subscriber subscriber = new Subscriber(requestUri,
+ contentType, callback, notificationType, notificationDelay,
+ subscriptionLifetime, depth);
int subscriptionID = NotificationTrigger.getInstance().addSubscriber(subscriber);
- resp.setHeader("call-back", callback);
- resp.setHeader("notification-type", notificationType);
- resp.setHeader("Subscription-lifetime", String.valueOf(subscriptionLifetime));
- resp.setHeader("Subscription-id", String.valueOf(subscriptionID));
- resp.setHeader("Content-Location", requestUri);
+ resp.setHeader(H_CALL_BACK, callback);
+ resp.setHeader(H_NOTIFICATION_TYPE, notificationType);
+ resp.setHeader(H_SUBSCRIPTION_LIFETIME, String.valueOf(subscriptionLifetime));
+ resp.setHeader(H_SUBSCRIPTION_ID, String.valueOf(subscriptionID));
+ resp.setHeader(H_CONTENT_LOCATION,
+ getSlideContextPath() + requestUri);
resp.setStatus(WebdavStatus.SC_OK);
}
} catch (Exception e) {
---------------------------------------------------------------------
To unsubscribe, e-mail: slide-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-dev-help@jakarta.apache.org