[Bedework-commit] caldav r140 - 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
Fri Mar 30 10:56:59 EDT 2007


Author: douglm
Date: 2007-03-30 10:56:58 -0400 (Fri, 30 Mar 2007)
New Revision: 140

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/CaldavComponentNode.java
   trunk/server/src/org/bedework/caldav/server/PostMethod.java
   trunk/server/src/org/bedework/caldav/server/SysIntf.java
Log:
Fixes to freebusy. Generate freebusy periods with duration.

Fold output for caldav (needs to be done for export also)

Modified: trunk/boeingexchange/src/edu/rpi/cct/bedework/caldav/BexchangeSysIntfImpl.java
===================================================================
--- trunk/boeingexchange/src/edu/rpi/cct/bedework/caldav/BexchangeSysIntfImpl.java	2007-03-28 01:56:17 UTC (rev 139)
+++ trunk/boeingexchange/src/edu/rpi/cct/bedework/caldav/BexchangeSysIntfImpl.java	2007-03-30 14:56:58 UTC (rev 140)
@@ -339,7 +339,7 @@
     throw new WebdavException("unimplemented");
   }
 
-  public ScheduleResult requestFreeBusy(BwFreeBusy val) throws WebdavException {
+  public ScheduleResult requestFreeBusy(BwEvent val) 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	2007-03-28 01:56:17 UTC (rev 139)
+++ trunk/bwcaldav/src/org/bedework/caldav/bwserver/BwSysIntfImpl.java	2007-03-30 14:56:58 UTC (rev 140)
@@ -486,10 +486,20 @@
     }
   }
 
-  public ScheduleResult requestFreeBusy(BwFreeBusy val) throws WebdavException {
+  public ScheduleResult requestFreeBusy(BwEvent val) throws WebdavException {
     try {
-      return getSvci().requestFreeBusy(val);
+      val.setOwner(svci.findUser(account, false));
+      if (Icalendar.itipReplyMethodType(val.getScheduleMethod())) {
+        return getSvci().scheduleResponse(val);
+      }
+
+      return getSvci().schedule(val);
+    } catch (CalFacadeAccessException cfae) {
+      throw new WebdavForbidden();
     } catch (CalFacadeException cfe) {
+      if (CalFacadeException.duplicateGuid.equals(cfe.getMessage())) {
+        throw new WebdavBadRequest("Duplicate-guid");
+      }
       throw new WebdavException(cfe);
     } catch (Throwable t) {
       throw new WebdavException(t);

Modified: trunk/domino/src/edu/rpi/cct/bedework/caldav/DominoSysIntfImpl.java
===================================================================
--- trunk/domino/src/edu/rpi/cct/bedework/caldav/DominoSysIntfImpl.java	2007-03-28 01:56:17 UTC (rev 139)
+++ trunk/domino/src/edu/rpi/cct/bedework/caldav/DominoSysIntfImpl.java	2007-03-30 14:56:58 UTC (rev 140)
@@ -337,7 +337,7 @@
     throw new WebdavException("unimplemented");
   }
 
-  public ScheduleResult requestFreeBusy(BwFreeBusy val) throws WebdavException {
+  public ScheduleResult requestFreeBusy(BwEvent val) throws WebdavException {
     throw new WebdavException("unimplemented");
   }
 
@@ -431,7 +431,7 @@
         if (!bstart.equals(p.getStart())) {
           /* First free period may be at start of requested time */
           Period busyp = new Period(bstart, p.getStart());
-          fbcomp.addPeriod(busyp);
+          fbcomp.addPeriod(busyp.getStart(), busyp.getEnd());
         }
 
         bstart = p.getEnd();
@@ -442,7 +442,7 @@
 
       if (!bstart.equals(bend)) {
         Period busyp = new Period(bstart, bend);
-        fbcomp.addPeriod(busyp);
+        fbcomp.addPeriod(busyp.getStart(), busyp.getEnd());
       }
 
       return fb;

Modified: trunk/google/src/edu/rpi/cct/bedework/caldav/GoogleSysIntfImpl.java
===================================================================
--- trunk/google/src/edu/rpi/cct/bedework/caldav/GoogleSysIntfImpl.java	2007-03-28 01:56:17 UTC (rev 139)
+++ trunk/google/src/edu/rpi/cct/bedework/caldav/GoogleSysIntfImpl.java	2007-03-30 14:56:58 UTC (rev 140)
@@ -78,7 +78,6 @@
 import edu.rpi.cmt.access.Acl.CurrentAccess;
 
 import net.fortuna.ical4j.model.Calendar;
-import net.fortuna.ical4j.model.Period;
 import net.fortuna.ical4j.model.TimeZone;
 
 import org.apache.log4j.Logger;
@@ -255,7 +254,7 @@
     throw new WebdavException("unimplemented");
   }
 
-  public ScheduleResult requestFreeBusy(BwFreeBusy val) throws WebdavException {
+  public ScheduleResult requestFreeBusy(BwEvent val) throws WebdavException {
     throw new WebdavException("unimplemented");
   }
 
@@ -365,13 +364,7 @@
           net.fortuna.ical4j.model.DateTime icalEnd =
             makeIcalDateTime(w.getEndTime());
 
-          Period per = new Period(icalStart, icalEnd);
-
-          fbc.addPeriod(per);
-
-          if (debug) {
-            trace("Event entry: period " + per);
-          }
+          fbc.addPeriod(icalStart, icalEnd);
         }
 
         fb.addTime(fbc);

Modified: trunk/server/src/org/bedework/caldav/server/CaldavComponentNode.java
===================================================================
--- trunk/server/src/org/bedework/caldav/server/CaldavComponentNode.java	2007-03-28 01:56:17 UTC (rev 139)
+++ trunk/server/src/org/bedework/caldav/server/CaldavComponentNode.java	2007-03-30 14:56:58 UTC (rev 140)
@@ -73,10 +73,13 @@
 import edu.rpi.sss.util.xml.QName;
 import edu.rpi.sss.util.xml.XmlEmit;
 
+import net.fortuna.ical4j.data.CalendarOutputter;
 import net.fortuna.ical4j.model.Calendar;
 import net.fortuna.ical4j.model.Component;
 import net.fortuna.ical4j.model.ComponentList;
 
+import java.io.StringWriter;
+import java.io.Writer;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
@@ -663,7 +666,12 @@
         ical = getSysi().toCalendar(eventInfo);
       }
       if ((compString == null)) {
-        compString = ical.toString();
+        CalendarOutputter co = new CalendarOutputter(false);
+
+        Writer wtr =  new StringWriter();
+        co.output(ical, wtr);
+        compString = wtr.toString();
+//        compString = ical.toString();
       }
     } catch (Throwable t) {
       throw new WebdavException(t);

Modified: trunk/server/src/org/bedework/caldav/server/PostMethod.java
===================================================================
--- trunk/server/src/org/bedework/caldav/server/PostMethod.java	2007-03-28 01:56:17 UTC (rev 139)
+++ trunk/server/src/org/bedework/caldav/server/PostMethod.java	2007-03-30 14:56:58 UTC (rev 140)
@@ -61,8 +61,8 @@
 import org.bedework.calfacade.ScheduleResult;
 import org.bedework.calfacade.ScheduleResult.ScheduleRecipientResult;
 import org.bedework.davdefs.CaldavTags;
+import org.bedework.icalendar.IcalTranslator;
 import org.bedework.icalendar.Icalendar;
-import org.bedework.icalendar.VFreeUtil;
 
 import edu.rpi.cct.webdav.servlet.common.MethodBase;
 import edu.rpi.cct.webdav.servlet.shared.WebdavException;
@@ -70,8 +70,6 @@
 import edu.rpi.cct.webdav.servlet.shared.WebdavNsIntf;
 import edu.rpi.cct.webdav.servlet.shared.WebdavNsNode;
 
-import net.fortuna.ical4j.model.component.VFreeBusy;
-
 import java.util.Collection;
 import java.util.Enumeration;
 import java.util.TreeSet;
@@ -366,7 +364,7 @@
   private void handleFreeBusy(CaldavBWIntf intf,
                               RequestPars pars,
                               HttpServletResponse resp) throws WebdavException {
-    BwFreeBusy fb = pars.ic.getFreeBusy();
+    BwEvent fb = pars.ic.getFreeBusy();
     fb.setRecipients(pars.recipients);
     fb.setOriginator(pars.originator);
     fb.setScheduleMethod(pars.ic.getMethodType());
@@ -386,16 +384,16 @@
 
       BwFreeBusy rfb = srr.freeBusy;
       if (rfb != null) {
-        VFreeBusy vfreeBusy;
         try {
-          vfreeBusy = VFreeUtil.toVFreeBusy(rfb);
+          cdataProperty(CaldavTags.calendarData,
+                        IcalTranslator.toIcalString(Icalendar.methodTypeNone,
+                                                    rfb));
         } catch (Throwable t) {
           if (debug) {
             error(t);
           }
           throw new WebdavException(t);
         }
-        cdataProperty(CaldavTags.calendarData, vfreeBusy.toString());
       }
 
       setReqstat(srr.status);

Modified: trunk/server/src/org/bedework/caldav/server/SysIntf.java
===================================================================
--- trunk/server/src/org/bedework/caldav/server/SysIntf.java	2007-03-28 01:56:17 UTC (rev 139)
+++ trunk/server/src/org/bedework/caldav/server/SysIntf.java	2007-03-30 14:56:58 UTC (rev 140)
@@ -378,7 +378,7 @@
    * @return ScheduleResult
    * @throws WebdavException
    */
-  public ScheduleResult requestFreeBusy(BwFreeBusy val)
+  public ScheduleResult requestFreeBusy(BwEvent val)
           throws WebdavException;
 
   /** Generate a free busy object for the given time period which reflects



More information about the Bedework-commit mailing list