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