At 03:08 PM 5/4/00 +0000, Jason Spisak wrote:
Phillip J. Eby:
Ty and I are working on fixing that. As of today, the Specialist+Rack subsystems of the ZPatterns library are now capable of managing objects with mixed-source attributes and property sheets.
Can you use that code and extend it to allow Zope to pull it's object data from multiple sources?
Not really. It operates at a different level of abstraction than that. It can, however, be extended to allow objects stored in a "primary" ZODB Folder or ObjectManager the ability to have mixed-source attributes and propertysheets. But there has to be some kind of object to "start with". But that level of extension may be all you need, since most "application"-oriented usages lend themselves well to using Racks directly, and "content"-oriented usages can still have some of their attributes and propertysheets handled elsewhere. There are some key issues that are NOT dealt with in the Rack model yet, however. Chief amongst them is Undo management. Jim Fulton made a change to ZODB to allow the use of a custom Undo manager, which would allow prevention of Undo for transactions that modified "outside" sources, or alternatively allow them to be rolled back if there was a source for the undo data. However, we have not yet begun to integrate this into the ZPatterns framework. Another, related issue is garbage collection, or making sure that objects are deleted in "both" places. I plan to add a GC function to Racks soon to allow them to clean up ZODB persistent data associated with non-ZODB objects which no longer exist, but that's only a beginning.