[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