[Bedework-commit] webdav r98 - in trunk/server/src/edu/rpi/cct/webdav/servlet: common shared

svnadmin at bedework.org svnadmin at bedework.org
Thu Jun 28 00:54:48 EDT 2007


Author: douglm
Date: 2007-06-28 00:54:46 -0400 (Thu, 28 Jun 2007)
New Revision: 98

Modified:
   trunk/server/src/edu/rpi/cct/webdav/servlet/common/MethodBase.java
   trunk/server/src/edu/rpi/cct/webdav/servlet/shared/WebdavNsIntf.java
   trunk/server/src/edu/rpi/cct/webdav/servlet/shared/WebdavNsNode.java
Log:
CalDAV fixes to get Apples iCal working 

Also a number of (benign) changes to use StringBuilder instead of StringBuffer


Modified: trunk/server/src/edu/rpi/cct/webdav/servlet/common/MethodBase.java
===================================================================
--- trunk/server/src/edu/rpi/cct/webdav/servlet/common/MethodBase.java	2007-06-20 15:06:58 UTC (rev 97)
+++ trunk/server/src/edu/rpi/cct/webdav/servlet/common/MethodBase.java	2007-06-28 04:54:46 UTC (rev 98)
@@ -463,7 +463,9 @@
         }
 
         addNs(pr.getTag().getNamespaceURI());
-        intf.generatePropValue(node, pr, false);
+        if (!intf.generatePropValue(node, pr, false)) {
+          unknowns.add(pr);
+        }
       }
     }
 

Modified: trunk/server/src/edu/rpi/cct/webdav/servlet/shared/WebdavNsIntf.java
===================================================================
--- trunk/server/src/edu/rpi/cct/webdav/servlet/shared/WebdavNsIntf.java	2007-06-20 15:06:58 UTC (rev 97)
+++ trunk/server/src/edu/rpi/cct/webdav/servlet/shared/WebdavNsIntf.java	2007-06-28 04:54:46 UTC (rev 98)
@@ -807,50 +807,49 @@
    * @param node
    * @param pr
    * @param allProp   true if we're doing allprop
-   * @return int status
+   * @return boolean false for unknown (or unset)
    * @throws WebdavException
    */
-  public int generatePropValue(WebdavNsNode node,
-                               WebdavProperty pr,
-                               boolean allProp) throws WebdavException {
+  public boolean generatePropValue(WebdavNsNode node,
+                                   WebdavProperty pr,
+                                   boolean allProp) throws WebdavException {
     QName tag = pr.getTag();
     String ns = tag.getNamespaceURI();
-    int status = HttpServletResponse.SC_OK;
 
     try {
       /* Deal with webdav properties */
       if (!ns.equals(WebdavTags.namespace)) {
         // Not ours
-        xml.emptyTag(tag);
-        return HttpServletResponse.SC_NOT_FOUND;
+        //xml.emptyTag(tag);
+        return false;
       }
 
       if (tag.equals(WebdavTags.lockdiscovery)) {
         // dav 13.8
-        xml.emptyTag(tag);
-        return HttpServletResponse.SC_NOT_FOUND;
+        //xml.emptyTag(tag);
+        return false;
       }
 
       if (tag.equals(WebdavTags.source)) {
         // dav 13.10
-        xml.emptyTag(tag);
-        return HttpServletResponse.SC_NOT_FOUND;
+        //xml.emptyTag(tag);
+        return false;
       }
 
       if (tag.equals(WebdavTags.supportedlock)) {
         // dav 13.11
-        xml.emptyTag(tag);
-        return HttpServletResponse.SC_NOT_FOUND;
+        //xml.emptyTag(tag);
+        return false;
       }
 
       if (tag.equals(WebdavTags.aclRestrictions)) {
         // access 5.5
-        return HttpServletResponse.SC_NOT_FOUND;
+        return false;
       }
 
       if (tag.equals(WebdavTags.inheritedAclSet)) {
         // access 5.6
-        return HttpServletResponse.SC_NOT_FOUND;
+        return false;
       }
 
       if (tag.equals(WebdavTags.principalCollectionSet)) {
@@ -862,19 +861,18 @@
         }
 
         xml.closeTag(WebdavTags.principalCollectionSet);
-        return status;
+        return true;
       }
 
       /* Try the node for a value */
 
       if (node.generatePropertyValue(tag, this, allProp)) {
         // Generated by node
-        return status;
+        return true;
       }
 
       // Not known
-      xml.emptyTag(tag);
-      return HttpServletResponse.SC_NOT_FOUND;
+      return false;
     } catch (WebdavException wde) {
       throw wde;
     } catch (Throwable t) {

Modified: trunk/server/src/edu/rpi/cct/webdav/servlet/shared/WebdavNsNode.java
===================================================================
--- trunk/server/src/edu/rpi/cct/webdav/servlet/shared/WebdavNsNode.java	2007-06-20 15:06:58 UTC (rev 97)
+++ trunk/server/src/edu/rpi/cct/webdav/servlet/shared/WebdavNsNode.java	2007-06-28 04:54:46 UTC (rev 98)
@@ -525,6 +525,11 @@
 
       if (tag.equals(WebdavTags.resourcetype)) {
         // dav 13.9
+        if (!isPrincipal() && !isCollection()) {
+          xml.emptyTag(tag);
+          return true;
+        }
+
         xml.openTag(tag);
 
         if (isPrincipal()) {



More information about the Bedework-commit mailing list