[Bedework-commit] calendarapi r417 - in trunk: client/src/org/bedework/client/caldav icalendar/src/org/bedework/icalendar

svnadmin at bedework.org svnadmin at bedework.org
Wed Sep 19 10:43:33 EDT 2007


Author: douglm
Date: 2007-09-19 10:43:32 -0400 (Wed, 19 Sep 2007)
New Revision: 417

Modified:
   trunk/client/src/org/bedework/client/caldav/CalDavClient.java
   trunk/icalendar/src/org/bedework/icalendar/IcalTranslator.java
   trunk/icalendar/src/org/bedework/icalendar/VEventUtil.java
Log:
freebusy request must have UTC start/end

Fixes for realtime


Modified: trunk/client/src/org/bedework/client/caldav/CalDavClient.java
===================================================================
--- trunk/client/src/org/bedework/client/caldav/CalDavClient.java	2007-09-19 12:55:36 UTC (rev 416)
+++ trunk/client/src/org/bedework/client/caldav/CalDavClient.java	2007-09-19 14:43:32 UTC (rev 417)
@@ -264,6 +264,8 @@
             fbel.setCalData(ical.getEventInfo());
           } else if (WebdavTags.error.nodeMatches(respel)) {
             fbel.setDavError(respel.getFirstChild().getLocalName());
+          } else if (WebdavTags.responseDescription.nodeMatches(respel)) {
+            // XXX Not processed yet
           } else {
             throw new CalFacadeException(CalFacadeException.badResponse);
           }

Modified: trunk/icalendar/src/org/bedework/icalendar/IcalTranslator.java
===================================================================
--- trunk/icalendar/src/org/bedework/icalendar/IcalTranslator.java	2007-09-19 12:55:36 UTC (rev 416)
+++ trunk/icalendar/src/org/bedework/icalendar/IcalTranslator.java	2007-09-19 14:43:32 UTC (rev 417)
@@ -615,6 +615,10 @@
    */
   private void addIcalTimezones(Calendar cal, BwEvent ev,
                                 TreeSet<String> added) throws CalFacadeException {
+    if (ev.getEntityType() == CalFacadeDefs.entityTypeFreeAndBusy) {
+      return;
+    }
+
     BwUser owner = ev.getOwner();
 
     addIcalTimezone(cal, ev.getDtstart().getTzid(), owner, added);

Modified: trunk/icalendar/src/org/bedework/icalendar/VEventUtil.java
===================================================================
--- trunk/icalendar/src/org/bedework/icalendar/VEventUtil.java	2007-09-19 12:55:36 UTC (rev 416)
+++ trunk/icalendar/src/org/bedework/icalendar/VEventUtil.java	2007-09-19 14:43:32 UTC (rev 417)
@@ -100,7 +100,9 @@
 import net.fortuna.ical4j.model.property.Created;
 import net.fortuna.ical4j.model.property.DateListProperty;
 import net.fortuna.ical4j.model.property.Description;
+import net.fortuna.ical4j.model.property.DtEnd;
 import net.fortuna.ical4j.model.property.DtStamp;
+import net.fortuna.ical4j.model.property.DtStart;
 import net.fortuna.ical4j.model.property.Duration;
 import net.fortuna.ical4j.model.property.ExDate;
 import net.fortuna.ical4j.model.property.ExRule;
@@ -152,6 +154,7 @@
     try {
       CalendarComponent comp;
       PropertyList pl = new PropertyList();
+      boolean freeBusy = false;
 
       int entityType = val.getEntityType();
       if (entityType == CalFacadeDefs.entityTypeEvent) {
@@ -162,6 +165,7 @@
         comp = new VJournal(pl);
       } else if (entityType == CalFacadeDefs.entityTypeFreeAndBusy) {
         comp = new VFreeBusy(pl);
+        freeBusy = true;
       } else {
         throw new CalFacadeException("org.bedework.invalid.entity.type",
                                      String.valueOf(entityType));
@@ -260,8 +264,11 @@
 
       if (!val.getNoStart()) {
         if (val.getEndType() == BwEvent.endTypeDate) {
-          prop = val.getDtend().makeDtEnd(timezones);
-          pl.add(prop);
+          DtEnd dtend = val.getDtend().makeDtEnd(timezones);
+          if (freeBusy) {
+            dtend.setUtc(true);
+          }
+          pl.add(dtend);
         } else if (val.getEndType() == BwEvent.endTypeDuration) {
           addProperty(comp, new Duration(new Dur(val.getDuration())));
         }
@@ -278,8 +285,11 @@
       /* ------------------- DtStart -------------------- */
 
       if (!val.getNoStart()) {
-        prop = val.getDtstart().makeDtStart(timezones);
-        pl.add(prop);
+        DtStart dtstart = val.getDtstart().makeDtStart(timezones);
+        if (freeBusy) {
+          dtstart.setUtc(true);
+        }
+        pl.add(dtstart);
       }
 
       /* ------------------- ExDate --below------------ */
@@ -308,7 +318,9 @@
             PeriodList pdl =  fb.getPeriods();
 
             for (Period p: fbc.getPeriods()) {
-              pdl.add(p);
+              // XXX inverse.ca plugin cannot handle durations.
+              Period np = new Period(p.getStart(), p.getEnd());
+              pdl.add(np);
             }
 
             pl.add(fb);



More information about the Bedework-commit mailing list