[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