[GroupDAV] Synclet-type converters for various GroupDAV servers?
Samuli Seppänen
groupdav@opengroupware.org
Tue, 26 Feb 2008 17:17:00 +0200
Hi!
I just encountered a problem with GroupDAV connector, OGo and Nokia
sync. The exact problem is not relevant, I can fix it, but it gave me an
idea...
First of all, I've noticed that every backend server (OGo, Exchange,
whatever) interprets VCALENDARS (VEVENTS, VTODO, etc.) differently. This
is especially true with "special" events, such as recurring events,
allday events and such. In addition, every (mobile) device acts
differently. In some cases I've noticed that
- First Funambol inbound synclet modifies the VCALENDAR
- Next Funambol foundation modules modify the VCALENDAR
- Next Funambol connector modifies the VCALENDAR
- Backend server reads the VCALENDAR the way it sees fit
The same goes the other way (from backend server to the device). As you
can see, it can be really tough to get some of the special events
through this in usable form.
The way I see it, it's always most useful to do the modifications to the
VCALENDARs _as late as possible_, so that they won't get modified again
before reaching their destination.
Now to the actual idea... How difficult would it be to create separate
(VCALENDAR) converter classes for each backend server? Or implement the
same code with Beanshell, like with Funambol synclets? User could then
select server type (OGo 1.0/OGo 1.1.x/Citadel...) and the appropriate
converter code would then be used automatically. GroupDAV connector's
core code wouldn't then have to touch VCALENDAR content at all -
everything would be handled by the server-specific code.
This would make it much easier to integrate the GroupDAV connector with
various backend servers - especially if the server-specific code was in
Beanshell (=no need to compile the GroupDAV connector code).
Please tell me what you think.
Samuli