r4 - 17 Nov 2006 - 15:18:56 - VinubalajiGopalYou are here: OSAF >  Journal Web  > CosmoCardDavImplementation

Implementation

  • MKADBK support - Completed on 14July2006
  • Creating vCard Object Resources - Completed on 27July2006, Completed unique uid constraints on 31July2006
  • Address Book Reports
    • adbk-query - Completed on 17August2006
    • adbk-multi-get - Completed on 11August2006

Files that needs to be changed for CardDav Support:

  • cosmo-schema.cnd - The schema file with new node types for the CardDAV Support

<adbk = 'http://osafoundation.org/adbk'>

/* adbk:description property, section 5.2.1 of the CardDav Spec */
/* adbk:language property,  */
[adbk:collection] mixin
  - adbk:description (string) copy
  - adbk:language (string) mandatory copy

/* adbk:uid property, section 5.3 of the CardDav Spec */
[adbk:resource] mixin
  - adbk:uid (string) mandatory copy

Classes that needs to be changed:

  • org.osaf.cosmo.repository.SchemaConstants - The new constants that are defined in the schema files.
  • org.osaf.cosmo.dav.CosmoDavConstants - New constants for adbk support.
  • org.osaf.cosmo.dav.CosmoDavMethods - New method constants.
  • org.osaf.cosmo.dav.CosmoDavServlet - New methods to support CardDAV features like MKADBK, etc.
  • org.osaf.cosmo.repository.dav.impl.CosmoDavResourceImpl (and the interface) - New ADBK resource type, adding the new properties.
  • org.osaf.cosmo.dav.impl.CosmoDavRequestImpl (and the interface)- Custom (XML) parsers for MKADBK method
  • org.osaf.cosmo.repository.ResourceMapper - Methods for Node to AdBkCollectionResource and other conversion methods.
  • org.osaf.cosmo.dav.io.DavCollectionHandler - New methods for exporting and importing address book collections to the jackrabbit repository.
  • org.osaf.cosmo.dav.io.DavResourceHandler - New methods for exporting and importing address book resource to the jackrabbit repository.
  • org.osaf.cosmo.dav.io.CosmoInputContext - setting the content type

and more..

New Classes:

  • org.osaf.cosmo.model.AdbkCollectionResource will extend org.osaf.cosmo.model.CollectionResource and will have one property (adbk:description) for the address book collection.
  • org.osaf.cosmo.model.AdbkResource will extend org.osaf.cosmo.model.FileResource and will have one property (adbk:uid) for the address book resource.
  • org.osaf.cosmo.dav.io.property.AdBkDescription similar to org.osaf.cosmo.dav.io.property.CalendarDescription.

Testing

  • New files for functional testing - cosmo_mkadbk.py and more in the HTTPTest directory.

Multi valued properties implementation:

Changed the schema file to allow multiple values for a address book resource:

[adbk:resource] mixin
  - adbk:uid (string) mandatory copy
  - * (undefined) multiple copy

This will allow us to store the multi-valued properties in address book resource. Example of a multi-valued vcard property:

ADR;TYPE=dom,home,postal,parcel:;;123 Main Street;Any Town;CA;91921-1234
ADR;TYPE=dom,home,parcel:;;124 Main Street;Any Town;CA;91921-1233

Note that the parameter type is also multi-valued and should be stored as a multi-valued property.

This will be stored in jackrabbit as:

/t/te/test1/testadbk/2.vcf/adbk:adr_type = DOM
/t/te/test1/testadbk/2.vcf/adbk:adr_type = HOME
/t/te/test1/testadbk/2.vcf/adbk:adr_type = POSTAL
/t/te/test1/testadbk/2.vcf/adbk:adr_type = PARCEL
/t/te/test1/testadbk/2.vcf/adbk:adr_type = DOM
/t/te/test1/testadbk/2.vcf/adbk:adr_type = HOME
/t/te/test1/testadbk/2.vcf/adbk:adr_type = POSTAL
/t/te/test1/testadbk/2.vcf/adbk:adr = ;;123 Main Street;Any Town;CA;91921-1234;
/t/te/test1/testadbk/2.vcf/adbk:adr = ;;124 Main Street;Any Town;CA;91921-1233;

-- VinubalajiGopal - 17 Aug 2006

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r4 < r3 < r2 < r1 | More topic actions
 
Open Source Applications Foundation
Except where otherwise noted, this site and its content are licensed by OSAF under an Creative Commons License, Attribution Only 3.0.
See list of page contributors for attributions.