[Bedework-commit] caldav r202 - in trunk: boeingexchange/src/edu/rpi/cct/bedework/caldav bwcaldav/src/org/bedework/caldav/bwserver domino/src/edu/rpi/cct/bedework/caldav google/src/edu/rpi/cct/bedework/caldav server/src/org/bedework/caldav/server

svnadmin at bedework.org svnadmin at bedework.org
Mon Sep 17 16:37:22 EDT 2007


Author: douglm
Date: 2007-09-17 16:37:20 -0400 (Mon, 17 Sep 2007)
New Revision: 202

Modified:
   trunk/boeingexchange/src/edu/rpi/cct/bedework/caldav/BexchangeSysIntfImpl.java
   trunk/bwcaldav/src/org/bedework/caldav/bwserver/BwSysIntfImpl.java
   trunk/domino/src/edu/rpi/cct/bedework/caldav/DominoSysIntfImpl.java
   trunk/google/src/edu/rpi/cct/bedework/caldav/GoogleSysIntfImpl.java
   trunk/server/src/org/bedework/caldav/server/CaldavBwNode.java
   trunk/server/src/org/bedework/caldav/server/PostMethod.java
   trunk/server/src/org/bedework/caldav/server/SysIntf.java
Log:
CalDav realtime fixes

Some restore changes


Modified: trunk/boeingexchange/src/edu/rpi/cct/bedework/caldav/BexchangeSysIntfImpl.java
===================================================================
--- trunk/boeingexchange/src/edu/rpi/cct/bedework/caldav/BexchangeSysIntfImpl.java	2007-09-13 15:50:47 UTC (rev 201)
+++ trunk/boeingexchange/src/edu/rpi/cct/bedework/caldav/BexchangeSysIntfImpl.java	2007-09-17 20:37:20 UTC (rev 202)
@@ -76,12 +76,12 @@
 import org.bedework.icalendar.Icalendar;
 import org.bedework.icalendar.SAICalCallback;
 
-import edu.rpi.cct.webdav.servlet.common.WebdavUtils;
 import edu.rpi.cct.webdav.servlet.shared.PrincipalPropertySearch;
 import edu.rpi.cct.webdav.servlet.shared.WebdavBadRequest;
 import edu.rpi.cct.webdav.servlet.shared.WebdavException;
 import edu.rpi.cct.webdav.servlet.shared.WebdavNotFound;
 import edu.rpi.cct.webdav.servlet.shared.WebdavNsNode.PropertyTagEntry;
+import edu.rpi.cct.webdav.servlet.shared.WebdavNsNode.UrlHandler;
 import edu.rpi.cmt.access.Ace;
 import edu.rpi.cmt.access.Acl;
 import edu.rpi.cmt.access.PrincipalInfo;
@@ -217,8 +217,10 @@
 
   private IcalTranslator trans;
 
-  private String urlPrefix;
+  private UrlHandler urlHandler;
 
+  //private String urlPrefix;
+
   private String account;
 
   public void init(HttpServletRequest req,
@@ -231,7 +233,7 @@
 
       trans = new IcalTranslator(new SAICalCallback(getTimezones(), null),
                                  debug);
-      urlPrefix = WebdavUtils.getUrlPrefix(req);
+      urlHandler = new UrlHandler(req, false);
     } catch (Throwable t) {
       throw new WebdavException(t);
     }
@@ -253,21 +255,35 @@
     }
   }
 
-  /** Get a property handler
-   *
-   * @param ptype
-   * @return PropertyHandler
-   * @throws WebdavException
+  /* (non-Javadoc)
+   * @see org.bedework.caldav.server.SysIntf#getPropertyHandler(org.bedework.caldav.server.PropertyHandler.PropertyType)
    */
   public PropertyHandler getPropertyHandler(PropertyType ptype) throws WebdavException {
     return new MyPropertyHandler();
   }
 
+  /* (non-Javadoc)
+   * @see org.bedework.caldav.server.SysIntf#getUrlHandler()
+   */
+  public UrlHandler getUrlHandler() {
+    return urlHandler;
+  }
+
+  /* (non-Javadoc)
+   * @see org.bedework.caldav.server.SysIntf#getUrlPrefix()
+   * /
   public String getUrlPrefix() {
     return urlPrefix;
   }
 
   /* (non-Javadoc)
+   * @see org.bedework.caldav.server.SysIntf#getRelativeUrls()
+   * /
+  public boolean getRelativeUrls() {
+    return false;
+  }*/
+
+  /* (non-Javadoc)
    * @see org.bedework.caldav.server.SysIntf#isPrincipal(java.lang.String)
    */
   public boolean isPrincipal(String val) throws WebdavException {

Modified: trunk/bwcaldav/src/org/bedework/caldav/bwserver/BwSysIntfImpl.java
===================================================================
--- trunk/bwcaldav/src/org/bedework/caldav/bwserver/BwSysIntfImpl.java	2007-09-13 15:50:47 UTC (rev 201)
+++ trunk/bwcaldav/src/org/bedework/caldav/bwserver/BwSysIntfImpl.java	2007-09-17 20:37:20 UTC (rev 202)
@@ -56,7 +56,6 @@
 import org.bedework.icalendar.IcalTranslator;
 import org.bedework.icalendar.Icalendar;
 
-import edu.rpi.cct.webdav.servlet.common.WebdavUtils;
 import edu.rpi.cct.webdav.servlet.shared.PrincipalPropertySearch;
 import edu.rpi.cct.webdav.servlet.shared.WebdavBadRequest;
 import edu.rpi.cct.webdav.servlet.shared.WebdavException;
@@ -65,6 +64,7 @@
 import edu.rpi.cct.webdav.servlet.shared.WebdavProperty;
 import edu.rpi.cct.webdav.servlet.shared.WebdavUnauthorized;
 import edu.rpi.cct.webdav.servlet.shared.WebdavNsNode.PropertyTagEntry;
+import edu.rpi.cct.webdav.servlet.shared.WebdavNsNode.UrlHandler;
 import edu.rpi.cmt.access.Ace;
 import edu.rpi.cmt.access.Acl;
 import edu.rpi.cmt.access.PrincipalInfo;
@@ -109,8 +109,12 @@
   private IcalTranslator trans;
   private CalSvcI svci;
 
-  private String urlPrefix;
+  private UrlHandler urlHandler;
 
+  //private String urlPrefix;
+
+  //private boolean relativeUrls = false;
+
   public void init(HttpServletRequest req,
                    String envPrefix,
                    String account,
@@ -133,7 +137,7 @@
 
       sb.append(req.getContextPath());*/
 
-      urlPrefix = WebdavUtils.getUrlPrefix(req);
+      urlHandler = new UrlHandler(req, true);
     } catch (Throwable t) {
       throw new WebdavException(t);
     }
@@ -155,21 +159,35 @@
     }
   }
 
-  /** Get a property handler
-   *
-   * @param ptype
-   * @return PropertyHandler
-   * @throws WebdavException
+  /* (non-Javadoc)
+   * @see org.bedework.caldav.server.SysIntf#getPropertyHandler(org.bedework.caldav.server.PropertyHandler.PropertyType)
    */
   public PropertyHandler getPropertyHandler(PropertyType ptype) throws WebdavException {
     return new MyPropertyHandler();
   }
 
+  /* (non-Javadoc)
+   * @see org.bedework.caldav.server.SysIntf#getUrlHandler()
+   */
+  public UrlHandler getUrlHandler() {
+    return urlHandler;
+  }
+
+  /* (non-Javadoc)
+   * @see org.bedework.caldav.server.SysIntf#getUrlPrefix()
+   * /
   public String getUrlPrefix() {
     return urlPrefix;
   }
 
   /* (non-Javadoc)
+   * @see org.bedework.caldav.server.SysIntf#getRelativeUrls()
+   * /
+  public boolean getRelativeUrls() {
+    return relativeUrls;
+  }*/
+
+  /* (non-Javadoc)
    * @see org.bedework.caldav.server.SysIntf#isPrincipal(java.lang.String)
    */
   public boolean isPrincipal(String val) throws WebdavException {
@@ -199,7 +217,8 @@
    */
   public String makeHref(String id, int whoType) throws WebdavException {
     try {
-      return getUrlPrefix() + getSvci().getDirectories().makePrincipalUri(id, whoType);
+      return getUrlHandler().prefix(getSvci().getDirectories().makePrincipalUri(id, whoType));
+//      return getUrlPrefix() + getSvci().getDirectories().makePrincipalUri(id, whoType);
     } catch (Throwable t) {
       throw new WebdavException(t);
     }
@@ -403,7 +422,8 @@
       }
 
       for (BwCalendar cal: cals) {
-        hrefs.add(getUrlPrefix() + cal.getPath());
+        hrefs.add(getUrlHandler().prefix(cal.getPath()));
+        //hrefs.add(getUrlPrefix() + cal.getPath());
       }
 
       return hrefs;

Modified: trunk/domino/src/edu/rpi/cct/bedework/caldav/DominoSysIntfImpl.java
===================================================================
--- trunk/domino/src/edu/rpi/cct/bedework/caldav/DominoSysIntfImpl.java	2007-09-13 15:50:47 UTC (rev 201)
+++ trunk/domino/src/edu/rpi/cct/bedework/caldav/DominoSysIntfImpl.java	2007-09-17 20:37:20 UTC (rev 202)
@@ -78,13 +78,13 @@
 import org.bedework.icalendar.Icalendar;
 import org.bedework.icalendar.SAICalCallback;
 
-import edu.rpi.cct.webdav.servlet.common.WebdavUtils;
 import edu.rpi.cct.webdav.servlet.shared.PrincipalPropertySearch;
 import edu.rpi.cct.webdav.servlet.shared.WebdavBadRequest;
 import edu.rpi.cct.webdav.servlet.shared.WebdavException;
 import edu.rpi.cct.webdav.servlet.shared.WebdavNotFound;
 import edu.rpi.cct.webdav.servlet.shared.WebdavServerError;
 import edu.rpi.cct.webdav.servlet.shared.WebdavNsNode.PropertyTagEntry;
+import edu.rpi.cct.webdav.servlet.shared.WebdavNsNode.UrlHandler;
 import edu.rpi.cmt.access.Ace;
 import edu.rpi.cmt.access.Acl;
 import edu.rpi.cmt.access.PrincipalInfo;
@@ -218,8 +218,10 @@
 
   private IcalTranslator trans;
 
-  private String urlPrefix;
+  private UrlHandler urlHandler;
 
+  //private String urlPrefix;
+
   public void init(HttpServletRequest req,
                    String envPrefix,
                    String account,
@@ -230,7 +232,7 @@
 
       trans = new IcalTranslator(new SAICalCallback(getTimezones(), null),
                                  debug);
-      urlPrefix = WebdavUtils.getUrlPrefix(req);
+      urlHandler = new UrlHandler(req, false);
     } catch (Throwable t) {
       throw new WebdavException(t);
     }
@@ -252,21 +254,35 @@
     }
   }
 
-  /** Get a property handler
-   *
-   * @param ptype
-   * @return PropertyHandler
-   * @throws WebdavException
+  /* (non-Javadoc)
+   * @see org.bedework.caldav.server.SysIntf#getPropertyHandler(org.bedework.caldav.server.PropertyHandler.PropertyType)
    */
   public PropertyHandler getPropertyHandler(PropertyType ptype) throws WebdavException {
     return new MyPropertyHandler();
   }
 
+  /* (non-Javadoc)
+   * @see org.bedework.caldav.server.SysIntf#getUrlHandler()
+   */
+  public UrlHandler getUrlHandler() {
+    return urlHandler;
+  }
+
+  /* (non-Javadoc)
+   * @see org.bedework.caldav.server.SysIntf#getUrlPrefix()
+   * /
   public String getUrlPrefix() {
     return urlPrefix;
   }
 
   /* (non-Javadoc)
+   * @see org.bedework.caldav.server.SysIntf#getRelativeUrls()
+   * /
+  public boolean getRelativeUrls() {
+    return false;
+  }*/
+
+  /* (non-Javadoc)
    * @see org.bedework.caldav.server.SysIntf#isPrincipal(java.lang.String)
    */
   public boolean isPrincipal(String val) throws WebdavException {

Modified: trunk/google/src/edu/rpi/cct/bedework/caldav/GoogleSysIntfImpl.java
===================================================================
--- trunk/google/src/edu/rpi/cct/bedework/caldav/GoogleSysIntfImpl.java	2007-09-13 15:50:47 UTC (rev 201)
+++ trunk/google/src/edu/rpi/cct/bedework/caldav/GoogleSysIntfImpl.java	2007-09-17 20:37:20 UTC (rev 202)
@@ -74,12 +74,12 @@
 import org.bedework.calfacade.util.ChangeTable;
 import org.bedework.icalendar.Icalendar;
 
-import edu.rpi.cct.webdav.servlet.common.WebdavUtils;
 import edu.rpi.cct.webdav.servlet.shared.PrincipalPropertySearch;
 import edu.rpi.cct.webdav.servlet.shared.WebdavBadRequest;
 import edu.rpi.cct.webdav.servlet.shared.WebdavException;
 import edu.rpi.cct.webdav.servlet.shared.WebdavNotFound;
 import edu.rpi.cct.webdav.servlet.shared.WebdavNsNode.PropertyTagEntry;
+import edu.rpi.cct.webdav.servlet.shared.WebdavNsNode.UrlHandler;
 import edu.rpi.cmt.access.Ace;
 import edu.rpi.cmt.access.Acl;
 import edu.rpi.cmt.access.PrincipalInfo;
@@ -128,7 +128,7 @@
 
   private transient Logger log;
 
-  private String urlPrefix;
+  private UrlHandler urlHandler;
 
   private String account;
 
@@ -151,7 +151,7 @@
     try {
       this.debug = debug;
       this.account = account;
-      urlPrefix = WebdavUtils.getUrlPrefix(req);
+      urlHandler = new UrlHandler(req, false);
     } catch (Throwable t) {
       throw new WebdavException(t);
     }
@@ -173,21 +173,35 @@
     }
   }
 
-  /** Get a property handler
-   *
-   * @param ptype
-   * @return PropertyHandler
-   * @throws WebdavException
+  /* (non-Javadoc)
+   * @see org.bedework.caldav.server.SysIntf#getPropertyHandler(org.bedework.caldav.server.PropertyHandler.PropertyType)
    */
   public PropertyHandler getPropertyHandler(PropertyType ptype) throws WebdavException {
     return new MyPropertyHandler();
   }
 
+  /* (non-Javadoc)
+   * @see org.bedework.caldav.server.SysIntf#getUrlHandler()
+   */
+  public UrlHandler getUrlHandler() {
+    return urlHandler;
+  }
+
+  /* (non-Javadoc)
+   * @see org.bedework.caldav.server.SysIntf#getUrlPrefix()
+   * /
   public String getUrlPrefix() {
     return urlPrefix;
   }
 
   /* (non-Javadoc)
+   * @see org.bedework.caldav.server.SysIntf#getRelativeUrls()
+   * /
+  public boolean getRelativeUrls() {
+    return false;
+  }*/
+
+  /* (non-Javadoc)
    * @see org.bedework.caldav.server.SysIntf#isPrincipal(java.lang.String)
    */
   public boolean isPrincipal(String val) throws WebdavException {

Modified: trunk/server/src/org/bedework/caldav/server/CaldavBwNode.java
===================================================================
--- trunk/server/src/org/bedework/caldav/server/CaldavBwNode.java	2007-09-13 15:50:47 UTC (rev 201)
+++ trunk/server/src/org/bedework/caldav/server/CaldavBwNode.java	2007-09-17 20:37:20 UTC (rev 202)
@@ -62,7 +62,7 @@
   private SysIntf sysi;
 
   CaldavBwNode(CaldavURI cdURI, SysIntf sysi, boolean debug) {
-    super(sysi.getUrlPrefix(), cdURI.getPath(), cdURI.isCollection(), debug);
+    super(sysi.getUrlHandler(), cdURI.getPath(), cdURI.isCollection(), debug);
 
     //this.cdURI = cdURI;
     this.sysi = sysi;
@@ -73,7 +73,7 @@
   }
 
   CaldavBwNode(boolean collection, SysIntf sysi, boolean debug) {
-    super(sysi.getUrlPrefix(), null, collection, debug);
+    super(sysi.getUrlHandler(), null, collection, debug);
 
     //this.cdURI = cdURI;
     this.sysi = sysi;
@@ -158,13 +158,20 @@
 
     try {
       if (tag.equals(CaldavTags.calendarUserAddressSet)) {
-        xml.property(tag, sysi.userToCaladdr(getOwner()));
+        xml.openTag(tag);
+        generateHref(xml, sysi.userToCaladdr(getOwner()));
+        xml.closeTag(tag);
+
         return true;
       }
 
       if (tag.equals(CaldavTags.calendarHomeSet)) {
+        /*
         xml.property(tag, sysi.getUrlPrefix() +
                      sysi.getCalUserInfo(getOwner(), false).userHomePath);
+                     */
+        xml.property(tag, sysi.getUrlHandler().prefix(
+                     sysi.getCalUserInfo(getOwner(), false).userHomePath));
         return true;
       }
 

Modified: trunk/server/src/org/bedework/caldav/server/PostMethod.java
===================================================================
--- trunk/server/src/org/bedework/caldav/server/PostMethod.java	2007-09-13 15:50:47 UTC (rev 201)
+++ trunk/server/src/org/bedework/caldav/server/PostMethod.java	2007-09-17 20:37:20 UTC (rev 202)
@@ -176,11 +176,14 @@
         return null;
       }
 
+      return sysi.getUrlHandler().unprefix(val);
+      /*
       if (val.startsWith(sysi.getUrlPrefix())) {
         return val.substring(sysi.getUrlPrefix().length());
       }
 
       return val;
+      */
     }
   }
 
@@ -387,10 +390,13 @@
 
         /* See if it's a valid calendar user. */
         String cn = organizer.getOrganizerUri();
+        /*
         if (cn.startsWith(sysi.getUrlPrefix())) {
           cn = cn.substring(sysi.getUrlPrefix().length());
           organizer.setOrganizerUri(cn);
         }
+        */
+        organizer.setOrganizerUri(sysi.getUrlHandler().unprefix(cn));
         CalUserInfo organizerInfo = sysi.getCalUserInfo(sysi.caladdrToUser(cn),
                                                         false);
 
@@ -465,7 +471,9 @@
     for (ScheduleRecipientResult srr: sr.recipientResults) {
       openTag(CaldavTags.response);
 
-      property(CaldavTags.recipient, srr.recipient);
+      openTag(CaldavTags.recipient);
+      property(WebdavTags.href, srr.recipient);
+      closeTag(CaldavTags.recipient);
 
       setReqstat(srr.status);
       closeTag(CaldavTags.response);
@@ -499,7 +507,9 @@
 
     for (ScheduleRecipientResult srr: sr.recipientResults) {
       openTag(CaldavTags.response);
-      property(CaldavTags.recipient, srr.recipient);
+      openTag(CaldavTags.recipient);
+      property(WebdavTags.href, srr.recipient);
+      closeTag(CaldavTags.recipient);
       setReqstat(srr.status);
 
       BwEvent rfb = srr.freeBusy;

Modified: trunk/server/src/org/bedework/caldav/server/SysIntf.java
===================================================================
--- trunk/server/src/org/bedework/caldav/server/SysIntf.java	2007-09-13 15:50:47 UTC (rev 201)
+++ trunk/server/src/org/bedework/caldav/server/SysIntf.java	2007-09-17 20:37:20 UTC (rev 202)
@@ -42,6 +42,7 @@
 
 import edu.rpi.cct.webdav.servlet.shared.PrincipalPropertySearch;
 import edu.rpi.cct.webdav.servlet.shared.WebdavException;
+import edu.rpi.cct.webdav.servlet.shared.WebdavNsNode.UrlHandler;
 import edu.rpi.cmt.access.Acl;
 import edu.rpi.cmt.access.PrincipalInfo;
 import edu.rpi.cmt.access.Acl.CurrentAccess;
@@ -95,10 +96,20 @@
   public PropertyHandler getPropertyHandler(PropertyType ptype) throws WebdavException;
 
   /**
+   * @return UrlHandler object to manipulate urls.
+   */
+  public UrlHandler getUrlHandler();
+
+  /* *
    * @return String url prefix derived from request.
-   */
+   * /
   public String getUrlPrefix();
 
+  /* *
+   * @return boolean - true if using relative urls for broken clients
+   * /
+  public boolean getRelativeUrls();*/
+
   /** Does the value appear to represent a valid principal?
    *
    * @param val



More information about the Bedework-commit mailing list