[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