CosmoCardDav - CardDav support in Cosmo

Author: Vinubalaji Gopal (Vinu)
Open Source Applications Foundation logo

Introduction

CardDav in Cosmo

Problem

CardDav Protocol details

Solution

The implementation strategy was to:

VCARD Example

BEGIN:VCARD
VERSION:3.0
FN:Brian Moseley
N:Moseley;Brian;;;
X-EVOLUTION-FILE-AS:Moseley\, Brian
EMAIL;TYPE=OTHER:bcm@nospam-osafoundation.org
UID:pas-id-44931D9800000000
REV:2006-06-16T21:07:36Z
END:VCARD

MKADBK Request in Cosmo

prompt> curl -X MKADBK -u test1:test1 -v -H 'Content-Type: text/xml; charset="utf-8"'
-d @mkadbk.xml http://localhost:8080/cosmo/home/test1/testadbk
* About to connect() to localhost port 8080
*   Trying 127.0.0.1... connected
* Connected to localhost (127.0.0.1) port 8080
* Server auth using Basic with user 'test1'
> MKADBK /cosmo/home/test1/testadbk HTTP/1.1
...
< HTTP/1.1 201 Created
< Server: Apache-Coyote/1.1
< X-Cosmo-Version: 0.5-SNAPSHOT
< Content-Length: 0
< Date: Fri, 04 Aug 2006 19:44:58 GMT
* Connection #0 to host localhost left intact
* Closing connection #0

Repository view

/t/te/test1
/t/te/test1/cosmo:email = vinu@nospam-osafoundation.org
/t/te/test1/cosmo:dateCreated = 2006-08-04T12:44:00.994-07:00
.
.
/t/te/test1/testadbk/adbk:language = en
/t/te/test1/testadbk/dav:created = 2006-08-04T12:44:58.447-07:00
/t/te/test1/testadbk/dav:displayName = testadbk
/t/te/test1/testadbk/dav:lastModified = 2006-08-04T12:44:58.447-07:00
/t/te/test1/testadbk/jcr:primaryType = dav:collection
/t/te/test1/testadbk/jcr:mixinTypes = adbk:collection
/t/te/test1/testadbk/jcr:mixinTypes = ticket:ticketable
/t/te/test1/testadbk/dav:displayname = Lisa's Address Book
/t/te/test1/testadbk/adbk:description = My primary address book.

How to PUT a vCard Resource

Demo

What's left to be done

Here's a short plan of what I intend to complete before leaving

What I learned

Interesting lessons I'll take away from this experience:

More Info