Hello, Here's an update on the current state of new filesystem attachment storage: There are a couple platforms on which attachment storage sits: * Transaction handling - This is finished to my satisfaction. We may decide later that it is inadequate or needs changing but it serves this purpose now. * Transaction safe file save/delete - Finished (based on transaction handling) * Serialization - Finished refactoring of XMLWriter and generic Serializer and XMLSerializer. * Providing of files - Mostly finished, needs review to see if there is a cleaner way. Barring any major changes, this should not take longer than 1 day to complete. * Locking - Needed, lock management exists but does not handle deadlock nor "greedy thread" situations. 3 days needed to do code review on Apache commons LockManager to determine if it handles these situations, I'm guessing 2 days are needed to integrate LockManager and in place of the existing lock mechanism and a further 3 days to implement one of the features on top of LockManager if need be.
"Consumer" code: * FilesystemAttachmentStore - Complete, enabling requires adding the .jar file to WEB-INF and changing a line in xwiki.cfg. Suffers from deadlock because the locking mechanism, is inadequate. * FilesystemAttachmentVersioningStore - Complete but needs tests, enabling is same as for FilesystemAttachmentStore. 1-2 days should be adequate for testing. * FilesystemAttachmentRecycleBinStore - in progress, 3 days to complete and test (?). Finished DeletedFilesystemAttachment, need TransactionRunnables for saving and deleting and serializer for deleted attachment meta-data. * Need a plan for migrating data from old system. FilesystemAttachmentStore fails over to old store if an attachment cannot be found. Is this correct? Should migration scripts be distributed instead? WDYT? * Consumer code all needs more tests. Any amount of time could be spent on this, I think a week is adequate. Since this contains a large amount of code and all storage code is critical, I think this should go through a release cycle in the platform but disabled by default so that it can be beta tested before it becomes official. WDYT? Caleb _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

