[GroupDAV] Funambol Connector 1.1 Beta

Mathew McBride groupdav@opengroupware.org
Tue, 29 Aug 2006 23:05:04 +1000


Hello all,

Sorry for being a bit silent over the past few weeks on developments re 
connector - people do live 'down under' and for us, things get very busy 
and hectic at this time of the year .

Anyway, since the remaining issues with the connector were down to three 
main areas - vcal->ical data conversion, client tracking and code 
cleanup. One main issue were 'dupe bomb' items - corruption or removal 
of the tracking database can cause the client to get the data and 
duplicate it on the server.  The DAV code also needs some work - Dan @ 
USA.net has bought up a few issues which I'll be looking at soon in 
particular.
 
Last weekend I did a massive rewrite of the connector (hence version 
number hike) to attempt to solve the tracking problems and clean up the 
code - taking into account more documentation being available for 
Funambol 3, and more knowledge about the Funambol internals on my part 
as well. This time full functionality was working first time round :) 
*If you have patches for the old connector* - send them in, as it 
probably still has some effect on the codebase. 'Dupe bombs' are not 
resolved fully as far as the new code is concerned (yet), but such 
events are less likely to happen. Object names are now tracked too in a 
hope that enforcing one object per name will stop dupe bombs. (this 
enforcement isn't active yet)

Theres problems with OGo though - last time I tested with OGo everything 
was working right (with a nightly trunk from ~2 months back), but when I 
tried to fire up the connector on 1.1.5 (using debian packages as 
mentioned several times recently on ogo-users), adds and deletes work, 
but apart from the first sync, new and updated items aren't picked up. 
It looks like propfinds aren't working as they should, I'll take another 
look soon.

Anyway, new in this release:
* QUOTED-PRINTABLE support (thanks Ole Dalgaard). Note that Synthesis 
for PalmOS in particular like to send Quoted Printable for non-ASCII 
chars not understood by Commons  Codec - so some characters are filtered 
outright.
* JBoss works
* MySQL and PostgreSQL SQL scripts
* Fixed a bug in the DAV client to handle breaks in href's properly.

Only events have been tested  - tasks should work. The new store 
framework under the connector means the connector now only deals with 
sending data to/from SyncML clients, and does not communicate with the 
server directly - so separate sync source code will be used for each 
client data type - vCal, vCard and SIF/XML.

The s4j and source is available from 
http://comalies.citadel.org/~matt/funambol/ . The installation is mostly 
the same  as the old connector, except for a slimmed admin panel. The 
readme file from the new connector is below:

Funambol GroupDAV Connector 1.1.1700
-----------------------------------

This is a beta release of the Funambol GroupDAV connector. In this version,
theres been a major rewrite of the Funambol SyncSource itself, hence the 
hike
in minor version number. This release only supports iCal event and task 
sources,
a vCard address source will come.

The GroupDAV Connector has been rewritten on top of the ObjectTrackingStore
(new name pending) framework - which combines the GroupDAV client for Java
and a file store using SmallSQL. It solves the problems with previous 
methods
which lived in the SyncSource itself - particularly due to thread safe 
problems.

The groupDAV client code (net.bionicmessage.groupdav.groupDAV), and PDI 
utility
methods (i.e BMIcalSanitizer in addition to BMIcalConverter which contains
conversion code from the old connector) also live in the 
ObjectTrackingStore
framework.

*Installing*
The release notes and install guide at 
http://bionicmessage.net/funambol/docs.html
and http://bionicmessage.net/funambol/install.html, while obsolete, are 
a good
intro guide. Some points mentioned in those files still apply.

The current source has a new admin panel, which is slightly more 
confusing than
the old one. The options are:
SyncML Source URI: This is the source SyncML clients will identify the 
connector
                    by.
GroupDAV URL: The location of the GroupDAV store on the server, i.e
              http://comalies.citadel.org:2000/groupdav (Citadel)
              http://ogo:80/zidestore/dav/matt/public/ (OGo)
              You must have the port number in there.
              (at the moment you can probably get away the server name 
and port
               due to the setting below, as part of the init cycle
               for a sync the store runs a PROPFIND in order to find 
resources
               to sync against - not required here though)
Server source: The resource on the server to sync with, i.e
              /groupdav/Calendar/
              /zidestore/dav/matt/public/Calendar/
              The end / must be there
Store location: This is where the store used by ObjectTrackingStore will 
live
                on the filesystem. This should be a location writable by the
                server - i.e by the same user Tomcat/jBoss lives in. i.e
                C:\\funambol\cit-cal    (Windows, paths should be double
                                         backslashed)
                /usr/home/matt/Funambol/db/cit-cal (Unix filesystem model)

JBoss users:
               You need to place the following jars into 
<JBOSS>/server/funambol/lib
               before using the connector:
               smallsql.jar
               ical4j.jar
               ObjectTrackingStore.jar
               commons-codec-1.3.jar

               Simply unzip the s4j and those jars will be in lib to 
copy from.

Database support:
                SQL scripts are in src/sql. Only hypersonic and postgresql
                have been tested by me, but its trivial to get working on
                another db.

Traces of the old connector, while physically overwritten, are not purged
from the funambol database by this connector.

!OGO users!
While the connector does work to some degree on OGo 1.1.5, updating etc. 
doesn't
seem to work right. Since it did work on a previous nightly (forget 
which one),
and there are several people testing on OGo, your success may vary. Reports
to the groupdav list whould be appreciated.

Feedback:
             Subscribe to the groupdav mailing list:
             http://www.groupdav.org/mailinglist.html
             or email me personally at:
             matt@mcbridematt.dhs.org