Hello Group,
Overview ======== A lot has changed since the last status report. Unfortunately the demo release has been delayed for a few weeks now due to our underestimating the workload necessary to get to that point, and new issues that have surfaced. Since the last status, we have fixed a number of design issues relating to synchronizing the remote calendar folders. The message API for communicating between our internal components has been better tested, and so has the synchronization API itself. More testing is left to be done. Synchronization code is finally completed, though more testing is needed before public release. There were a few HTTP issues that came up that had to be addressed. Basically the HTTP handling had to be a bit more robust. Some testing under Outlook XP was done. Viewing remote folders is reported working, but uploading changes has not been tested. We've added a new 'Unit Tests' sub-project. This project will keep library wide unit tests. Test development has been started. Testing using the open-source Cosmo CalDAV server has been started, along side the Oracle CalDAV server testing. This Week ========= We have completed the synchronization API. Testing is all that remains for the first demo release, unless said testing exposes new and significant bugs. We are hoping that about a week of testing should be enough for the first demo release. ChangeLog Entries ================= 2006-05-11 doublebug * boost/pool/pool.hpp, mstore/O_IContainer.cpp, mstore/O_IProp.cpp, otlkcon_memory.cpp, otlkcon_memory.h, protocols/caldav/caldav.cpp, protocols/caldav/caldav.h: Some small fixes. store: Added GetProps PT_UNICODE. Now iCal export works under Outlook XP. Now NewMAPIUID is using CoCreateGUID(i've got the same entries generated). CalDAV: Now error entries are skipped. There is a problem with %40 escaped symbol '@'. Under Outlook 2003 seems works fine but server returns 404 under Outlook XP. I guess that is because of different msxml versions. 2006-05-11 kervin * mstore/O_IContainer.cpp, mstore/O_IContainer.h, mstore/O_IXPProvider.cpp, otlkcon_entryid.h: More untested and incomplete work on message upload. Added handler for the ID message result amongst other things. Handler for ICAL_UPLOAD message in XP is next along with finishing the queued message processing in the ID message handler. 2006-05-10 kervin * mstore/O_IContainer.cpp, mstore/O_IContainer.h, mstore/O_IMsgStore.cpp, mstore/O_IXPProvider.cpp, otlkcon_config.h: Adding UpdateRemoteMessage() function for syncing the foreign folder when the contents table row is being updated. This is untested and incomplete. Next I need to handle the ID request message in the XP and the result of that in the container. Also the UPLOAD message needs to be handled in the XP. Hopefully this should all be completed and tested tomorrow. 2006-05-09 doublebug * mstore/O_IMessage.cpp, mstore/O_IMessage.h, mstore/O_IMsgStore.cpp, otlkcon_memory.h: Store: synchronization changed for O_IMsgStore::OnSyncAppointmentComponents So the DB is locked only for 1 message at a time. Added exporting code. Now MAPI->iCal seems to works fine. More detailed testing needed after upload completion. So far noticed that MIMEDIR does not add ORGANIZER property to the exported data. 2006-05-08 doublebug * mstore/O_IMessage.cpp, mstore/O_IMessage.h, mstore/O_IXPProvider.cpp, protocols/caldav/caldav.cpp, tests/tests.vcproj: store: Modified preprocessing of iCal. Now it's done via ical library. Added additional required field for Outlook's convertor. seems to work with Cosmo server now. Now XMLHTTPRequest is created for every separate request. Haven't noticed any mem corruption so far. 2006-05-05 kervin * mstore/O_IXPProvider.cpp, mstore/O_IXPProvider.h, otlkcon_guid.h: Added entryid and events to XPProvider. Inching towards message uploads. * mstore/O_IContainer.cpp, mstore/O_IContainer.h, mstore/O_IMsgStore.cpp, otlkcon_config.h: Started looking at event uploads. No code yet really. 2006-05-04 doublebug * mstore/O_IMessage.cpp, mstore/O_IMessage.h, mstore/O_IProp.cpp, mstore/O_IStream.cpp, protocols/caldav/caldav.cpp: CalDAV: removed calling abort() for hanged request because of memory corruption. mstore: Added some properties (LOCATION, SUBJECT, BODY) to iCal conversion. some crash fixes in O_IProp and O_IStream. Discovered another problem. Fresh db works fine with sync. But after restarting Outlook sync can't find existing appointments and continue creating new messages forever. 2006-05-04 kervin * boost/mpl, boost/mpl/O1_size.hpp, boost/mpl/O1_size_fwd.hpp, [ ...too many files. Deleting... ] boost/utility/value_init.hpp, otlkcon.sln, tests, tests/otlkcon_tests.h, tests/otlkcon_tests_iprop.cpp, tests/otlkcon_tests_iprop.h, tests/otlkcon_tests_mstore.cpp, tests/otlkcon_tests_mstore.h, tests/stdafx.cpp, tests/stdafx.h, tests/tests.cpp, tests/tests.vcproj: Adding more boost libraries for unit testing. Adding 'tests' project for unit testing our library functions. 2006-05-03 doublebug * mstore/mstore.cpp, otlkcon_event.cpp, otlkcon_guid.h: otlkcon_event thread blocks somehow under Outlook XP. So remover MAPIInitialization for that thread. Need to investigate the further. Added WindowClass unregistering. And thread event tread terminating. There some issues with settings dialog under Outlook XP. Sync code seems to work fine with Outlook XP also. 2006-04-30 doublebug * mstore/O_IMessage.cpp, mstore/O_IMessage.h, mstore/O_IMsgStore.cpp, mstore/mimedir_tlb.h, protocols/caldav/caldav.cpp: Added importing iCal using Outlooks component. It seems it works somehow but i think we need to write own convertor to fully support all features. Will play a bit more with it. Issue discovered with contents table. We need first to open Calendar folder in Outlook to properly update contents table columns. After that sync with Oracles server works fine and appointments are displayed properly. * mstore/O_IXPLogon.cpp, protocols/caldav/caldav.cpp: Caldav: Now when .send() failed by timeout we attempt second time. So far attempting is hard coded. May be we can add some configuration option for that. * mstore/O_IFolder.cpp, mstore/O_IMsgStore.cpp, mstore/O_IMsgStore.h, mstore/O_IProp.cpp, otlkcon_config.h, protocols/caldav/caldav.cpp, protocols/caldav/caldav.h, protocols/caldav/stdafx.h: Caldav: added timeout. So far hard coded. We need to add resend request if it failed by timeout. I've noticed that resend usually works fine. Store: Disabled using MEMDB. There are still problems with OpenProperty and MEMDB. Added ability to subscribe for synchronous notifications. Now folders use synchronous notifications for updating their tables. 2006-04-28 doublebug * mstore/O_IMsgStore.cpp, mstore/O_IProp.cpp, mstore/O_ITable.cpp, otlkcon_config.h, otlkcon_event.cpp, otlkcon_sqlite_utils.cpp, protocols/caldav/caldav.cpp, protocols/caldav/caldav.h, protocols/file/file.vcproj: Fixed settings for File project Fixed a lot of deadlocks Transport code changed a bit XMLHTTPRequest is constructed as needed. That eliminates .send hang.(Internaly it uses WinInet that is why we cant hold reference) Lock and unlock changed so that if some critical section is entered it is always left. The code seems to work without being deadlocked. Conversion iCal->MAPI is next. 2006-04-26 kervin * protocols/ical/libical/icaltime.c: Add hour to the icaltime/FILETIME conversion. 2006-04-25 kervin * mstore/O_IMsgStore.cpp, mstore/O_ITable.cpp, mstore/O_IXPLogon.cpp, otlkcon_config.h, otlkcon_sqlite_utils.cpp, protocols/caldav/caldav.cpp: Debugged critical section issues. Next, HTTP requests need to be made async or given timeouts. * mstore/O_IMsgStore.cpp, mstore/O_ITable.cpp, mstore/O_IXPLogon.cpp, mstore/mstore.cpp, otlkcon_print.cpp: More sqlite critical section fixes. Back to debugging internal sync protocol. 2006-04-24 kervin * mstore/O_IMessage.cpp, mstore/O_IMsgStore.cpp, mstore/O_IProp.cpp, mstore/O_IStream.cpp, mstore/O_IStream.h, mstore/O_ITable.cpp, mstore/O_ITable.h, mstore/O_IXPLogon.cpp, mstore/mstore.cpp, otlkcon_config.h, otlkcon_sqlite_utils.cpp: Switched to a more serialized API throughout the entire project. Now SQLite shares a single global database handle but is serialized by the sqlite critical section where ever needed. This was necessary for the memory database used by O_IMessage for transactions to work right. Currently debugging deadlocks. 2006-04-20 kervin * mstore/O_IFolder.cpp, mstore/O_IMessage.cpp, mstore/O_IProp.cpp, mstore/O_ITable.cpp, mstore/O_IXPLogon.cpp, mstore/O_IXPProvider.cpp, mstore/mstore.cpp: Continued debugging synchronization API. Ran into issues with seeding the random number generator. Switched from 'time(0)' to 'GetTickCount()'. What is the scope of srand()? Process? Thread? Function? Need to find that out. Now running into a 'SQLITE_SCHEMA' error a bit further on. Don't know how that can happen given all the transactions are EXCLUSIVE, but will check this out tomorrow. Looks like loadAppointmentFolders() needs to be smarter or something because the schema error occurs under it. * mstore/O_IContainer.cpp, mstore/O_IFolder.h, mstore/O_IMessage.cpp, mstore/O_IMsgStore.cpp: Continued debugging synchronization. Started with ICalImport as well. Added the foreign id/hash properties to the message object. More debugging needed. ------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ otlkcon-devel mailing list otlkcon-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/otlkcon-devel