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