[Kde-pim] Volunteering code monkey for MS Exchange plugin into kdepim

Reinhold Kainhofer reinhold at kainhofer.com
Wed Nov 15 16:17:52 GMT 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi Federico!
That's great that you want to work on Exchange support. We have decided to 
remove exchange support, because we don't have enough manpower to work on it 
ourselves, and we also lack a server to test things...


Am Mittwoch, 15. November 2006 15:46 schrieb Tobias Koenig:
> > - Anything else you think I should know before I get my dirty hands on
> > this job? (e.g. someone has already started and I should coordinate with
> > them, team coding practices, the parts of kdepim code I should know, and
> > so on)
>
> Maybe some general information how to start hacking a new resource:
>
> What is a resource?
>   - A resource is a plugin which is loaded by the several pim
>     applications to access pim data from external data sources.

So, basically, the calandar is managed by libkcal anyway, the only important 
part to be done by the resource is reading/writing data from/to the 
corresponding "back end" (in this case the Exchange server). 

The problem with exchange is that while many (but by far not all!) things 
concerning events are well documented by MS (), there is practically no 
documentation for todos (tasks in MS speak) or journals.

I don't know about adressbook entries, though.

> We have currently 2 versions of an Exchange resource (exchange and
> newexchange), both are located under
>   svn://svn.kde.org/home/kde/branches/KDE/3.5.5/kdepim/kresources
>
> I guess should take a look at newexchange and try to adapt it to the evo
> plugin.

Yes, the new resource is a cached resource, which means that all the data is 
once (on load) synced to the local machine, and kept there. Only if something 
changes, then the server needs to be contacted. The old exchange resource had 
to contact the server every time an application requested an event (e.g. 
because you selected a different day in KOrganizer).

The newexchange resource (newexchange does NOT mean it is written for a new 
version of exchange, but rather that it was meant as the "new" way of 
exchange acces in libkcal) uses kdepim/kresources/lib, which provides a 
framework for cached resource, which access selectable folders on some 
server. All communication logic is implemented in the lib (which is also used 
by the OpenGroupware resource, and in the future hopefully to others, too), 
while newexchange only has to provide the translation of the server-provided 
data into libkcal objects, and the translation of libkcal objects and queries 
into requests understood by the server.

Some notes about the access of the Exchange server:
- -) WebDAV is used, which is basically XML messages over HTTP
- -) The properties of the events are xml properties
- -) A while ago I made a rough mapping of the XML properties to libkcal 
properties. See kdepim/kresources/newexchange/*.mapping
- -) The MS documentation can be found on msn, the URLs can also be found in the 
*.mapping files.
- -) Unfortunately we don't have *any* documentation for the kresources/lib/ 
framework ;-((( 
- -) So if you have any questions (I'm sure there are many things which are hard 
to understand in the design, which can definitely be improved...), don't 
hesitate to ask on irc or the mailinglist

Cheers,
Reinhold

- -- 
- ------------------------------------------------------------------
Reinhold Kainhofer, Vienna University of Technology, Austria
email: reinhold at kainhofer.com, http://reinhold.kainhofer.com/
 * Financial and Actuarial Mathematics, TU Wien, http://www.fam.tuwien.ac.at/
 * K Desktop Environment, http://www.kde.org, KOrganizer maintainer
 * Chorvereinigung "Jung-Wien", http://www.jung-wien.at/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)

iD8DBQFFWz21TqjEwhXvPN0RAtdDAJwKGE36pUeABj1bwj+eKe5796NtYwCfSUBp
qzofqVaZhY9sus50icuyZ7I=
=nn50
-----END PGP SIGNATURE-----
_______________________________________________
kde-pim mailing list
kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
kde-pim home page at http://pim.kde.org/



More information about the kde-pim mailing list