[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