[Bedework-commit] caldav r291 - 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
Thu Oct 2 09:52:23 EDT 2008


Author: douglm
Date: 2008-10-02 09:52:21 -0400 (Thu, 02 Oct 2008)
New Revision: 291

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/CaldavBWIntf.java
   trunk/server/src/org/bedework/caldav/server/CaldavCalNode.java
   trunk/server/src/org/bedework/caldav/server/MkcalendarMethod.java
   trunk/server/src/org/bedework/caldav/server/SysIntf.java
Log:
Changes to support implicit scheduling operations as defined in CalDAV scheduling draft 05

Bedework trunk is still a bit broken at this stage but sending of invitations appears to be working.

Replying is another matter...

Modified: trunk/boeingexchange/src/edu/rpi/cct/bedework/caldav/BexchangeSysIntfImpl.java
===================================================================
--- trunk/boeingexchange/src/edu/rpi/cct/bedework/caldav/BexchangeSysIntfImpl.java	2008-09-29 14:02:30 UTC (rev 290)
+++ trunk/boeingexchange/src/edu/rpi/cct/bedework/caldav/BexchangeSysIntfImpl.java	2008-10-02 13:52:21 UTC (rev 291)
@@ -396,6 +396,7 @@
 
   public Collection<BwEventProxy> addEvent(BwCalendar cal,
                                            EventInfo ei,
+                                           boolean noInvites,
                                            boolean rollbackOnError) throws WebdavException {
     throw new WebdavException("unimplemented");
   }

Modified: trunk/bwcaldav/src/org/bedework/caldav/bwserver/BwSysIntfImpl.java
===================================================================
--- trunk/bwcaldav/src/org/bedework/caldav/bwserver/BwSysIntfImpl.java	2008-09-29 14:02:30 UTC (rev 290)
+++ trunk/bwcaldav/src/org/bedework/caldav/bwserver/BwSysIntfImpl.java	2008-10-02 13:52:21 UTC (rev 291)
@@ -482,11 +482,17 @@
    *                   Events
    * ==================================================================== */
 
+  /* (non-Javadoc)
+   * @see org.bedework.caldav.server.SysIntf#addEvent(org.bedework.calfacade.BwCalendar, org.bedework.calfacade.svc.EventInfo, boolean, boolean)
+   */
   public Collection<BwEventProxy> addEvent(BwCalendar cal,
                                            EventInfo ei,
+                                           boolean noInvites,
                                            boolean rollbackOnError) throws WebdavException {
     try {
-      return getSvci().getEventsHandler().add(cal, ei, rollbackOnError).failedOverrides;
+      return getSvci().getEventsHandler().add(cal, ei, noInvites,
+                                              false,  // scheduling - inbox
+                                              rollbackOnError).failedOverrides;
     } catch (CalFacadeAccessException cfae) {
       throw new WebdavForbidden();
     } catch (CalFacadeException cfe) {
@@ -502,6 +508,9 @@
     }
   }
 
+  /* (non-Javadoc)
+   * @see org.bedework.caldav.server.SysIntf#updateEvent(org.bedework.calfacade.BwEvent, java.util.Collection, org.bedework.calfacade.util.ChangeTable)
+   */
   public void updateEvent(BwEvent event,
                           Collection<BwEventProxy> overrides,
                           ChangeTable changes) throws WebdavException {

Modified: trunk/domino/src/edu/rpi/cct/bedework/caldav/DominoSysIntfImpl.java
===================================================================
--- trunk/domino/src/edu/rpi/cct/bedework/caldav/DominoSysIntfImpl.java	2008-09-29 14:02:30 UTC (rev 290)
+++ trunk/domino/src/edu/rpi/cct/bedework/caldav/DominoSysIntfImpl.java	2008-10-02 13:52:21 UTC (rev 291)
@@ -396,6 +396,7 @@
 
   public Collection<BwEventProxy> addEvent(BwCalendar cal,
                                            EventInfo ei,
+                                           boolean noInvites,
                                            boolean rollbackOnError) throws WebdavException {
     throw new WebdavException("unimplemented");
   }

Modified: trunk/google/src/edu/rpi/cct/bedework/caldav/GoogleSysIntfImpl.java
===================================================================
--- trunk/google/src/edu/rpi/cct/bedework/caldav/GoogleSysIntfImpl.java	2008-09-29 14:02:30 UTC (rev 290)
+++ trunk/google/src/edu/rpi/cct/bedework/caldav/GoogleSysIntfImpl.java	2008-10-02 13:52:21 UTC (rev 291)
@@ -316,6 +316,7 @@
 
   public Collection<BwEventProxy> addEvent(BwCalendar cal,
                                            EventInfo ei,
+                                           boolean noInvites,
                                            boolean rollbackOnError) throws WebdavException {
     throw new WebdavException("unimplemented");
   }

Modified: trunk/server/src/org/bedework/caldav/server/CaldavBWIntf.java
===================================================================
--- trunk/server/src/org/bedework/caldav/server/CaldavBWIntf.java	2008-09-29 14:02:30 UTC (rev 290)
+++ trunk/server/src/org/bedework/caldav/server/CaldavBWIntf.java	2008-10-02 13:52:21 UTC (rev 291)
@@ -871,8 +871,10 @@
       created = true;
       ev.setName(entityName);
 
+      boolean noInvites = false; // based on header?
+
       /* Collection<BwEventProxy>failedOverrides = */
-        sysi.addEvent(cal, evinfo, true);
+        sysi.addEvent(cal, evinfo, noInvites, true);
 
       /*StringBuffer sb = new StringBuffer(cdUri.getPath());
       sb.append("/");

Modified: trunk/server/src/org/bedework/caldav/server/CaldavCalNode.java
===================================================================
--- trunk/server/src/org/bedework/caldav/server/CaldavCalNode.java	2008-09-29 14:02:30 UTC (rev 290)
+++ trunk/server/src/org/bedework/caldav/server/CaldavCalNode.java	2008-10-02 13:52:21 UTC (rev 291)
@@ -240,6 +240,20 @@
     return false;
   }
 
+  /**
+   * @param forMkCalendar
+   * @throws WebdavException
+   */
+  public void setDefaults(boolean forMkCalendar) throws WebdavException {
+    if (!forMkCalendar) {
+      return;
+    }
+
+    BwCalendar c = getCalendar(); // Unalias
+
+    c.setCalType(BwCalendar.calTypeSchedulingCollection);
+  }
+
   public Collection getChildren() throws WebdavException {
     /* For the moment we're going to do this the inefficient way.
        We really need to have calendar defs that can be expressed as a search

Modified: trunk/server/src/org/bedework/caldav/server/MkcalendarMethod.java
===================================================================
--- trunk/server/src/org/bedework/caldav/server/MkcalendarMethod.java	2008-09-29 14:02:30 UTC (rev 290)
+++ trunk/server/src/org/bedework/caldav/server/MkcalendarMethod.java	2008-10-02 13:52:21 UTC (rev 291)
@@ -29,7 +29,6 @@
 import edu.rpi.cct.webdav.servlet.common.PropPatchMethod;
 import edu.rpi.cct.webdav.servlet.shared.WebdavException;
 import edu.rpi.cct.webdav.servlet.shared.WebdavNsIntf;
-import edu.rpi.cct.webdav.servlet.shared.WebdavNsNode;
 import edu.rpi.sss.util.xml.tagdefs.CaldavTags;
 
 import javax.servlet.http.HttpServletRequest;
@@ -63,12 +62,14 @@
     /* Create the node */
     String resourceUri = getResourceUri(req);
 
-    WebdavNsNode node = getNsIntf().getNode(resourceUri,
-                                            WebdavNsIntf.existanceNot,
-                                            WebdavNsIntf.nodeTypeCollection);
+    CaldavCalNode node = (CaldavCalNode)getNsIntf().getNode(resourceUri,
+                                                            WebdavNsIntf.existanceNot,
+                                                            WebdavNsIntf.nodeTypeCollection);
 
     boolean success = true;
 
+    node.setDefaults(true);
+
     if (doc != null) {
       success = processDoc(req, resp, doc, node, CaldavTags.mkcalendar, true);
     }

Modified: trunk/server/src/org/bedework/caldav/server/SysIntf.java
===================================================================
--- trunk/server/src/org/bedework/caldav/server/SysIntf.java	2008-09-29 14:02:30 UTC (rev 290)
+++ trunk/server/src/org/bedework/caldav/server/SysIntf.java	2008-10-02 13:52:21 UTC (rev 291)
@@ -321,16 +321,20 @@
    *                   Events
    * ==================================================================== */
 
-  /** Add an event/todo/journal.
+  /** Add an event/task/journal. If this is a scheduling event we are adding,
+   * determined by examining the organizer and attendee properties, we will send
+   * out invitations to the attendees, unless the noInvites flag is set.
    *
    * @param cal          BwCalendar defining recipient calendar
    * @param ei           EventInfo object + overrides to be added
+   * @param noInvites    Set from request - if true don't send invites
    * @param rollbackOnError true if we rollback and throw an exception on error
    * @return Collection of overrides which did not match or null if all matched
    * @throws WebdavException
    */
  public Collection<BwEventProxy> addEvent(BwCalendar cal,
                                           EventInfo ei,
+                                          boolean noInvites,
                                           boolean rollbackOnError) throws WebdavException;
 
   /** Update an event/todo/journal.



More information about the Bedework-commit mailing list